陶文彬,錢育蓉,張伊揚,馬恒志,冷洪勇,馬夢楠
1.新疆大學 軟件學院,烏魯木齊830046
2.新疆大學 軟件學院 重點實驗室,烏魯木齊830046
3.新疆維吾爾自治區(qū) 信號檢測與處理重點實驗室,烏魯木齊830046
4.北京理工大學 計算機學院,北京100081
聚類是從現(xiàn)有數(shù)據(jù)中挖掘潛在信息,將其劃分為多個簇的過程[1]。聚類算法作為傳統(tǒng)機器學習中常用的算法之一[2],得到了廣泛的關注與研究。目前雖然已有大量的數(shù)據(jù)聚類方法[3-6]已經(jīng)被提出,但是在面對海量圖像、視頻等高維數(shù)據(jù)的應用場景時,傳統(tǒng)聚類算法運算量過大,且難以從中提取到有效的信息,存在著自身的局限性。
深度聚類由于能借助深度學習技術(shù)的特征提取能力提升聚類效果,因此成為了當前業(yè)界研究的熱點。深度聚類[7-8]方法的核心思想就是使用各種神經(jīng)網(wǎng)絡從高維數(shù)據(jù)中提取到有用的特征,再進行聚類。
自編碼器[9](autoencoder,AE)作為基礎的神經(jīng)網(wǎng)絡模型之一,通過編碼解碼的過程,期望將網(wǎng)絡的輸出等同于輸入,實現(xiàn)對樣本的抽象特征學習,適合與聚類任務結(jié)合。因此,目前研究最多,泛用性最廣的就是基于自編碼器的深度聚類算法。
深度聚類算法近幾年發(fā)展迅速,在2016年Xie等人提出了基于自動編碼器的深度聚類模型DEC[10](deep embedded clustering),相比傳統(tǒng)聚類算法有了較大提升。Guo等人于2017年提出了基于此的改進算法IDEC[11](improved deep clustering),改進了DEC破壞了部分局部特征的缺陷,進一步提升了效果。之后研究人員們基于自編碼器相繼提出了很多改進模型,如:使用了卷積自編碼器的DCEC[12](deep convolutional embedded clustering),在自編碼器中增加了稀疏約束的DSSEC[13](deep stacked sparse embedded clustering),基于變分自編碼器的VaDE[14](variational deep embedding)和以及基于多個自編碼器結(jié)合的MIXAE[15](MIXture of autoencoders)等。
本文主要總結(jié)了現(xiàn)有的基于自編碼器的典型深度聚類算法及其評估標準,分析了各個模型的特點、優(yōu)勢以及存在的問題,并對以后的研究提供幫助。本文的貢獻可歸納如下:
(1)以自編碼器的結(jié)構(gòu)作為分類依據(jù),對相關深度聚類算法進行了合理的分析與概述。
(2)對基于自編碼器的深度聚類算法常用的數(shù)據(jù)集與評價指標進行介紹,并根據(jù)算法在MNIST、USPS、Fashion-MNIST數(shù)據(jù)集上的實驗結(jié)果,作出總結(jié)分析。
(3)分析總結(jié)了基于自編碼器的深度聚類算法目前所存在的問題以及未來可能的方向,為后期研究提供參考。
深度聚類算法是一種利用深度學習的非線性表達和特征提取的能力進行聚類的算法模型[16],相比傳統(tǒng)聚類算法更適合應用于擁有海量、高維的數(shù)據(jù)場景下。通過對這種方法的基本原理和優(yōu)缺點的分析,可以加深對其作用機理的認識。
聚類算法的核心在于分辨數(shù)據(jù)之間的差異與共性。高維數(shù)據(jù)由于信息過多,導致傳統(tǒng)聚類算法難以辨別數(shù)據(jù)之間的差異。例如經(jīng)典的K-means[17]、譜聚類等算法在圖像數(shù)據(jù)上往往得不到理想的結(jié)果。而深度聚類算法通過深度學習技術(shù),使得提取的低維特征可以很好地保留原數(shù)據(jù)的信息與結(jié)構(gòu),減少了計算量的同時讓數(shù)據(jù)的差異表現(xiàn)得更加明顯,實現(xiàn)了更好的聚類效果。
深度聚類算法的具體流程與它所使用的深度學習模型相關。基于自編碼器的深度聚類算法其主要思想如下:
步驟1 優(yōu)化自編碼器,降低重建損失。
步驟2 預聚類,參數(shù)初始化,得到聚類損失。
步驟3 使用聚類損失和重建損失聯(lián)合優(yōu)化自編碼器中的編碼器,循環(huán)步驟2、步驟3。
步驟4 最終聚類,輸出結(jié)果。
其基本結(jié)構(gòu)如圖1所示。
圖1 深度聚類算法基本結(jié)構(gòu)Fig.1 Basic structure of deep clustering algorithm
目前深度聚類算法的損失函數(shù)一般是由重建損失函數(shù)和聚類損失函數(shù)兩方面組成,定義如下:
其中,Lrec為重建損失函數(shù),Lc為聚類損失函數(shù)。
1.2.1 重建損失
自編碼器作為無監(jiān)督的神經(jīng)網(wǎng)絡,目標是使輸出的數(shù)據(jù)盡量接近輸入的數(shù)據(jù)。自編碼器可以視為由兩部分組成:將原始數(shù)據(jù)x編碼為提取特征z的編碼器函數(shù)z=f?(x),以及將所提取特征z解碼為輸出數(shù)據(jù)R的解碼器函數(shù)r=gθ(z) 。重建損失函數(shù)用于衡量這兩部分的差異。它的目的是使提取后的特征盡可能地保留原有數(shù)據(jù)的信息。具體定義如下:
其中,?和θ分別表示編碼器和解碼器的參數(shù),n為樣本數(shù)量,xi為輸入樣本。
1.2.2 聚類損失
聚類損失函數(shù)主要用來衡量聚類結(jié)果與輸入數(shù)據(jù)之間的關系,一般與樣本劃分出的簇和質(zhì)心有關。不同的模型由于所側(cè)重的方面不同,設計的聚類損失函數(shù)也各有不同。例如K-means聚類損失[18]、類別硬化損失[19]、層次聚類損失[20]等。
得益于神經(jīng)網(wǎng)絡的特征提取能力,深度聚類算法可以更好地將高維數(shù)據(jù)轉(zhuǎn)換為低維特征。這樣的結(jié)構(gòu)克服了傳統(tǒng)聚類算法面對高維數(shù)據(jù)計算量大、效果差的局限性,相比主成分分析(PCA)[21]、核方法[22-23]、譜方法[24-25]等傳統(tǒng)的數(shù)據(jù)降維方法,神經(jīng)網(wǎng)絡強大的非線性表達能力也使得數(shù)據(jù)的結(jié)構(gòu)得到了更好的保留。
基于深度學習的聚類算法也有著自身的局限性,它提取到低維特征的目標是盡可能地保留原有信息,無法剔除無關信息,影響了聚類結(jié)果。同時,在使用聚類損失Lc對神經(jīng)網(wǎng)絡調(diào)整的過程中,所提取的特征對輸入樣本信息的保留能力也受到了影響,一定程度上對最終聚類結(jié)果起到了反效果。
自編碼器作為典型的無監(jiān)督深度學習模型,目的是通過盡可能地讓輸出接近輸入,實現(xiàn)對輸入數(shù)據(jù)的抽象特征學習。Rumelhart等人[26]于1986年最早提出了自編碼器的概念,Bourlard等人[27]于1988年對其進行了進一步地完善與闡述。作為深度學習的典型模型之一,AE得到了廣泛的研究與改進[9],具體與深度聚類進行了結(jié)合、應用的有基礎自編碼器[26]、卷積自編碼器[28]、稀疏自編碼器[29]、變分自編碼器[30]4大類型。
以自編碼器模型結(jié)構(gòu)的分類為依據(jù),基于自編碼器的深度聚類算法可分為基于基礎自編碼器的深度聚類算法、基于卷積自編碼器的深度聚類算法、基于稀疏自編碼器的深度聚類算法、基于變分自編碼器的深度聚類算法、基于混合自編碼器的深度聚類算法五類。
基礎自編碼器[26]的結(jié)構(gòu)如圖2 所示,主要分為編碼器和解碼器兩部分。編碼器h(x) 將輸入樣本xi編碼為zi,解碼器則將zi解碼為,網(wǎng)絡目標是讓輸出盡可能地與輸入xi相似。
圖2 自編碼器結(jié)構(gòu)Fig.2 Autoencoder structure
基礎自編碼器通過訓練,用低維的特征盡可能地保留高維數(shù)據(jù)的信息。對于聚類來說,這不僅減少了無效特征對聚類精度的影響,也提高了聚類的速度。自動編碼器可以自動提取數(shù)據(jù)特征,減少了人力的消耗,更適合聚類這種無監(jiān)督學習任務。
DEC(deep embedding cluster)[10]是代表性的基礎自編碼器深度聚類算法之一,由Xie 等人于2016 年提出,它的優(yōu)勢在于從t-SNE 中受到啟發(fā),定義了一個基于質(zhì)心的概率分布,通過將最小化此分布的KL 散度作為聚類損失函數(shù)用來同時改善聚類分配以及特征提取,在聚類效果上取得了顯著進步,成為了深度聚類效果評價的基線之一。DEC的聚類損失函數(shù)Lc具體為公式(3),用來衡量兩個目標分布P和Q之間的差異,其中P為真實分布,Q為擬合分布:
其中,qij表示提取特征得到的點zi與聚類中心ui的相似程度,用t分布[31]進行衡量,其計算公式如式(4)所示。式(4)中α代表t分布的自由度。
真實分布P的具體定義如下:
DEC的訓練過程分為兩步,首先用Lrec訓練自動編碼器,再用Lc訓練自動編碼器。而第二步訓練時對第一步訓練的參數(shù)產(chǎn)生一定的負影響,影響了聚類效果。
IDEC(improved deep embedded clustering)[11]是DEC的改進算法之一,它認為DEC 在后續(xù)訓練階段因為舍棄了解碼層會導致編碼層扭曲嵌入空間,削弱所提取特征對于原數(shù)據(jù)局部特征的保留,從而影響聚類效果。它通過聯(lián)合重建損失與聚類損失聯(lián)合訓練,以求最大程度保留原樣本的局部特征,從而提升了聚類效果。它的聯(lián)合損失函數(shù)定義如下:
IDEC 作為DEC 算法的改進版,則通過聯(lián)合重建損失與聚類損失訓練的方式,讓數(shù)據(jù)的局部特征更好地保留,從而提升了聚類效果。
DynAE[32](dynamic autoencoder)則通過動態(tài)損失函數(shù),根據(jù)提取特征的置信度分別采取重建或者聚類的方式,更好地平衡了重建損失與聚類損失,讓損失函數(shù)的變化更加平滑,最終取得了更好的效果。
基于基礎自編碼器的深度聚類算法相比傳統(tǒng)聚類算法效果提升明顯,但是在自編碼器的結(jié)構(gòu)上創(chuàng)新不多,因此并不完全適合聚類任務,沒有考慮提取特征的魯棒性、稀疏性。也因此基于基礎自編碼器的深度聚類算法應用場景最廣,無論是文字數(shù)據(jù)還是圖像數(shù)據(jù),都可以達到不錯的聚類效果。
卷積自編碼器[28](convolutional autoencoder,CAE)基于卷積神經(jīng)網(wǎng)絡,結(jié)構(gòu)上與基礎自編碼器相似,區(qū)別是通過將網(wǎng)絡中的全連接層改為卷積層,可以更好地保留圖像信息的空間信息。其中編碼器具體由卷積層組成,解碼器由反卷積層組成。
DCEC[12](deep convolutional embedded clustering)于2017 年由Guo 等人提出,首次使用卷積自編碼器構(gòu)造深度聚類算法,以端到端的方式學習特征,更好地保留了數(shù)據(jù)的局部結(jié)構(gòu),避免了提取特征的失真,最后利用小批量隨機梯度下降和反向傳播方法,有效地提高了聚類的表現(xiàn)。
DEPICT[33](deep embedded regularized clustering)融合了子空間聚類的思想,引入端到端的聯(lián)合學習方法,將卷積自編碼器多層堆疊,采用統(tǒng)一訓練自編碼器所有網(wǎng)絡而不是逐層預訓練的方式,在高維和大規(guī)模數(shù)據(jù)集上取得了具有競爭力的聚類結(jié)果,并且不需要進行超參數(shù)調(diào)整,更加便于訓練。
RDEC[34](deep embedded clustering with ResNets)通過在卷積層中引入殘差連接的方式,降低了堆疊網(wǎng)絡層數(shù)帶來的性能退化問題,相比DEC算法,在層數(shù)逐漸增加時,RDEC的性能退化減少了56%。
DCEC方法僅僅替換了自編碼器的全連接層,相比DEPICT方法,沒有引入子空間聚類的思想,自編碼器堆疊層數(shù)也較少,所以復雜度較低,最終效果弱于DEPICT算法。而RDEC對于殘差網(wǎng)絡的引入,雖然對聚類效果的提升并不明顯,但是展示了未來通過堆疊網(wǎng)絡層數(shù)提高效果的可能性。
相比于其他類型的自編碼器深度聚類算法,基于卷積神經(jīng)網(wǎng)絡的深度聚類算法對于圖像特征提取的效果一般更好,可以有效保留原數(shù)據(jù)的空間特征。但由于卷積層的引入,導致卷積自編碼器對于非圖像類的數(shù)據(jù)處理領域處于劣勢,適用性遭到了一定的限制。并不適用于文字等數(shù)據(jù)處理場景。
稀疏自編碼器[29](sparse autoencoder,SAE)的主要思想是在基礎自編碼器的損失函數(shù)中增加了稀疏性限制,使大部分網(wǎng)絡節(jié)點處于非激活狀態(tài),迫使網(wǎng)絡壓縮數(shù)據(jù)從而達到對特定結(jié)構(gòu)特征的提取。它的具體實現(xiàn)是通過添加懲罰項,對神經(jīng)元的激活度進行懲罰,從而降低隱含層節(jié)點激活比例,懲罰項通常采用L1、L2范數(shù)或者KL 散度,用來衡量神經(jīng)元的期望激活度ρ與實際激活度之間的差異。例如,KL散度的懲罰項公式如下:
基于稀疏自編碼器的深度聚類算法通過添加約束使得提取的特征表示更加稀疏,使得數(shù)據(jù)之間的區(qū)分度更高,為接下來的聚類任務降低了難度,從而間接提升了最終的聚類效果。
DEN[35](deep embedding network)是一個比較經(jīng)典的稀疏自編碼器深度聚類模型,它為了使自編碼器提取到的特征更適合聚類,首先添加了一個約束以保持原數(shù)據(jù)的局部性特征,然后對提取到的特征應用了組稀疏約束,目的是學習對應于它的簇的非零組的塊對角表示,從而提升了最后的聚類效果。
DSSEC[13](deep stacked sparse embedded clustering)為了綜合考慮數(shù)據(jù)的局部特征與稀疏性,提出了一種深層稀疏自編碼聚類算法,在聚類損失和重建損失的聯(lián)合指導下訓練提取輸入數(shù)據(jù)的特征表示。其中重構(gòu)損失避免了特征空間的破壞,并保持了局部結(jié)構(gòu)。而在編碼器中加入稀疏約束則避免了對不重要特征的學習。通過同時最小化重構(gòu)和聚類損失,該方法能夠聯(lián)合學習面向聚類的特征并優(yōu)化聚類標簽的分配。
基于稀疏自編碼器的深度聚類算法所提取的特征分離度較高,更適合于聚類任務,相比基于CAE的深度聚類算法適用場景更廣。但由于引入懲罰項,導致算法結(jié)果波動性較大。同時,SAE無法將激活與否指定到具體的神經(jīng)網(wǎng)絡節(jié)點,稀疏性的超參數(shù)設置也沒有通用的規(guī)則,使網(wǎng)絡訓練更加困難。
變分自編碼器[30](variational autoencoder,VAE)是一個生成式網(wǎng)絡模型。目的是通過對樣本分布的學習,用預設的估計分布逼近真實樣本分布,從而通過估計分布生成類似于原始樣本的生成樣本。變分自編碼器的結(jié)構(gòu)如圖3所示。
圖3 變分自編碼器結(jié)構(gòu)Fig.3 Variational autoencoder structure
VAE 使用兩個概率分布密度模型作為編碼器與解碼器,圖3中變量q?(z|x)是編碼器,為推斷網(wǎng)絡,用于生成隱變量z的變分概率分布,pθ(z)是隱變量z的先驗,pθ(z)?pθ(x′|z)是解碼器,通過z還原原始數(shù)據(jù)的近似概率分布,為生成網(wǎng)絡。它的重構(gòu)損失衡量的是原數(shù)據(jù)的概率分布與解碼器輸出的近似概率分布之間的差異。其目標函數(shù)公式最終化簡為:
基于變分自編碼器的深度聚類算法優(yōu)勢在于結(jié)合了變分貝葉斯方法與神經(jīng)網(wǎng)絡,高度靈活,便于擴展,并借助變分下界使得可以直接使用隨機梯度下降[36]、標準反向傳播[26]對網(wǎng)絡進行優(yōu)化,減小了優(yōu)化難度。
VaDE[14](variational deep embedding)基于變分自編碼器,結(jié)合了高斯混合模型,是用混合高斯先驗替代單一的高斯先驗后的VAE。其生成觀測樣本x的定義如下:
其中,Cat(?)表示類別分布,K是設定的聚類簇數(shù),μ和σ是基于蔟中心c高斯分布的均值和方差,N(?)和B(?)則是用μ和σ表示的多元高斯分布和伯努利分布。
GMVAE[37](Gaussian mixture variational autoencoder)與VaDE的基本思想相像,主要的不同就是生成觀測樣本x的過程,具體定義如下:
GMVAE 為了改善VAE 過度正則化影響聚類效果的弊端,在算法中加入了最小信息約束[38],緩解了這一問題。
VaDE和GMVAE作為基于變分自動編碼器的深度聚類算法,主要的改進方向都是提升觀察樣本生成的結(jié)果,進而提升聚類效果。具體方法有修改網(wǎng)絡結(jié)構(gòu),改進相應約束等?;赩AE的深度聚類算法優(yōu)勢主要在于可以生成偽樣本,以及借助高斯混合模型,保證了理論的可解釋性。但是生成式網(wǎng)絡的引入不但提升了對計算資源的要求,也大大增加了對樣本的數(shù)量需求。
不同自編碼器對特征的提取各有側(cè)重,為了更好地利用各個自編碼器的優(yōu)勢,誕生了基于混合自編碼器優(yōu)勢的深度聚類算法。通過對多種自編碼器的有效結(jié)合,實現(xiàn)了對特征更好的提取,提升了最終聚類的效果。
MIXAE[15](MIXture of autoencoders)是一種基于混合自動編碼器的深度聚類算法,對于聚類樣本假設最終會聚類出K個簇,它使用K個自動編碼器對應聚類結(jié)果的每個簇,期望每個編碼器分別對提取某一個簇的樣本特征最有效。對于屬于不同簇的樣本,將從K個自動編碼器中挑選其中某一個進行特征提取。這樣提取出來的特征分離度也會更高,從而使得最終聚類效果得到改善。但該算法由于K個自編碼器均衡對應K個簇的基本思想,導致面對不平衡樣本時則會處于劣勢。
DASC[39](dual autoencoder spectral clustering)作為另一種混合自動編碼器的深度聚類算法,則是同時使用兩個自編碼器所提取的特征,其中一個自編碼器加入了噪聲。通過使用有噪聲和無噪聲的編碼器重構(gòu)損失,使所提取到的特征具有更好的魯棒性。同時該方法的新意在于沒有使用常見的K-means方法,而是使用譜聚類方法進行最后的聚類步驟。但不論是兩個多層的卷積自編碼器還是譜聚類算法,相比其他的自編碼器深度聚類算法,計算量都大大增加,因此對于資源要求較高,較為耗時。
DMNEC[40](deep multi-network embedded clustering)則提出了一種基于SAE、VAE、CAE 三種網(wǎng)絡機構(gòu)的多網(wǎng)絡深度聚類算法。它以不同網(wǎng)絡結(jié)構(gòu)作為分支,得到不同的特征,再進行拼接融合,從而得到了互補的最終特征,基于此再進行聚類。網(wǎng)絡微調(diào)階段則是通過引入軟分配的思想,同時借助輔助目標分配,實現(xiàn)多網(wǎng)絡解碼器與簇心的聯(lián)合學習。
MVC-MAE[41](multiple auto-encoder-based multi-view clustering)是一種多模態(tài)深度聚類算法。它通過使用多個自編碼器,在多個模態(tài)的數(shù)據(jù)中提取具有一致和互補信息的特征,最后在統(tǒng)一框架中進行聚類。該算法在目標函數(shù)中引入了一種新的基于交叉熵和正則圖的約束,保證了不同模態(tài)數(shù)據(jù)特征的一致性和互補性。由于充分利用了不同模態(tài)數(shù)據(jù)之間的互補優(yōu)勢,提升了最終聚類效果。
混合模型的深度聚類算法最終效果都比較優(yōu)秀,但由于多個神經(jīng)網(wǎng)絡的存在,導致訓練對資源要求較高,神經(jīng)網(wǎng)絡中相關超參數(shù)的調(diào)整也比較耗時。
基于不同自編碼器的深度聚類算法側(cè)重點各有不同,依據(jù)上文分析結(jié)果,表1 從自編碼器類型、創(chuàng)新、優(yōu)勢和局限性對這幾類自編碼器深度聚類算法做了對比分析。
表1 自編碼器深度聚類算法對比Table 1 Comparison of autoencoder deep clustering algorithms
首先介紹三個實驗所用的公開數(shù)據(jù)集的基本情況,然后分析闡述深度聚類算法的兩個評價指標,最后則通過經(jīng)典聚類方法與基于自編碼器的深度聚類方法在三個數(shù)據(jù)集上的實驗結(jié)果進行對比分析。
本次實驗采用的三個數(shù)據(jù)集為MNIST數(shù)據(jù)集、USPS數(shù)據(jù)集、Fashion-MNIST數(shù)據(jù)集,主要信息如表2所示。
表2 數(shù)據(jù)集屬性Table 2 Dataset properties
其中MNIST 數(shù)據(jù)集和USPS 數(shù)據(jù)集均為灰度手寫體數(shù)字圖像數(shù)據(jù)集,主要區(qū)別為樣本數(shù)目。通過二者的對比,可以看出各個聚類算法對于樣本量的需求。而Fashion-MNIST 數(shù)據(jù)集則是由裙子、外套、運動鞋等灰度圖像組成,與MNIST 數(shù)據(jù)集的區(qū)別是圖片的復雜程度,相互對比可以展示聚類算法面對復雜圖像的聚類效果。
本次算法實驗采取兩個廣泛使用的評價指標來評價相關深度聚類算法的性能,分別是準確率ACC(accuracy)和標準互信息指數(shù)NMI(normalized mutual information)。
ACC 指數(shù)可以直觀地看出正確分配的樣本占全部樣本的比例,相關公式如下:
其中,n是樣本總數(shù),li為真實簇標簽,ci為算法所輸出的預測簇標簽,m(ci)作為映射函數(shù),表示真實標簽與預測標簽之間所有可能的一一映射,一般使用匈牙利算法[42]進行實現(xiàn)。
NMI基于信息熵的思想,用于衡量兩個數(shù)據(jù)分布的吻合程度,也經(jīng)常用來評價聚類效果。相關公式如下:
其中,I(l;c)表示真實標簽與預測標簽之間的互信息程度,H(l)表示真實標簽的熵值,H(c)表示預測標簽的熵值。
ACC、NMI 指數(shù)的值均位于區(qū)間0 和1 之間,值越高,性能越好。
本次對比分析選取了多種經(jīng)典聚類算法以及基于各個自動編碼器結(jié)構(gòu)的具有代表性的深度聚類算法,包括有經(jīng)典的K-means 算法,PCA 降維后的K-means 算法,AE降維后的K-means算法,以及七種具有代表性的基于自編碼器的深度聚類算法(DEC、IDEC、DCEC、DSSEC、VADE、DASC、DMNEC),從而可以全面地對比分析傳統(tǒng)聚類,降維后的傳統(tǒng)聚類以及基于自編碼器的深度聚類的最終效果,更好地展示自編碼器以及聯(lián)合優(yōu)化兩方面對最終聚類效果的影響。
由于K-means算法聚類需確定K值,公平起見,均將K設定為相應數(shù)據(jù)集的類別數(shù)。對于PCA+K-means,AE+K-means,SAE+K-means三種組合方法具體是利用降維方法將數(shù)據(jù)集降到10 維,再運行K-means 算法。對于深度聚類算法,具體結(jié)構(gòu)各不相同,但特征層均設置為10 維,重復的編碼器結(jié)構(gòu)使用了一樣預訓練模型。網(wǎng)絡具體訓練階段,學習率0.001,batch_size 設置為128。
為了保證實驗的公平性,所有復現(xiàn)的算法都基于相同的環(huán)境。具體實驗條件如表3所示。
表3 實驗條件Table 3 Lab environment
本節(jié)展示并分析在MNIST、USPS、Fashion-MNIST數(shù)據(jù)集上不同算法的結(jié)果,各個算法在三個不同數(shù)據(jù)集上的ACC和NMI指數(shù)如表4所示。
表4 實驗結(jié)果對比Table 4 Comparison of experimental results
從實驗結(jié)果可以看出,基于自編碼器的深度聚類算法在三個數(shù)據(jù)集的各個指標均優(yōu)于K-means聚類算法以及傳統(tǒng)的降維方法與K-means聚類算法的結(jié)合。
基于AE、CAE、SAE的深度聚類算法中,基于AE的深度聚類算法結(jié)構(gòu)相對簡單,最終聚類效果雖然在ACC 指標上與其余算法沒有明顯差距,但是在NMI 指標上則處于劣勢,這說明基于AE 的深度聚類算法劃分的各個簇之間的分離度不夠高。而基于CAE、SAE的深度聚類算法在NMI指標上處于優(yōu)勢主要是因為卷積網(wǎng)絡對圖像特征提取的效果優(yōu)于全連接網(wǎng)絡,以及稀疏約束迫使所提取特征分離度更高。
基于VAE的深度聚類算法在MNIST數(shù)據(jù)集上表現(xiàn)較好。但VADE 在小樣本量的USPS 數(shù)據(jù)集上,表現(xiàn)效果就大幅下降,說明了該算法對于訓練數(shù)據(jù)的數(shù)量有著較高的要求。同時,VADE 在圖像較為復雜的Fashion-MNIST 數(shù)據(jù)集上的表現(xiàn)與基于AE、CAE、SAE 的算法并沒有拉開差距,某些指標甚至弱于它們。這說明基于VAE 的深度聚類算法在面對復雜圖像時的生成效果不佳,依舊有較大的改善空間。同時需要注意的是,基于VAE 的深度聚類算法訓練所需要的資源明顯高于其他單一結(jié)構(gòu)的自編碼器深度聚類算法。
基于混合自編碼器結(jié)構(gòu)的深度聚類算法在三個數(shù)據(jù)集上的各項指標均領先單一自編碼器結(jié)構(gòu)的深度聚類算法。這主要是因為通過混合網(wǎng)絡結(jié)構(gòu)算法可以提取到不同側(cè)重點的特征,通過互補可以更好地進行聚類。混合自編碼器結(jié)構(gòu)的深度聚類算法劣勢則是訓練需求也是其余單一結(jié)構(gòu)的自編碼器深度聚類算法的多倍,對訓練資源要求較高。同時,如何設計結(jié)合不同分支網(wǎng)絡結(jié)構(gòu)所提取的特征也是一個難點。例如實驗中的DASC 和DMNEC,其中DASC 是使用譜聚類的思想融合相關特征,DMNEC則是僅僅進行了簡單的特征拼接,沒有采用神經(jīng)網(wǎng)絡進行特征融合,因此DASC 的最終聚類效果相對DMNEC就有一定提升。
隨著數(shù)據(jù)維度和數(shù)量的迅速增長,線性降維之后再進行聚類的方法已經(jīng)無法滿足當今社會的需求,深度學習作為非線性降維的有效方法,逐漸得到了國內(nèi)外研究學者的關注。尤其是將深度學習方法引入聚類領域后所誕生的深度聚類,相比傳統(tǒng)聚類方法取得了明顯的優(yōu)勢,已經(jīng)廣泛應用于目標檢測[43-46]、圖像處理[47-48]、事件分析[49-51]、網(wǎng)絡優(yōu)化[52-53]等各個領域。本文總結(jié)了各類基于自編碼器的深度聚類算法,分析了相關算法的優(yōu)勢與不足,并對深度聚類算法作出如下展望。
(1)理論探索
目前通過聯(lián)合網(wǎng)絡損失與聚類損失的方法顯著提高了深度聚類性能,但對于如何定性地分析特征提取與聚類損失對最終聚類的影響,以及引入聚類損失對特征提取的影響依舊沒有可靠的理論分析。因此,探索深度聚類優(yōu)化的理論基礎,對于指導該領域的進一步研究具有重要意義。
(2)多模態(tài)數(shù)據(jù)融合
現(xiàn)實的應用場景中,需要聚類的往往不是單一的圖像信息,經(jīng)常同時有可以利用的文本、語音信息。而目前的深度聚類算法大多只能利用到其中一類信息,不能很好地利用已有的各種信息。后續(xù)的研究可以考慮充分融合兩種及兩種以上模態(tài)的信息,充分利用不同模態(tài)數(shù)據(jù)之間的互補性,提高聚類效果。
(3)半監(jiān)督學習
深度聚類算法作為無監(jiān)督學習,并不能使用有標記的數(shù)據(jù)進行訓練。但是在實際的應用場景中,更多的時候數(shù)據(jù)并不是完全無標簽,而是少量具有標簽的數(shù)據(jù)和大量無標簽數(shù)據(jù)的場景?,F(xiàn)有的深度聚類算法卻無法利用這些少量的有標簽數(shù)據(jù)。半監(jiān)督學習技術(shù)作為一類可以同時有效利用有標簽數(shù)據(jù)和無標簽數(shù)據(jù)的學習范式,與深度聚類結(jié)合可以更好地提升最終聚類效果。
(4)聚類方法單一
目前的深度聚類算法基本均使用K-means 算法進行最后的聚類步驟,只有少數(shù)算法利用了其余的聚類算法,并沒有充分利用到之前研究傳統(tǒng)聚類算法的積累。實際上DASC 算法在最后的聚類步驟采用了譜聚類的方法,就使得聚類效果有所提升。如何改進K-means算法讓它更加適用于深度聚類算法這一結(jié)構(gòu),或者利用其余優(yōu)秀的傳統(tǒng)聚類算法進行最終聚類,提升效果,是一個值得研究的方向。
(5)模型過擬合與效率
限制深度聚類模型實際應用的因素主要有以下兩點:模型過擬合和模型計算效率[54]。
深度聚類算法需要大量樣本進行訓練。因此在小樣本數(shù)據(jù)集上,深度聚類容易出現(xiàn)過擬合,導致聚類效果下降,降低了模型的泛化性能。因此引入樣本擴充技術(shù),減弱深度聚類算法對于樣本量的需求了,對于深度聚類的實際應用至關重要。
另一方面,深度聚類算法計算復雜度較高,可以從兩方面著手。首先可以采用模型壓縮技術(shù),減少模型的計算量。例如借助剪枝算法對冗余節(jié)點或通道進行切除[55],或者效仿DSSEC算法,通過對網(wǎng)絡添加稀疏化的約束,抑制部分神經(jīng)網(wǎng)絡節(jié)點的激活,有效減少了計算量。其次,可以汲取輕量化模型的思想,譬如借鑒ELMAE算法,通過減少自編碼器參數(shù)迭代的次數(shù)[56],減少了訓練所需時間。此外,分布式的思想也可以用來降低模型的復雜度[57],或研究并行計算從而使現(xiàn)有的計算資源得到充分利用。這些方法都有助于輕量化深度聚類的模型,降低計算資源的要求,節(jié)省訓練時間。