鮑兆強(qiáng),王立宏
(煙臺(tái)大學(xué)計(jì)算機(jī)與控制工程學(xué)院,山東 煙臺(tái) 264005)
深度學(xué)習(xí)多年來引起眾多研究者的重視,因其在很多領(lǐng)域達(dá)到了近似人的識(shí)別和判斷能力,如語音識(shí)別[1]、圖像分類[2]及自動(dòng)駕駛[3]等。深度學(xué)習(xí)被認(rèn)為是非常有價(jià)值的學(xué)習(xí)方法,其多層網(wǎng)絡(luò)結(jié)構(gòu)能夠通過投影變換逐漸提純輸入數(shù)據(jù)中的內(nèi)在特征,最終輸出希望的結(jié)果。目前深度學(xué)習(xí)的研究主要集中在分類問題等有監(jiān)督的學(xué)習(xí)方面,通常以訓(xùn)練樣本的網(wǎng)絡(luò)實(shí)際輸出和期望輸出之間的差別來判斷網(wǎng)絡(luò)的訓(xùn)練情況,同時(shí)以正則化方法來約束模型的復(fù)雜程度,避免出現(xiàn)過擬合現(xiàn)象。在聚類等無監(jiān)督學(xué)習(xí)方面,深度學(xué)習(xí)的研究相對較少。最近有研究將深度學(xué)習(xí)和無監(jiān)督學(xué)習(xí)結(jié)合起來,在聚類方面得出很好的結(jié)果[4-8]。這些研究的主要思想是用深度學(xué)習(xí)來得到輸入數(shù)據(jù)的高層表示,然后利用現(xiàn)有的算法完成聚類。這些工作的主要區(qū)別在于采用了不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和目標(biāo)函數(shù)。
高維數(shù)據(jù)的簇結(jié)構(gòu)通常存在于低維的子空間中,子空間聚類是發(fā)現(xiàn)高維數(shù)據(jù)真實(shí)結(jié)構(gòu)的有效手段。在子空間聚類中,一個(gè)基本假設(shè)是子空間的自表達(dá)性質(zhì),即一個(gè)子空間內(nèi)的點(diǎn)可以由該子空間內(nèi)的其他點(diǎn)線性表示[9]。子空間聚類的基本思想是獲取合適的自表達(dá)系數(shù)矩陣,以該矩陣構(gòu)造的相似矩陣進(jìn)行聚類。如果將深度學(xué)習(xí)和子空間自表達(dá)聯(lián)合起來求解,就會(huì)憑借深度學(xué)習(xí)得出的高層表示和子空間聚類的自表達(dá)性質(zhì),有效發(fā)現(xiàn)線性子空間或非線性子空間,從而得出比目前淺子空間聚類更好的結(jié)果[4-7]。深度學(xué)習(xí)在高維數(shù)據(jù)的子空間聚類方面已有一些研究,如自編碼(AE,AutoEncoder)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)[4],在編碼結(jié)束時(shí)加入自表達(dá)層,編碼數(shù)據(jù)輸入自表達(dá)層,自表達(dá)層的輸出輸入解碼層。AE要求網(wǎng)絡(luò)輸出應(yīng)盡量還原輸入數(shù)據(jù)(即解碼功能),二者的誤差項(xiàng)是優(yōu)化的目標(biāo)項(xiàng)之一。針對該自表達(dá)層的數(shù)據(jù)進(jìn)行稀疏、低秩等正則化約束就可以達(dá)到較好的聚類結(jié)果[4,10-11]。PENG等在實(shí)驗(yàn)中發(fā)現(xiàn),輸出不一定必須還原輸入數(shù)據(jù),這樣就可以只用一個(gè)多層前向網(wǎng)絡(luò)來不斷提純輸入數(shù)據(jù),在輸出層上完成各種正則約束的子空間聚類[12]。
本文擬從子空間聚類和深度學(xué)習(xí)相結(jié)合出發(fā),采用對比學(xué)習(xí)和偽標(biāo)簽糾正機(jī)制,在訓(xùn)練網(wǎng)絡(luò)時(shí)充分利用用戶給定或自動(dòng)獲取的少量先驗(yàn)信息,提高聚類的性能,最后在4個(gè)測試數(shù)據(jù)集上驗(yàn)證所提方法的有效性。
在缺乏數(shù)據(jù)點(diǎn)標(biāo)簽的情況下,自監(jiān)督 (self-supervision)和偽監(jiān)督(pseudo-supervision)是兩種提高聚類性能的可行方法。自監(jiān)督學(xué)習(xí)是無監(jiān)督的一種方式,通常需要預(yù)設(shè)一個(gè)任務(wù),其目標(biāo)函數(shù)不需要監(jiān)督信息即可計(jì)算,自監(jiān)督學(xué)習(xí)可獲取后續(xù)分類等任務(wù)需要的高層語義信息。ZHANG等提出了自監(jiān)督的卷積子空間聚類網(wǎng)絡(luò)S2ConvSCN[13],在沒有標(biāo)簽數(shù)據(jù)的情況下直接用譜聚類結(jié)果作為標(biāo)簽來監(jiān)督子空間聚類和深度網(wǎng)絡(luò)的學(xué)習(xí)。孫浩等提出一種基于自監(jiān)督對比學(xué)習(xí)的深度神經(jīng)網(wǎng)絡(luò)來提升對抗魯棒性,最大化訓(xùn)練樣本與其無監(jiān)督對抗樣本間的多隱層表征相似性,增強(qiáng)了模型的內(nèi)在魯棒性[14]。偽監(jiān)督學(xué)習(xí)可以是無監(jiān)督的[15],也可以是半監(jiān)督的[16]。文獻(xiàn)[16]同時(shí)采用少量標(biāo)簽點(diǎn)數(shù)據(jù)和大量無標(biāo)簽數(shù)據(jù)訓(xùn)練網(wǎng)絡(luò),把無標(biāo)簽點(diǎn)的標(biāo)簽預(yù)測結(jié)果當(dāng)作真實(shí)的標(biāo)簽使用,在各類之間找到低密度的分隔邊界,從而提高泛化性能。LV等提出偽監(jiān)督的深度子空間聚類PSSC[15],其中沒有標(biāo)簽點(diǎn)數(shù)據(jù),屬于無監(jiān)督學(xué)習(xí)。PSSC網(wǎng)絡(luò)由局部保持模塊、自表達(dá)模塊和偽監(jiān)督模塊組成。模型需要多次迭代訓(xùn)練,在每次迭代中,模型使用上一次迭代的預(yù)測來重新標(biāo)記樣本,為此在編碼器的后面引入了一個(gè)分類模塊,該模塊利用學(xué)習(xí)到的潛在表示和相似圖來構(gòu)建偽標(biāo)簽,用來監(jiān)督特征學(xué)習(xí)。
在面對實(shí)際數(shù)據(jù)集時(shí),用戶或多或少會(huì)了解一些數(shù)據(jù)信息,或者通過少量標(biāo)記數(shù)據(jù)獲得一些有類標(biāo)簽的數(shù)據(jù)點(diǎn)。這些先驗(yàn)信息如果能加入到子空間的聚類中,會(huì)引導(dǎo)聚類過程得出更精確的聚類結(jié)果。李超杰研究了半監(jiān)督深度聚類算法,包括基于標(biāo)簽自適應(yīng)策略算法和基于成對預(yù)測的半監(jiān)督深度聚類算法。算法利用標(biāo)簽信息指導(dǎo)簇心優(yōu)化調(diào)整,或者基于已知的成對約束信息對數(shù)據(jù)集中無標(biāo)記樣本對的關(guān)系進(jìn)行預(yù)測,在此基礎(chǔ)上完成聚類任務(wù)[17]。
2.1.1 算法思想 深度子空間聚類通常采用自編碼器AE來完成輸入數(shù)據(jù)的非線性變換和特征抽取,本文也是如此。對AE的訓(xùn)練要求可以是對輸入數(shù)據(jù)的重建誤差進(jìn)行約束[6],也可以是對數(shù)據(jù)的局部保持誤差進(jìn)行約束[15]。深度子空間聚類通常在AE網(wǎng)絡(luò)的編碼層后面設(shè)置自表達(dá)層,然后設(shè)置解碼層,編碼結(jié)束后通過自表達(dá)矩陣來表示數(shù)據(jù)點(diǎn)之間的相似性。本文提出的算法結(jié)構(gòu)如圖1所示。
圖1 基于偽標(biāo)簽糾正的半監(jiān)督深度子空間聚類算法(SCPC)
圖1顯示算法包括4個(gè)模塊,第一個(gè)是局部保持模塊,用于約束重建誤差L1,同時(shí)保持?jǐn)?shù)據(jù)點(diǎn)之間的相似性,這個(gè)模塊和PSSC表達(dá)不同,但是目的是相同的;第二個(gè)是自表達(dá)層的約束,通常對自表達(dá)矩陣C進(jìn)行自表達(dá)誤差約束L2,這個(gè)模塊是和PSSC相同的。第三個(gè)是本文新增的對比學(xué)習(xí)模塊,該模塊利用現(xiàn)有的少量標(biāo)簽數(shù)據(jù)來控制自表達(dá)矩陣C,希望該矩陣能出現(xiàn)塊對角的性質(zhì),即同一個(gè)類中的數(shù)據(jù)點(diǎn)之間的相似度盡可能高,而不同類的數(shù)據(jù)點(diǎn)之間的相似度盡可能低,其中的損失約束為L3。最后一個(gè)模塊是基于偽標(biāo)簽糾正的交叉熵模塊,利用給出的少量標(biāo)簽數(shù)據(jù)來匹配偽標(biāo)簽并糾正偽標(biāo)簽中可能出現(xiàn)的錯(cuò)誤,并通過最小化網(wǎng)絡(luò)分類層softmax給出的概率分布和糾正后的偽標(biāo)簽之間的交叉熵L4,來約束網(wǎng)絡(luò)的迭代和權(quán)重更新,從而得到更準(zhǔn)確的網(wǎng)絡(luò)表達(dá)。最后對數(shù)據(jù)點(diǎn)之間的相似度矩陣W=(|C|+|CT|)/2進(jìn)行譜聚類得出數(shù)據(jù)集的聚類結(jié)果。
2.1.2 算法步驟 圖1所示算法整理如下:
算法 基于偽標(biāo)簽糾正的半監(jiān)督深度子空間聚類算法 (SCPC) 輸入:數(shù)據(jù)集X 已知樣本標(biāo)簽XL 超參數(shù)γ1,γ2,γ3和γ4 需要聚類的簇?cái)?shù):K輸出:聚類結(jié)果G 1. 隨機(jī)初始化自編碼器參數(shù); 2. 預(yù)訓(xùn)練自編碼器網(wǎng)絡(luò); 3. 隨機(jī)初始化自表達(dá)層參數(shù); 4.While 沒有達(dá)到最大訓(xùn)練次數(shù) 5. 利用偽標(biāo)簽糾正策略訓(xùn)練整個(gè)網(wǎng)絡(luò); 6. 利用Adam優(yōu)化器優(yōu)化更新網(wǎng)絡(luò)參數(shù); 7. End while 8.計(jì)算相似度矩陣W=(|C|+|C|T)/2; 9.對相似度矩陣W進(jìn)行譜聚類,得到聚類結(jié)果G。
下面詳細(xì)介紹每個(gè)模塊的計(jì)算過程,本文用到的符號(hào)見表1。
表1 本文所用符號(hào)
(1)
2.2.2 自表達(dá)模塊 子空間聚類方法都是利用數(shù)據(jù)的自表達(dá)性質(zhì),將每一個(gè)數(shù)據(jù)點(diǎn)由處在同一子空間中的其他數(shù)據(jù)點(diǎn)的線性組合進(jìn)行表示,所以在編碼器和解碼器之間加了一個(gè)全連接層,就是所謂的自表達(dá)層,如圖1所示。其權(quán)重表示系數(shù)矩陣為C,自表達(dá)損失函數(shù)為
(2)
其中,系數(shù)矩陣C表示數(shù)據(jù)的子空間結(jié)構(gòu),C中結(jié)構(gòu)塊的數(shù)量表示簇的數(shù)量,因此系數(shù)矩陣C對聚類效果至關(guān)重要。Cij=0表示樣本Xi和Xj不處于同一子空間,為了消除C=I的平凡解,添加了對角線約束diag(C)=0。
2.2.3 對比學(xué)習(xí)模塊 對比學(xué)習(xí)是近些年來提出的潛在空間學(xué)習(xí)方法[19-20],通過數(shù)據(jù)增廣獲取同一個(gè)樣本的不同版本,這些版本的潛在空間表達(dá)應(yīng)該是相似的。對比學(xué)習(xí)以此為約束信息,獲取魯棒的數(shù)據(jù)表達(dá)。盧紹帥等提出了一種用于小樣本情感分類任務(wù)的弱監(jiān)督對比學(xué)習(xí)方法,旨在學(xué)習(xí)海量帶噪聲的用戶標(biāo)記數(shù)據(jù)中的情感語義,同時(shí)引入對比學(xué)習(xí)策略來捕獲少量有標(biāo)注數(shù)據(jù)的對比模式[21]。根據(jù)對比學(xué)習(xí)的思想,在半監(jiān)督的背景下,相同標(biāo)簽的樣本之間應(yīng)該是相似的,而不同類標(biāo)簽的樣本之間應(yīng)該有較大差異。本文假定已經(jīng)獲取了少量樣本的標(biāo)簽信息,為了充分利用這些先驗(yàn)知識(shí),將這些標(biāo)簽轉(zhuǎn)換為成對約束信息,即must-link和cannot-link,如圖2所示。實(shí)線連接的點(diǎn)Xi和Xj表示must-link,即樣本Xi和Xj具有相同的類標(biāo)簽,聚類結(jié)果應(yīng)處于同一簇內(nèi);虛線連接的點(diǎn)表示cannot-link,兩個(gè)樣本點(diǎn)具有不同的類標(biāo)簽,聚類結(jié)果一定處于不同簇內(nèi)。實(shí)心點(diǎn)是已標(biāo)簽點(diǎn),沒有連線的點(diǎn)對之間關(guān)系未知。
圖2 標(biāo)記樣本內(nèi)的成對信息
利用得到的標(biāo)簽點(diǎn)信息,可得到成對約束矩陣ML和CL,大小均為n×n。如果樣本點(diǎn)Xi和Xj具有相同類標(biāo)簽,則Xi和Xj為must-link,即ML(i,j)=1。如果Xi和Xj具有不同的類標(biāo)簽,則Xi和Xj為cannot-link,即CL(i,j)=1。具體公式如下:
(3)
為了使系數(shù)矩陣C擁有更好的塊對角結(jié)構(gòu),利用成對約束矩陣給C施加約束,具體損失函數(shù)L3為
(4)
其中,γ2和γ3是損失項(xiàng)的系數(shù),⊙為Hadamard積運(yùn)算符。E=max(0,m-C)為懲罰矩陣,當(dāng)樣本Xi和Xj為must-link時(shí),為了將Xi和Xj聚類到同一個(gè)簇,Cij的值應(yīng)該大一些,如果Cij的值較小,就對當(dāng)前的Cij進(jìn)行懲罰,m為懲罰度。同理樣本Xi和Xj為cannot-link時(shí),Cij的值應(yīng)該小一些才能避免將Xi和Xj聚類到同一個(gè)簇,因此對Cij的值進(jìn)行懲罰。成對約束的損失函數(shù)L3最小化可以使得C有更好的塊對角結(jié)構(gòu),從而得到更好的聚類效果。
2.2.4 偽標(biāo)簽的糾正模塊 分類層softmax的引入,是為了能夠獲取有益的偽標(biāo)簽來監(jiān)督網(wǎng)絡(luò)的訓(xùn)練,從而提高聚類的效果。但是分類層產(chǎn)生的偽標(biāo)簽是不精確的,因此不能夠穩(wěn)定地提高特征表示的質(zhì)量。為了解決上述問題,本文提出了偽標(biāo)簽糾正算法。利用少許已標(biāo)記的數(shù)據(jù)點(diǎn)對分類層產(chǎn)生的不精確偽標(biāo)簽進(jìn)行糾正,從而進(jìn)一步穩(wěn)定提高特征表示的質(zhì)量。
由于預(yù)測出來的偽標(biāo)簽標(biāo)記規(guī)則不同,需要利用Kunhn-Munkres算法[22]把預(yù)測標(biāo)簽映射為真實(shí)標(biāo)簽。具體來說,將預(yù)測出來的每一類標(biāo)簽與每一種真實(shí)標(biāo)簽一一對比,形成一個(gè)代價(jià)矩陣,然后利用Kunhn-Munkres算法計(jì)算出代價(jià)最低的映射關(guān)系,根據(jù)映射關(guān)系把預(yù)測標(biāo)簽映射為真實(shí)標(biāo)簽,再利用已知的標(biāo)簽對映射后的偽標(biāo)簽進(jìn)行糾正。
例如:已知8個(gè)樣本點(diǎn)的真實(shí)標(biāo)簽為B1=(1,1,3,3,2,2,1,1),整個(gè)數(shù)據(jù)集共16個(gè)點(diǎn),假定前8個(gè)是已標(biāo)記的樣本點(diǎn)。數(shù)據(jù)集的預(yù)測標(biāo)簽為B2=(2,3,1,1,2,3,2,2,1,1,1,2,3,2,2,3),真實(shí)標(biāo)簽的種類為LB1={1,2,3},預(yù)測標(biāo)簽的種類LB2={1,2,3}。
利用Kunhn-Munkres求出預(yù)測標(biāo)簽與真實(shí)標(biāo)簽的映射關(guān)系f={1→3,2→1,3→2},即需要把預(yù)測標(biāo)簽中的1,2,3分別與真實(shí)標(biāo)簽3,1,2匹配,此時(shí)預(yù)測偽標(biāo)簽B2映射為B2r=(1,2,3,3,1,2,1,1)。很明顯,映射后的標(biāo)簽存在兩個(gè)錯(cuò)誤(圖3中用下劃線標(biāo)識(shí)),利用已知的真實(shí)標(biāo)簽B1對B2r中的錯(cuò)誤進(jìn)行糾正,糾正后整個(gè)數(shù)據(jù)集的預(yù)測結(jié)果為B2t。
圖3 偽標(biāo)簽的匹配和糾正
在實(shí)現(xiàn)的過程中,在特征提取模塊(編碼器)的后面添加了一個(gè)帶有softmax層的全連接層作為一個(gè)分類模塊,它利用編碼器學(xué)習(xí)到的特征表示Z轉(zhuǎn)換成p(Z),其中p(Zi)∈K表示對Zi預(yù)測的分類結(jié)果概率分布,K表示簇?cái)?shù)。p(Zi)t表示第i個(gè)樣本屬于t簇的概率,表示為
(5)
將偽標(biāo)簽描述為
li=argmax[p(Zi)]k,
(6)
其中[·]k表示預(yù)測向量的第k個(gè)元素,它對應(yīng)的預(yù)測偽標(biāo)簽的概率為
pi=max[p(Zi)]k。
(7)
在實(shí)際中通過設(shè)置閾值,篩選出可信度較高的偽標(biāo)簽來幫助網(wǎng)絡(luò)的訓(xùn)練,為概率pi設(shè)置了一個(gè)較大的閾值t0,來選擇可信度較高的偽標(biāo)簽進(jìn)行監(jiān)督:
(8)
對應(yīng)的損失函數(shù)為
(9)
其中,損失函數(shù)Ll是交叉熵函數(shù),li是糾正后的偽標(biāo)簽。
聯(lián)合四個(gè)模塊,得到本文總損失函數(shù):
s.t. diag(C)=0,
(10)
其中,γ1,γ2,γ3和γ4為損失項(xiàng)的系數(shù),在網(wǎng)絡(luò)微調(diào)階段,采用網(wǎng)格搜索這四個(gè)系數(shù),找出最優(yōu)系數(shù)組合。
為了測試算法的聚類效果,對4個(gè)基準(zhǔn)數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn),分別是ORL和Umist兩個(gè)人臉數(shù)據(jù)集、COIL20和COIL40兩個(gè)物體數(shù)據(jù)集,數(shù)據(jù)集的詳細(xì)情況見表2。
表2 實(shí)驗(yàn)數(shù)據(jù)集詳細(xì)信息
(1)ORL數(shù)據(jù)集:該數(shù)據(jù)集由40個(gè)人的面部圖像組成,每個(gè)人在不同的光照條件下有10個(gè)面部圖像,在拍攝圖像時(shí)伴有光線和面部表情和姿勢的變化。
(2)Umist數(shù)據(jù)集:這個(gè)數(shù)據(jù)集由20個(gè)人的480張人臉圖像組成,每個(gè)人的圖像數(shù)量為24張,每張圖像都有姿勢的變化,數(shù)據(jù)集的每個(gè)圖像像素都調(diào)整為32×32。
(3)COIL20和COIL40:COIL20數(shù)據(jù)集包含20種不同形狀物體的1440張灰度圖像,而COIL40由40種不同形狀物品的2880張32×32像素的灰度圖像組成。
本實(shí)驗(yàn)采用三個(gè)標(biāo)準(zhǔn)指標(biāo)來評(píng)估算法性能,包括準(zhǔn)確率ACC(Accuracy)[23]、歸一化互信息NMI(Normalized Mutual Information)[24]和純度 PUR(Purity)[25]。三個(gè)指標(biāo)的值越高,代表聚類效果越好。三個(gè)指標(biāo)的表達(dá)式分別為
(11)
其中,Yi表示第i個(gè)樣本的標(biāo)簽,map(Qi)代表第i個(gè)樣本聚類結(jié)果Qi映射的真實(shí)標(biāo)簽。
(12)
其中,Y為樣本點(diǎn)的真實(shí)標(biāo)簽,Q為聚類標(biāo)簽,M計(jì)算的是Y和Q之間的互信息,H用來分別計(jì)算真實(shí)標(biāo)簽和聚類標(biāo)簽的熵。
(13)
其中,N是樣本數(shù)量,ωi表示聚類結(jié)果中第i個(gè)簇中的所有樣本,cj表示真實(shí)類別中第j個(gè)類別中的真實(shí)樣本。
將本文方法與一些常見的子空間聚類算法進(jìn)行對比,包括低秩表示(LRR)[26]、低秩子空間聚類(LRSC)[27]、稀疏子空間聚類(SSC)[28]、具有l(wèi)1范數(shù)的DSC(DSC-L1),具有l(wèi)2范數(shù)的DSC(DSC-L2)[4],深度嵌入聚類(DEC)[29]以及偽監(jiān)督深度子空間聚類(PSSC)[15]。為了測試偽標(biāo)簽糾正機(jī)制和L3模塊的影響,通過去掉偽標(biāo)簽糾正和L3模塊進(jìn)行消融實(shí)驗(yàn)。
首先,在沒有自表達(dá)網(wǎng)絡(luò)層和softmax分類層的情況下預(yù)訓(xùn)練自動(dòng)編碼器卷積網(wǎng)絡(luò),網(wǎng)絡(luò)架構(gòu)信息如表3所示。然后添加自表達(dá)網(wǎng)絡(luò)層和softmax分類層對整個(gè)網(wǎng)絡(luò)進(jìn)行微調(diào),在訓(xùn)練過程中利用已知標(biāo)簽對生成的偽標(biāo)簽進(jìn)行糾正來監(jiān)督網(wǎng)絡(luò)的訓(xùn)練。預(yù)訓(xùn)練階段設(shè)置學(xué)習(xí)率為1.0×10-3,在微調(diào)階段設(shè)為1.0×10-4。為提高預(yù)測偽標(biāo)簽的可信度,把閾值t0設(shè)置為0.8。使用基于自適應(yīng)動(dòng)量的梯度下降法Adam[30]來最小化損失函數(shù)。在得到C之后計(jì)算相似度矩陣W,完成譜聚類。
表3 數(shù)據(jù)集的網(wǎng)絡(luò)設(shè)置
表4記錄了本文算法SCPC和對比算法在4個(gè)測試數(shù)據(jù)集上的聚類結(jié)果,其中SCPC在4個(gè)數(shù)據(jù)集上的標(biāo)簽點(diǎn)個(gè)數(shù)為50個(gè)。關(guān)于標(biāo)簽點(diǎn)比例的討論見3.3節(jié)。如表4所示,SCPC在4種常見的數(shù)據(jù)集上表現(xiàn)出了良好的聚類效果。與非深度學(xué)習(xí)模型LRR,LRSC和SSC相比,SCPC在4個(gè)數(shù)據(jù)集上的ACC、NMI和PUR均增加了約10%及以上,這也證明了基于卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的自編碼器能夠提取更加良好的特征表示。
表4 不同算法在四個(gè)數(shù)據(jù)集上的聚類結(jié)果
相較于DSC-L2,算法SCPC在COIL20數(shù)據(jù)集上的ACC、NMI和PUR分別增加了3.89%、3.8%和3.6%。與PSSC相比,SCPC在Umist、COIL20和COIL40三個(gè)數(shù)據(jù)集上的聚類表現(xiàn)都更好,這也驗(yàn)證了本文提出的偽標(biāo)簽糾正機(jī)制和成對約束信息能夠提高子空間聚類的性能。
為了進(jìn)一步驗(yàn)證偽標(biāo)簽糾正機(jī)制和成對約束對子空間聚類效果的影響,通過分別去除對比學(xué)習(xí)模塊和偽標(biāo)簽糾正機(jī)制,然后在4個(gè)數(shù)據(jù)集上進(jìn)行測試,結(jié)果如表4中的SCPC1和SCPC2。其中,SCPC1是只去掉對比學(xué)習(xí)模塊時(shí)的聚類結(jié)果;而SCPC2是只去掉偽標(biāo)簽糾正模塊時(shí)的聚類結(jié)果。通過表4中的消融實(shí)驗(yàn)結(jié)果可以觀察到,僅保留偽標(biāo)簽糾正機(jī)制或?qū)Ρ葘W(xué)習(xí)模塊得到的聚類結(jié)果要比SCPC的結(jié)果差一些。從實(shí)驗(yàn)結(jié)果看,偽標(biāo)簽糾正模塊對提高聚類性能的作用更明顯一些,同時(shí)也證實(shí)了偽標(biāo)簽糾正機(jī)制和對比學(xué)習(xí)模塊的聯(lián)合作用對提高子空間聚類性能的有效性。
另外,實(shí)驗(yàn)記錄了不同個(gè)數(shù)的標(biāo)簽點(diǎn)對聚類結(jié)果的影響,假定最多只擁有50個(gè)標(biāo)簽點(diǎn)。表5記錄了SCPC算法在各數(shù)據(jù)集的半監(jiān)督聚類結(jié)果。從表5可以看出,在各個(gè)數(shù)據(jù)集上隨著標(biāo)記數(shù)據(jù)點(diǎn)個(gè)數(shù)的增加,各項(xiàng)聚類指標(biāo)均有不同程度的增加,只有一種情況有輕微的下降。因?yàn)闃?biāo)簽點(diǎn)的隨機(jī)性,對聚類的影響程度是不確定的,但標(biāo)簽點(diǎn)的介入總體上能提升聚類性能。
表5 半監(jiān)督聚類結(jié)果
SCPC的損失函數(shù)L有γ1、γ2、γ3和γ4四個(gè)參數(shù),通過網(wǎng)格搜索法尋找每個(gè)數(shù)據(jù)集上的最優(yōu)參數(shù)。由于三個(gè)指標(biāo)度量聚類性能的角度不同,同時(shí)滿足三個(gè)指標(biāo)最優(yōu)的參數(shù)很可能是不存在的,因此本文選擇聚類準(zhǔn)確率ACC這個(gè)直觀的指標(biāo)作為最優(yōu)參數(shù)搜索的依據(jù)。實(shí)驗(yàn)中固定兩個(gè)參數(shù)的值來研究另外兩個(gè)參數(shù)對SCPC的影響。如圖4、5所示,SCPC算法對參數(shù)γ2、γ3、γ4不敏感,即γ2、γ3、γ4的變化對聚類性能影響不大。當(dāng)γ1、γ2、γ3、γ4都取104時(shí),在ORL數(shù)據(jù)集上ACC取得最大值;當(dāng)γ1=10,γ2=10-4,γ3=10-1、γ4=10-4時(shí),ACC在COIL40數(shù)據(jù)集上取得最大值。按照相同的方法搜索,得出數(shù)據(jù)集COIL20和Umist的最優(yōu)參數(shù),見表6。
表6 參數(shù)設(shè)置
圖5 參數(shù)對COIL40數(shù)據(jù)集ACC的影響
為了將滿足must-link的點(diǎn)對(i,j)聚到同一個(gè)簇中,用懲罰矩陣E=max(0,m-C)對較小的Cij進(jìn)行懲罰。圖6是在γ1、γ2、γ3和γ4設(shè)置如表6所示下對m進(jìn)行的測試。從圖6可以看出,m對Umist數(shù)據(jù)集效果影響不大,故任取m為1,在COIL20和ORL數(shù)據(jù)集上m設(shè)置為5能取得較好的效果,而COIL40數(shù)據(jù)集在m=7時(shí)能取得較好的效果。每個(gè)數(shù)據(jù)集經(jīng)過自編碼器編碼后都會(huì)得出其潛在的數(shù)據(jù)表示,這個(gè)潛在表示再用自表達(dá)矩陣進(jìn)行重新表示,就得到了自表達(dá)系數(shù)矩陣C。從這個(gè)過程看,C和數(shù)據(jù)集本身、網(wǎng)絡(luò)的自編碼器,以及自表達(dá)過程都是密切相關(guān)的。COIL20數(shù)據(jù)集在不同的m值上ACC取值變化較大,反映出該數(shù)據(jù)集的自表達(dá)矩陣元素取值范圍較廣,適當(dāng)?shù)膽土P度m能有效促進(jìn)聚類結(jié)果的改變,這也是深度子空間聚類算法能得出較好結(jié)果(如SCPC算法的ACC達(dá)到0.975 7)的原因。
圖6 懲罰度m對ACC的影響
本文提出的算法SCPC是一種半監(jiān)督的學(xué)習(xí)算法,該方法充分利用少量已知樣本標(biāo)簽來獲得更好的特征表示和相似度矩陣W。一方面基于對比學(xué)習(xí)的思想,利用這些已知樣本標(biāo)簽來獲得成對的約束信息,來約束系數(shù)矩陣C的塊對角結(jié)構(gòu),從而獲得更好的聚類性能;另一方面用這些真實(shí)標(biāo)簽來糾正網(wǎng)絡(luò)分類層產(chǎn)生的偽標(biāo)簽,通過反復(fù)訓(xùn)練來監(jiān)督整個(gè)網(wǎng)絡(luò)的訓(xùn)練,糾正網(wǎng)絡(luò)權(quán)重的值。實(shí)驗(yàn)表明,算法SCPC的性能優(yōu)于或接近先進(jìn)的子空間聚類算法。同時(shí)也證明了利用半監(jiān)督信息和對比學(xué)習(xí)方法在提高子空間聚類性能上的可行性和有效性。以后的工作會(huì)繼續(xù)研究用不同方式來嵌入先驗(yàn)信息來提升子空間聚類的性能。