江雨燕,陶承鳳,李 平
(1.安徽工業(yè)大學 管理科學與工程學院,安徽 馬鞍山 243032;2.南京郵電大學 計算機學院,江蘇 南京 210023)
目前,聚類問題已涉及到許多實際應(yīng)用程序,成為計算機視覺的重要組成部分。例如,圖像分割[1]、運動分割[2]和人臉聚類[3]等。聚類作為無監(jiān)督學習領(lǐng)域的一項關(guān)鍵技術(shù),其通過發(fā)現(xiàn)數(shù)據(jù)間的內(nèi)在結(jié)構(gòu),將相似的數(shù)據(jù)點劃分到同一個簇中[4]。傳統(tǒng)的聚類方法可以分為劃分式聚類算法、基于密度的聚類算法、基于圖的聚類算法、基于層次的聚類算法、基于高斯混合模型的聚類算法。典型的K-means聚類[5-6]通過確定簇心,并計算各個數(shù)據(jù)點到簇心的距離,來劃分數(shù)據(jù)樣本類別;譜聚類[7]把所有數(shù)據(jù)看作空間中的點,樣本點之間用帶權(quán)重的邊相連、建立圖論關(guān)聯(lián),通過切圖來達到聚類的目的。盡管以上傳統(tǒng)方法各有擅長的聚類情形,但是當面對高維復雜數(shù)據(jù)時,不能有效地進行處理。
針對高維復雜數(shù)據(jù),文獻[8]提出了子空間聚類算法,該算法是基于無監(jiān)督的方式將樣本集合分成不同的簇,使同簇內(nèi)的樣本盡可能相似,不同簇的樣本盡可能相異。具有代表性的算法有:稀疏子空間聚類(Sparse Subspaces Clustering,SSC)[9-10]和低秩子空間聚類(Low-Rank Subspaces Clustering,LRSC)[11]等。然而子空間聚類算法僅對線性數(shù)據(jù)結(jié)構(gòu)具有良好的處理效果,而不能有效地處理非線性問題。
近年來,隨著深度學習的進展,提出了一種基于深度神經(jīng)網(wǎng)絡(luò)來解決非線性問題的方法(深度聚類方法),該方法可以看作是通過自編碼器預訓練獲取低維的隱表示+無監(jiān)督學習微調(diào)的一個過程?,F(xiàn)有的深度聚類算法包括:深度k-means聚類[12]、深度密度聚類[13]、深度子空間聚類[14-15]等。其中,深度子空間聚類網(wǎng)絡(luò)(Deep Subspace Clustering Net,DSC)將自編碼器與子空間聚類相結(jié)合具有深遠的影響,該算法以無監(jiān)督的方式,通過編碼器非線性地將輸入數(shù)據(jù)映射到一個特征空間,在此空間中,把每個數(shù)據(jù)樣本利用自表達特性表示為同一子空間中其他樣本的線性組合,以形成近鄰矩陣。
盡管現(xiàn)有深度聚類算法在一定程度上解決了復雜結(jié)構(gòu)數(shù)據(jù)聚類問題,但是,此類方法有以下局限性:(1)通常無法有效處理難分類樣本,對臨界簇間的數(shù)據(jù)樣本不能明確分類;(2)模型沒有改變隱表示的學習位置,僅使數(shù)據(jù)點與其指定的簇中心的距離最小化,使現(xiàn)有簇之間的距離最大化,不能有效分離個體聚簇。針對深度聚類算法的缺點,該文在深度子空間聚類模型的基礎(chǔ)上進行改進,提出了融合線性插值和對抗性學習的深度子空間聚類(Deep Subspace Clustering by Fusing Linear Interpolation and Adversarial learning,DSC-IA)。
本模型為學習更好的低維隱表示以處理難分類樣本且有效分離個體聚簇,引入了插值訓練方法和對抗性學習,該方法在編碼器部分使用混合函數(shù)和來自均勻分布的α系數(shù)以形成混合輸出。新混合輸出數(shù)據(jù)通過解碼器重構(gòu)數(shù)據(jù)集,為了確保重構(gòu)輸出與易分類樣本更加類似,在混合重構(gòu)集上訓練一個鑒別器Dw(x),用于預測混合函數(shù)的α系數(shù)。通過對DSC方法的改進,本模型中對抗自編碼器的目標是通過預測α系數(shù)始終為0來欺騙鑒別器,同時,“混合重構(gòu)”損失項也應(yīng)增加到自編碼器的損失函數(shù)中??傊撐闹饕芯吭跓o監(jiān)督場景下的深度子空間聚類模型中如何加入插值訓練方法和對抗性學習來提升聚類精度。
子空間聚類算法是基于無監(jiān)督的方式將樣本集合分成不同的簇,使同簇內(nèi)的樣本盡可能相似,不同簇的樣本盡可能相異。求解子空間聚類問題的方法包括兩個步驟:首先,構(gòu)造近鄰矩陣,通過測量每一對數(shù)據(jù)點的親和性來完成;然后,對近鄰矩陣進行歸一化切割[16]或譜聚類[7]。但是此算法主要是依賴于線性方法,無法處理復雜結(jié)構(gòu)的高維數(shù)據(jù),因此,近年提出的深度子空間聚類模型逐漸受到關(guān)注和研究,并被廣泛應(yīng)用于人臉識別、自然圖像的聚類與分割等場景。
深度子空間聚類模型如圖1所示,使用陰影圓表示數(shù)據(jù)向量、陰影方塊表示卷積或反卷積后的通道,不強制設(shè)置相應(yīng)的編碼器層和解碼器層的權(quán)重相同。
圖1 深度子空間聚類
該模型主要利用自編碼器自表達層的特性,具體地,給定從多個線性子空間{Si}i=1,2,…,k中提取的數(shù)據(jù)點{Zi}i=1,2,…,N(Zi∈Rd×m),可以將子空間中的一個點表示為同一子空間中其他點的線性組合,這個屬性被稱為自表達性[14]。如果將所有的點zi堆疊到數(shù)據(jù)矩陣Z的列中,自表達屬性可以簡單地表示為一個等式,即Z=ZC,其中C(C∈Rm×m)是自表達系數(shù)矩陣。在子空間是獨立的假設(shè)下,通過最小化C的某些范數(shù),C保證具有塊對角結(jié)構(gòu),即cij=0(如果點zi和點zj位于同一個子空間中)。因此,可以利用矩陣C來構(gòu)造譜聚類的近鄰矩陣。在數(shù)學上,這個想法被形式化為優(yōu)化問題:
min‖C‖ps.t.Z=ZC,(diag(C)=0)
(1)
其中,‖·‖p表示一個任意的矩陣范數(shù),而C上的可選對角約束防止了稀疏性誘導范數(shù)的平凡解,如L1范數(shù)?,F(xiàn)在已經(jīng)提出了C的各種規(guī)范,例如,稀疏子空間聚類(SSC)[9]提出的L1范數(shù);低秩表示(LRR)[17]和低秩子空間聚類(LRSC)[11]中的核范數(shù),以及最小二乘回歸(LSR)[18]和有效密集子空間群(EDSC)[19]中的弗羅比尼烏斯范數(shù)。為了更好地解釋數(shù)據(jù)損壞的原因,(1)中的等式約束通常作為一個正則化項,即:
s.t. (diag(C)=0)
(2)
深度子空間聚類模型與其他傳統(tǒng)的聚類模型相比較,聚類精度已經(jīng)有了很大的提高,但是在對于難分類樣本、能否有效分離個體聚簇問題上還存在一定的不足。針對上述兩個問題,該文提出了DSC-IA模型(如圖2所示),該圖展示了一個具有三層卷積編碼器層、一個自表達層和三層反卷積解碼器層的對抗自編碼器。首先,將樣本數(shù)據(jù)編碼為低維隱表示;然后,對其進行線性插值,用▲和表示兩個難分類樣本,使用混合函數(shù)和混合系數(shù)進行混合表示,新數(shù)據(jù)進入自表達層;最后,通過解碼器得到重構(gòu)數(shù)據(jù)。特別地,在解碼器部分訓練鑒別器用于預測混合系數(shù),使得Zα的隱表示更加適合子空間聚類。在訓練期間,通過預訓練對整個網(wǎng)絡(luò)進行初始化微調(diào)。
圖2 融合線性插值和對抗性學習的深度子空間聚類
首先,設(shè)定一個對抗自編碼器模型F(·),其由編碼器部分fe(x)和解碼器部分gd(fe(x))組成。對于給定一對輸入{x(i),x(j)}∈X(X∈Rd×m),將它們編碼為低維隱表示z(i)=fe(x(i))和z(j)=fe(x(j)),其中{z(i),z(j)}∈Z(Z∈Rl×m)。然后,使用混合函數(shù)和混合系數(shù)α將它們混合,得到k個混合數(shù)據(jù):
(3)
(4)
L2=‖x-gd(fe(x))‖2
(5)
其中,e和d表示對抗自編碼器的學習參數(shù)。
(6)
(7)
其中,γ是一個標量超參數(shù),第一項用來預測α系數(shù),第二項用來提高訓練穩(wěn)定性。
(8)
因此,在DSC-IA中,對抗自編碼器的部分目標是產(chǎn)生實際的混合重構(gòu),使它看起來像來自用于混合操作的數(shù)據(jù)點之一。為了在無監(jiān)督的子空間聚類背景下說明DSC-IA,該文對從數(shù)據(jù)集中輸入的m個數(shù)據(jù)點{x(1),x(2),…,x(m)}∈X(X∈Rd×m)的樣本批次處理,并盡量減少以下?lián)p失:
s.t. (diag(C)=0)
(9)
參數(shù)符號說明如表1所示。
表1 參數(shù)符號說明
由于從零開始直接訓練一個具有數(shù)百萬個參數(shù)的網(wǎng)絡(luò)很困難,該文仍然采用深度子空間聚類使用的預訓練+微調(diào)策略。這在避免平凡的全零解的同時,最小化式(9)中的損失函數(shù)。
如圖1所示,首先,對所有數(shù)據(jù)進行了深度自編碼器的預訓練,而沒有自表達層。然后,使用訓練好的參數(shù)來初始化網(wǎng)絡(luò)的編碼器層和解碼器層。最后,進行譜聚類得到聚類結(jié)果。
具體優(yōu)化流程如算法1所示:
算法1:DSC-IA
輸入:原始數(shù)據(jù)X,參數(shù)λ1,λ2,λ3。
輸出:聚類結(jié)果。
預訓練:
1.經(jīng)過編碼器層計算潛在表示z(i)=fe(x(i));
微調(diào)階段:
1.根據(jù)鑒別器在式(7)中的損失函數(shù),通過梯度下降法來更新該鑒別器;
2.根據(jù)其在式(9)中定義的損失函數(shù),通過梯度下降法來更新自編碼器。
初始化:使用訓練后的參數(shù)來初始化網(wǎng)絡(luò)的編碼器層和解碼器層。
通過自表達層Zα-ZαC構(gòu)建近鄰矩陣C;
將C應(yīng)用譜聚類方法求出聚類結(jié)果。
為了驗證所提算法的有效性,使用幾種較為常見的聚類算法在三種數(shù)據(jù)集(包括:Extended Yale B[20]、ORL[21]、COIL20[22])進行實驗測試。在同一數(shù)據(jù)集進行10次獨立實驗,取平均值作為最終實驗結(jié)果。實驗環(huán)境為Microsoft Windows 10,處理器為英特爾酷睿i7,內(nèi)存容量8 GB,顯卡配置為MVIDIA GeForce 920M。
3.1.1 Extended Yale B數(shù)據(jù)集
Extended Yale B數(shù)據(jù)集是一個流行的子空間聚類基準。它由38名受試者組成,每名受試者在不同姿勢和光照條件下均獲得64張面部圖像,并將圖像的大小調(diào)整為42×42,該數(shù)據(jù)集的樣本圖像見圖3(a),網(wǎng)絡(luò)參數(shù)設(shè)置見表2。
圖3 樣本圖像
表2 Extended Yale B數(shù)據(jù)集的網(wǎng)絡(luò)參數(shù)設(shè)置
3.1.2 ORL數(shù)據(jù)集
ORL數(shù)據(jù)集有40名受試者,每名受試者有10個樣本,共由400張人臉圖像組成。對于每名受試者,這些圖像是在不同的光照條件下拍攝的,并且?guī)в胁煌拿娌勘砬?睜眼/閉眼、微笑/不微笑)、面部飾品(有/無眼鏡),將這些圖像的大小調(diào)整為32×32,該數(shù)據(jù)集的樣本圖像見圖3(b),網(wǎng)絡(luò)參數(shù)設(shè)置見表3。
表3 ORL數(shù)據(jù)集的網(wǎng)絡(luò)參數(shù)設(shè)置
3.1.3 COIL20數(shù)據(jù)集
COIL數(shù)據(jù)集是由灰度圖像樣本組成,COIL20包含20多個受試對象,共由1 440張圖像組成,受試對象的類型多種多樣,如鴨和車型等;此數(shù)據(jù)集在黑色背景的轉(zhuǎn)盤上,每個物體每隔5度拍攝72張圖像,即同一對象以不同的角度捕獲不同樣本。在實驗中,圖像的大小被調(diào)整為32×32,該數(shù)據(jù)集的樣本圖像見圖3(c),網(wǎng)絡(luò)參數(shù)設(shè)置見表4。
表4 COIL20數(shù)據(jù)集的網(wǎng)絡(luò)參數(shù)設(shè)置
該文使用了兩種流行的聚類指標(即精度(ACC)和歸一化互信息(NMI))來評估所有方法的聚類性能,ACC和NMI的值越大,聚類性能就越好。
ACC被定義為:
(10)
其中,yi是標簽,ci是模型的聚類分配,m(·)是聚類分配和標簽之間的映射函數(shù),1(·)是指示器函數(shù)返回1或0。
NMI定義為:
(11)
NMI計算互信息得分I(Y,C),然后根據(jù)熵函數(shù)H的數(shù)量對其進行歸一化,以解釋聚類的總數(shù)[23]。
將該方法與以下幾種方法在上述數(shù)據(jù)集上進行了比較,包括:稀疏子空間聚類(Sparse Subspace Clustering,SSC)[9]、核稀疏子空間聚類(Kernel Sparse Subspace Clustering,KSSC)[24]、低秩表示法(Low Rank Representation,LRR)[17]、SSC與預訓練的卷積自編碼器功能相結(jié)合的方法(AE+SSC)[25]、深度子空間聚類(Deep Subspace Clustering,DSC)[14-15]。
稀疏子空間聚類(SSC):通過將每個數(shù)據(jù)點表示為來自同一子空間的其他數(shù)據(jù)點的稀疏線性組合構(gòu)造子空間的數(shù)據(jù)近鄰矩陣。
核稀疏子空間聚類(KSSC):通過核技巧將SSC擴展到非線性流形。
低秩表示法(LRR):在所有可以表示數(shù)據(jù)樣本基的線性組合的候選對象中尋求最低的線性表示。
AE+SSC:結(jié)合SSC和自編碼器的優(yōu)點。
深度子空間聚類(DSC-l1):基于l1正則化的構(gòu)架。
深度子空間聚類(DSC-l2):基于l2正則化的構(gòu)架。
上述幾種算法均由作者提供的代碼進行實驗,為確保實驗公平性,具體參數(shù)根據(jù)論文設(shè)置為最優(yōu),記錄最優(yōu)參數(shù)下結(jié)果進行對比,對比結(jié)果如表5所示。
由表5可知,所提算法相比一些子空間聚類算法在公開標準數(shù)據(jù)集上可以得出良好的聚類效果。在Extended Yale B數(shù)據(jù)集上ACC相比DSC-l1、DSC-l2算法高0.94%、0.28%;在ORL數(shù)據(jù)集上,ACC相比DSC-l1、DSC-l2算法高1.68%、1.43%;在COIL-20數(shù)據(jù)集上,ACC相比DSC-l1、DSC-l2算法高1.18%、0.55%。這說明在編碼器部分使用混合函數(shù)和系數(shù)α將一對輸入進行線性插值,得到的新混合輸出可以在自表達層學習更好的特征表示,使得預訓練過程更加縝密,提高了模型的泛化能力;并且在重構(gòu)數(shù)據(jù)集上引入鑒別器,使重構(gòu)的數(shù)據(jù)與難分類的樣本更易分類,有效分離個體聚簇。
表5 不同算法在三個數(shù)據(jù)集上的實驗結(jié)果對比
在所提算法中,平衡參數(shù)λ1、λ2和λ3的取值對聚類結(jié)果的影響較大。為討論 3個參數(shù)對所提算法的影響,實驗采用固定其二、改變其一來觀察ACC和NMI的變化。實驗結(jié)果見圖4~圖6。在Extended Yale B數(shù)據(jù)集上,ACC和NMI在λ1和λ2取值區(qū)間中起伏較大,在λ3取值為{6,6.5,7}時變化相對較小、基本平穩(wěn),最佳值設(shè)置為λ1=1.00、λ2=10.00、λ3=6.30;在ORL數(shù)據(jù)集上,ACC和NMI均在λ1小于0.1、λ2小于0.5、λ3大于1的取值范圍內(nèi)聚類性能顯著,最佳值設(shè)置為λ1=10-3、λ2=0.1、λ3=1.1;在COIL20數(shù)據(jù)集上,在λ1取值為{10-3,10-2,10-1,100},λ2取值為{0.5,1,1.5,2},λ3取值為{0.1,0.5,1}時,ACC值的變化相對較小,NMI值的變化基本平穩(wěn),最佳值設(shè)置為λ1=1.00、λ2=1.5、λ3=0.4。從圖4~圖6可知,噪聲對不同的數(shù)據(jù)集影響程度不同,因此,平衡參數(shù)的最佳值也不相同。但在合適的取值區(qū)間上,提出的融合線性插值和對抗性學習的深度子空間聚類算法體現(xiàn)出了較好的穩(wěn)定性。
圖4 Extended Yale B數(shù)據(jù)集中不同λ1、λ2、λ3上的ACC和NMI變化曲線
圖5 ORL數(shù)據(jù)集中不同λ1、λ2、λ3上的ACC和NMI變化曲線
圖6 COIL20數(shù)據(jù)集中不同λ1、λ2、λ3上的ACC和NMI變化曲線
此外,鄰接矩陣的學習方法與深度子空間聚類相同,由于近鄰數(shù)不同,很大程度上影響了聚類準確度,因此,為了考慮k值變化對算法的影響,通過將k區(qū)間設(shè)置為(2,50)來顯示不同聚類結(jié)果。通過圖7可以清晰地看出k在不同數(shù)據(jù)集上最優(yōu)值。在Extended Yale B數(shù)據(jù)集上,當k=14時,聚類準確率達到最優(yōu);在ORL數(shù)據(jù)集上,當k=15時,聚類準確率達到最優(yōu);在COIL20數(shù)據(jù)集上,當k=17時,聚類準確率達到最優(yōu)。由圖7可知,在三個數(shù)據(jù)集上k值均在(10,30)區(qū)間比其他區(qū)間的聚類效果好,這說明所提算法在簇數(shù)較多時聚類精度較高,同時驗證了算法對分離個體簇具有有效性。
圖7 在Extended Yale B、ORL、COIL20數(shù)據(jù)集上不同k值聚類結(jié)果
該文提出了一種融合線性插值和對抗性學習的深度子空間聚類方法(DSC-IA),該方法有以下創(chuàng)新點:其一,在編碼器部分使用混合函數(shù)和α系數(shù)線性插值兩個隱表示;其二,通過對抗性學習,在新的混合重構(gòu)集上訓練一個鑒別器來預測用于混合函數(shù)的α系數(shù)。在三個常用基準數(shù)據(jù)集上的實驗結(jié)果證明了DSC-IA相對于其他算法的優(yōu)越性,并驗證了本模型設(shè)計的優(yōu)勢。算法在聚類精度方面,比其他的子空間聚類解決方案有顯著改進。