楊夢茵,陳俊芬,翟俊海
(1.河北大學(xué) 數(shù)學(xué)與信息科學(xué)學(xué)院,河北 保定 071002; 2.河北省機器學(xué)習(xí)與計算智能重點實驗室,河北 保定071002)
無監(jiān)督聚類是機器學(xué)習(xí)的重要分支,根據(jù)數(shù)據(jù)自身的相似性揭示數(shù)據(jù)內(nèi)部的隱藏結(jié)構(gòu)。傳統(tǒng)的聚類算法如K均值(K-means)[1-2]、高斯混合模型GMM (Gaussian mixture model)[3]、基于密度的聚類算法DBSCAN (density-based spatial clustering ofapplications with noise)[4]等簡單易實現(xiàn),得到廣泛應(yīng)用。但在圖像、文本、語音等高維且無結(jié)構(gòu)的數(shù)據(jù)上容易發(fā)生維度災(zāi)難,且需要為每個數(shù)據(jù)集和任務(wù)人工設(shè)計特征,從而使聚類性能大打折扣。主成分分析法(principal component analysis,PCA)[5]對高維數(shù)據(jù)進行降維并提取特征,其線性表征能力在應(yīng)對某些特殊分布的數(shù)據(jù)時效果不佳。基于非監(jiān)督學(xué)習(xí)的自編碼器(auto-encoder,AE)[6-7]通過多層復(fù)合映射能得到數(shù)據(jù)的非線性特征。自編碼器將原始高維數(shù)據(jù)映射到低維特征空間,在該空間中更容易依據(jù)特征的分布形態(tài)執(zhí)行聚類分析。
深度聚類是用深度神經(jīng)網(wǎng)絡(luò)進行表征學(xué)習(xí)和聚類指派的過程,通常卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)[8]或堆疊自編碼器自適應(yīng)地學(xué)習(xí)特征表示,再使用傳統(tǒng)聚類算法完成聚類指派。此類方法與非深度聚類算法相比,在基準(zhǔn)測試圖像數(shù)據(jù)集上都獲得了較好的性能。而AE由此不斷發(fā)展為稀疏自動編碼器(sparse auto-encoder)[9-10]、降噪自動編碼器(denoising auto-encoder)[11-12]以及卷積自動編碼器(convolutional auto-encoder,CAE)[13]。
現(xiàn)有的聚類方法大多側(cè)重于建模實例之間的相似或相異關(guān)系,而忽略了提取更有效的表示,這在很大程度上影響了聚類性能。受此啟發(fā),本文提出了一種基于非對稱全連接層的卷積自編碼器的深度聚類算法進行圖像聚類分析。非對稱全連接層的卷積自編碼器學(xué)習(xí)輸入圖片的特征表示,然后經(jīng)典的K-means算法對特征進行聚類劃分,對應(yīng)成原圖像的聚類結(jié)果。該方法的主要貢獻包括:
1)提出非對稱全連接層的卷積網(wǎng)絡(luò);
2)使用小卷積核,降低算法的復(fù)雜性,加快運行速度;
3)在MNIST數(shù)據(jù)集上取得優(yōu)于先進的深度聚類算法的聚類精度。
自動編碼器是無監(jiān)督表示學(xué)習(xí)中重要算法之一,由于隱藏層維度通常比數(shù)據(jù)層小,它可以幫助提取更顯著的特征。DEC(deep embedding clustering)[14]先通過深度編碼解碼網(wǎng)絡(luò)對數(shù)據(jù)進行降維,然后采用軟分配確定樣本點所屬簇類,得到聚類結(jié)果。通過最小化軟標(biāo)簽的分布和輔助目標(biāo)分布之間的KL散度來迭代改善聚類。IDEC[15]基于DEC的這種思路,在表征學(xué)習(xí)步驟時使用重構(gòu)損失和聚類損失聯(lián)合訓(xùn)練聚類網(wǎng)絡(luò)。使用欠完備自動編碼器來學(xué)習(xí)嵌入特征。DCN[16]結(jié)合了自動編碼器和K-means算法。DCN預(yù)先訓(xùn)練自動編碼器,而后優(yōu)化重建損失和K-means損失。精心設(shè)計了網(wǎng)絡(luò)結(jié)構(gòu),以避免瑣碎和無意義的解決方案,并提出了一個有效的優(yōu)化程序來處理挑戰(zhàn)性問題。DEN[17]利用自動編碼器從原始數(shù)據(jù)中學(xué)習(xí)簡化的表示。應(yīng)用局部保留約束保留數(shù)據(jù)的局部結(jié)構(gòu)屬性,通過優(yōu)化損失對網(wǎng)絡(luò)進行微調(diào)實現(xiàn)聚類的精度的提高。
卷積自編碼器中卷積核利用局部感受野抽取圖像的局部特征和權(quán)值共享減少參數(shù)個數(shù)等優(yōu)點,使得深度聚類方法DBC[18]在圖像數(shù)據(jù)集上獲得很好的聚類結(jié)果。DBC嘗試學(xué)習(xí)深度卷積自編碼器以端到端的方式進行訓(xùn)練,設(shè)計卷積層(卷積層和反卷積層)和池化層(池化層和反池化層)組成的全連接卷積自編碼器(FCAE)網(wǎng)絡(luò)。使用t分布嵌入算法(t-SNE)[19]分布去衡量特征點與特征聚類中心點的相似性。
CAE進行特征提取加快了網(wǎng)絡(luò)訓(xùn)練的速度還提高了其下游應(yīng)用任務(wù)的精度。基于深度特征表示的Softmax聚類算法(ASCAE-Softmax)[20]算法設(shè)計非對稱自編碼器網(wǎng)絡(luò)進行無監(jiān)督聚類,其中隨機初始化網(wǎng)絡(luò)權(quán)值替代層層預(yù)訓(xùn)練和全連接層的重構(gòu)誤差作為目標(biāo)函數(shù)的正則約束。該方法為無監(jiān)督聚類分析和特征表達提供了新思路。
利用卷積自編碼器進行無監(jiān)督的特征提取,并應(yīng)用在下游聚類任務(wù)中。與一些聯(lián)合聚類算法不同,本文方法分階段進行。
本文提出了一種非對稱全連接的卷積自編碼器(asymmetric fully-connected layers convolutional auto-encoder, AFCAE),網(wǎng)絡(luò)結(jié)構(gòu)如圖1上半部分所示。網(wǎng)絡(luò)的輸入是28×28的圖片,然后通過卷積網(wǎng)絡(luò)(C1-C4)進行特征提取。受經(jīng)典聯(lián)合聚類算法DBC[18]的啟發(fā),卷積核多采用3×3。C1到C3的每個待提取特征圖都使用3×3卷積核,而C4層上使用2×2的卷積核。在C1層使用步長為3的3×3卷積核,步長等于卷積核的尺寸相當(dāng)于把圖片分割成小片再做特征提取,便于在分辨率高的圖像上捕捉豐富的局部特征信息。F1-F6是全連接層,其中F4層的神經(jīng)元個數(shù)與數(shù)據(jù)集有關(guān),其他層均設(shè)為50個。網(wǎng)絡(luò)采用ReLU激活函數(shù)。AFCAE網(wǎng)絡(luò)相對于對稱式網(wǎng)絡(luò)而言可以看成在F2-F6對稱全連接部分前加入F1全連接層進行數(shù)據(jù)的整合,從而形成非對稱網(wǎng)絡(luò)。改善網(wǎng) 絡(luò)的非線性特征表示的能力。

圖1 非對稱全連接層卷積自編碼器(AFCAE)網(wǎng)絡(luò)框架Fig.1 Overall framework of the asymmetric fully-connected layers convolutional auto-encoder (AFCAE) network
這個AFCAE網(wǎng)絡(luò)的端到端無監(jiān)督預(yù)訓(xùn)練結(jié)束后,截取C1到F6層后接入K-means算法形成本文的深度聚類模型。為了減少名詞的困擾,稱其為AFCAE聚類算法,見圖1的下半部分。后面實驗用到的AFCAE聚類算法詳細化為圖2,對應(yīng)的網(wǎng)絡(luò)參數(shù)列于表1,其中(k,n)/s分別代表卷積核的大小、通道數(shù)和步長。

圖2 AFCAE網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 AFCAE network structure

表1 AFCAE網(wǎng)絡(luò)參數(shù)詳細表Table 1 The detailed description of AFCAE network parameters
AFCAE網(wǎng)絡(luò)損失函數(shù)為輸入xi與輸出x?i之間的誤差平方和,為防止網(wǎng)絡(luò)過擬合,加入L2正則化約束:

式中:X={x1,x2,···,xN}為圖像數(shù)據(jù)集;N為圖片總個數(shù)。第1項損失為重構(gòu)損失,輸入xi通過自編碼器得到重構(gòu)后的輸出x?i。第2項是L2正則化約束,W為網(wǎng)絡(luò)參數(shù)。 α為超參數(shù),后面實驗中設(shè)置α=0.01。
訓(xùn)練好非對稱全連接層卷積自編碼器后,保留C1-F6層網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),使用F6層輸出作為特征信息進行聚類。
卷積層的理論時間復(fù)雜性表示[21]為

式中:d為卷積層的數(shù)量;l是卷積層的索引;nl是第l層中卷積核的數(shù)量,也稱為輸出通道數(shù);nl-1稱為第l層的輸入通道數(shù);kl是卷積核的尺寸;ml為卷積核輸出的特征圖大小。
全連接層的時間復(fù)雜性為輸入通道和輸出通道的乘積,表示為

本節(jié)主要通過K-means對特征表示進行聚類分析來驗證AFCAE網(wǎng)絡(luò)的特征表示能力。所有實驗均在6個圖像數(shù)據(jù)集上進行,3.1節(jié)詳細介紹不同數(shù)據(jù)集。為了減少隨機初始化對K-means算法性能的影響,每組實驗都重復(fù)50次,選取最好的聚類精度。
實驗環(huán)境:IntelCorei5-6300HQ處理器,NVIDIA 2.0GB顯存,8.0GB RAM顯卡;基于開源的Keras庫搭建AFCAE網(wǎng)絡(luò)。
1) MNIST:由70 000個手寫數(shù)字組成的灰度圖像數(shù)據(jù)集。圖像尺寸為28×28,屬于10個不同的類(http://yann.lecun.com/exdb/mnist/)。
2) CAS-PEAL-R1:屬于40個不同類的200幅灰度圖像數(shù)據(jù)集。每張圖片尺寸為480×360。是純色背景下人臉有表情變化的正面視圖。且每人有5幅圖片(http://www.jdl.ac.cn/peal/JDL-PEALRelease.htm)。
3) COIL-20:由日常生活物品組成的1 440張尺寸為128×128的數(shù)據(jù)集。數(shù)據(jù)集類別為20類,是有角度、無形變的灰度圖片(https://www.dazhu anlan.com/2019/10/06/5d999ded06295/)。
4) BioID-Face:數(shù)據(jù)集為23位人物組成的1 521幅灰度圖像,圖片尺寸為384×286。每張圖片為正面視圖,具有較大的姿態(tài)變化和表情變化(https://www.bioid.com/facedb/)。
5) IMM-Face:屬于40個類簇的240幅圖片,圖片尺寸為640×48,視圖為純色背景下有側(cè)面和正面、有表情變化的圖片,每人6幅彩色/灰度圖片(http://www.imm.dtu.dk/~aam/aamexplorer/)。
6) UMISTS:包括20個人共564幅圖像,圖片尺寸為220×220,純色背景下每個人具有不同角度、不同姿態(tài)的灰度圖像(https://see.xidian.edu.cn/vipsl/database_Face.html)。
本文使用評價聚類性能的數(shù)值指標(biāo)是聚類精度(accuracy,ACC)和標(biāo)準(zhǔn)互信息(normalized mutual information,NMI)。兩個指標(biāo)值越近1,說明聚類準(zhǔn)確度越高。
聚類精度(ACC):聚類精度定義為聚類指派對的數(shù)據(jù)個數(shù)與全部數(shù)據(jù)個數(shù)之比:

式中:si代表真實標(biāo)簽;ri是聚類指派的標(biāo)簽;N為總的數(shù)據(jù)個數(shù)。經(jīng)典匈牙利算法對聚類類標(biāo)和真實類標(biāo)進行匹配,通過最佳類別指派得到最優(yōu)類別結(jié)果。ACC值越接近1,說明聚類準(zhǔn)確度越高。
標(biāo)準(zhǔn)互信息(NMI):將互信息歸一化到[0,1],若互信息為0表示兩者毫無關(guān)聯(lián);若為1表示完全相關(guān)。NMI可定義為

式中:H為信息熵;I是真實標(biāo)簽和聚類標(biāo)簽之間的互信息。NMI衡量了樣本標(biāo)簽的預(yù)測分布與真實分布的相關(guān)程度。
為證實AFCAE網(wǎng)絡(luò)具有優(yōu)異的特征提取能力,在MNIST和COIL-20數(shù)據(jù)集上從全連接層是否對稱,瓶頸層參數(shù)選擇以及聚類層數(shù)的選擇這3方面進行詳盡的實驗分析。
3.3.1 全連接層的選擇
AFCAE網(wǎng)絡(luò)可以看成在F2-F6對稱全連接部分前加入全連接層F1。卷積自動編碼器中添加的全連接層是將提取的特征進行整合。為了證實合理增加全連接層數(shù)有助于提高網(wǎng)絡(luò)的聚類精度。保持編碼器和解碼器網(wǎng)絡(luò)結(jié)構(gòu)不變,對全連接層部分嘗試了不同深度以及對稱和非對稱式的設(shè)計。為了對比的公平性,選取全連接層F6層的特征輸出進行聚類分析并比較聚類精度,實驗結(jié)果列于表2,其中“d-50-c-50”中的數(shù)字代表全連接層的神經(jīng)元個數(shù),d是輸入全連接層數(shù)據(jù)的維度,c是瓶頸層神經(jīng)元的個數(shù),括號中數(shù)值為進行20次實驗取得的方差。黑體為本文選取網(wǎng)絡(luò)全連接層結(jié)構(gòu)以及對應(yīng)的聚類精度。
根據(jù)表2可知,隨著全連接層數(shù)的增加,聚類精度先增長后有所下降,說明全連接層的增加有助于網(wǎng)絡(luò)提取有效的特征,使得K-means算法在MNIST上有0.960的聚類精度。實驗發(fā)現(xiàn)不斷地增加全連接層的深度,聚類精度呈下降趨勢,說明不能盲目增加網(wǎng)絡(luò)深度。故本文全連接部分選取d-50-50-50-c-50-50結(jié)構(gòu)。

表2 全連接層部分的設(shè)計和對應(yīng)的聚類精度Table 2 Design of fully connected layers and corresponding clustering accuracies
接著在MNIST和COIL-20數(shù)據(jù)集上驗證瓶頸層神經(jīng)元個數(shù)c的選擇,結(jié)果見圖3。

圖3 瓶頸層神經(jīng)元個數(shù)c影響聚類精度Fig.3 Clustering accuracy affected by neuron numbers c in bottleneck layer
觀察圖3(a)和(b)不難發(fā)現(xiàn),在簡單的MNIST數(shù)據(jù)集上,隨著神經(jīng)元個數(shù)的增加,聚類精度先上升后一直呈下降趨勢,c=10(基準(zhǔn)類別數(shù))時出現(xiàn)最高精度;而在相對復(fù)雜的COIL-20數(shù)據(jù)集上,隨著神經(jīng)元個數(shù)的增加,聚類精度并不穩(wěn)定,c為20(基準(zhǔn)類別數(shù))和40時均出現(xiàn)最高聚類精度。可見瓶頸層神經(jīng)元個數(shù)影響網(wǎng)絡(luò)的抽象表達能力,也最終影響聚類性能。綜合考慮,后續(xù)實驗中設(shè)定AFCAE網(wǎng)絡(luò)的瓶頸層神經(jīng)元個數(shù)c為聚類簇數(shù)。
3.3.2 聚類輸入層的選擇
本組實驗在MNIST數(shù)據(jù)集上測試AFCAE網(wǎng)絡(luò)中不同的全連接層的輸出特征在聚類性能上的差異。在某一全連接層后接K-means算法,進行深度聚類分析,所得聚類性能如圖4所示。顯然,F(xiàn)6層的特征使得聚類性能ACC(0.960)和NMI(0.916)均達到最優(yōu)。在卷積層C4上獲取的局部特征,全連接層通過權(quán)值矩陣將局部特征進行組合。隨著全連接層數(shù)的增加,特征表示不斷抽象組合,更趨向于全局特征的表示,因此F6層所提取的特征可看作聚類的輸入,實驗也證明了F6層上的聚類精度最高。

圖4 MNIST數(shù)據(jù)集上每個全連接層的聚類精度Fig.4 Clustering accuracy of each fully connected layer on MNIST dataset
3.3.3 卷積部分的選擇
本組實驗在MNIST上驗證卷積核與卷積層數(shù)對聚類性能的影響。全連接部分與前面的設(shè)置相同,只改變卷積核大小、數(shù)量和卷積層數(shù),從而建立A、B、C、D和E共5個卷積部分,參數(shù)的詳細信息見表3,其中(k,n)/s分別為卷積核的大小、數(shù)目和步長。

表3 5個不同卷積網(wǎng)絡(luò)結(jié)構(gòu)對比Table 3 Comparison 5 different convolutional structures
由于不同數(shù)據(jù)集的圖片尺寸不統(tǒng)一,不考慮輸入圖像尺寸,僅考慮輸入通道、輸出通道以及卷積核大小時,理論時間復(fù)雜性用式子nl-1kl2nl來計算。比如網(wǎng)絡(luò)B上的理論運行時間為:1×32×25 +25×32×50 + 50×32×50 + 50×22×50=43 950。
以網(wǎng)絡(luò)B的理論時間為基準(zhǔn),定義網(wǎng)絡(luò)的復(fù)雜性,計算公式為

這5個網(wǎng)絡(luò)的運行時間、網(wǎng)絡(luò)復(fù)雜性以及聚類精度列于表4。

表4 卷積網(wǎng)絡(luò)的運行時間,復(fù)雜性和聚類精度Table 4 Running time, complexity and clustering accuracy of the convolutional structures
由表3和表4可知,B網(wǎng)絡(luò)C4的2×2卷積核被A網(wǎng)絡(luò)的3×3替代,復(fù)雜性和運行時間增加了,而聚類精度卻大大降低;而C網(wǎng)絡(luò)只將B網(wǎng)絡(luò)的C2和C3的卷積核數(shù)量減少為25個,復(fù)雜性和理論運行時間大大減少,同時聚類精度也降低;對比B網(wǎng)絡(luò),D網(wǎng)絡(luò)多了一個2×2的卷積層,但是C2、C3的卷積核也替換成2×2,使得運行時間減少,復(fù)雜性降低,同時聚類精度也降低了;E網(wǎng)絡(luò)變化比較大,將C2、C3和C4的卷積核個數(shù)減少為25個,又增加了C5和C6卷積層,運行時間和復(fù)雜性沒有提高反而繼續(xù)下降,聚類精度也降低了。
通過對比卷積部分的復(fù)雜性和聚類精度,發(fā)現(xiàn)小卷積核有利于網(wǎng)絡(luò)提取適合聚類的特征,猶如網(wǎng)絡(luò)A到B的轉(zhuǎn)換,精度也隨之增長。卷積核的數(shù)量對網(wǎng)絡(luò)的特征提取也起到積極作用。但是一味地增加網(wǎng)絡(luò)深度,會導(dǎo)致網(wǎng)絡(luò)過擬合,從而精度下降。綜上分析,本文選取卷積網(wǎng)絡(luò)B作為AFCAE的卷積部分進行后續(xù)實驗。
AFCAE與其他聚類方法在MNIST和COIL-20上的對比實驗分析,包括經(jīng)典將K-means算法應(yīng)用于原始圖像聚類方法KMS;使用深度自編碼器進行特征提取后,使用K-means進行后續(xù)聚類的DAE-KMS算法,在此基礎(chǔ)上同時優(yōu)化了數(shù)據(jù)重建誤差和表示緊湊性的AEC算法;以及深度表示和圖像聚類的聯(lián)合無監(jiān)督學(xué)習(xí)DEC、IDEC、DBC、JULE和ASCAE-softmax算法。
AFCAE算法的最優(yōu)聚類性能見表5和表6。同時,選取文獻[20]中的DBC在MNIST和COIL-20上的聚類精度分別列于表5和表6。其中黑體字表示最優(yōu)的性能。

表5 MNIST數(shù)據(jù)集上各類聚類方法的對比Table 5 Comparison clustering performances of several clustering methods on MNIST dataset

表6 COIL-20數(shù)據(jù)集上6個聚類算法的對比Table 6 Comparison clustering performances with six methods on COIL-20 dataset
由表5可知,AFCAE網(wǎng)絡(luò)的聚類精度達到0.96,超過聯(lián)合訓(xùn)練的其他深度聚類算法,進一步證實了F6層的聚類效果。圖5是AFCAE網(wǎng)絡(luò)的F1層和F6層聚類簇的二維可視化圖,F(xiàn)1全連接層的聚類簇大致可以區(qū)分開,但各簇類間距較小且分布雜亂。F6中僅有少量特征散亂分布,各簇間有明顯的分界線。可視化圖直觀地證實了全連接層幫助卷積自編碼器整合所提取的特征。

圖5 MNIST數(shù)據(jù)集的聚類簇可視化圖Fig.5 Visualization of clustering results on MNIST dataset
在COIL-20上,對AFCAE的F6層特征進行K-means聚類,僅得到0.624的聚類精度。在C1-C4層加入BN層改善網(wǎng)絡(luò)梯度的變化范圍,進而改善網(wǎng)絡(luò)抽取局部特征的能力,微調(diào)結(jié)構(gòu)后聚類精度達到了0.768。聚類可視化如圖6所示。

圖6 帶BN層的AFCAE在COIL-20上的聚類可視化Fig.6 Visualization of clustering results of AFCAE with BN layer on COIL-20 dataset
根據(jù)表6不難發(fā)現(xiàn),AFCAE的聚類精度0.768高于聯(lián)合訓(xùn)練的DEC方法的0.731,也略高于ASCAE-softmax方法的0.755。但是NMI不及DEN方法的。由于COIL-20數(shù)據(jù)集由外形簡單但不同角度的物品圖片組成,實驗過程中發(fā)現(xiàn)一些物品輪廓相似,導(dǎo)致的特征之間區(qū)分度較小,無法清晰地分成不同的類簇。因此對于輪廓相似的物品圖像仍需進一步研究可辨識的特征。
AFCAE網(wǎng)絡(luò)在4個人臉數(shù)據(jù)集上也進行了2組實驗。第1組驗證了每個全連接層的聚類精度,見圖7;第2組把F6層的特征輸出后進行K-means聚類分析,聚類的ACC和NMI列于表7。

圖7 全連接層的特征輸出的聚類精度Fig.7 Clustering accuracy of feature output of fully connected layer
根據(jù)圖7可知AFCAE網(wǎng)絡(luò)具有較好的整體穩(wěn)定性。表7顯示在CAS-PEAL-R1和BioIDFace上AFCAE的聚類性能不錯,而在IMM和UMISTS上不太令人滿意,可能是這兩個數(shù)據(jù)集的圖片均有不同程度的表情和姿態(tài),AFCAE網(wǎng)絡(luò)沒能捕獲到合適的特征。這將是未來工作之一。

表7 AFCAE算法在4個人臉數(shù)據(jù)集上的聚類性能Table 7 Clustering performances of AFCAE algorithm on four face datasets
本文提出一個非對稱全連接層聚類網(wǎng)絡(luò)AFCAE,結(jié)合K-means并由此提出一個AFCAE深度聚類方法。該方法通過改善網(wǎng)絡(luò)結(jié)構(gòu),提取更有辨識力的聚類特征來提高聚類性能。在MNIST和COIL-20上通過詳細對比和分析全連接部分,卷積部分包括卷積核大小和數(shù)目、卷積層數(shù),特征輸出層F6的選擇。驗證了本文的AFCAE方法降低運行時間的基礎(chǔ)上提高聚類性能,而且還優(yōu)于深度聚類算法DEC和ASCAE的聚類性能。但實驗中也發(fā)現(xiàn)小卷積核網(wǎng)絡(luò)對形變較大或類別不確定性較大的數(shù)據(jù)集的聚類效果不令人滿意,這將是未來工作之一。