徐慧英, 董仕豪, 朱信忠, 趙建民
(浙江師范大學 數(shù)學與計算機科學學院,浙江 金華 321004)
數(shù)據(jù)聚類的問題涉及場景十分廣泛,包括深度學習、模式識別、圖像處理及生物信息.聚類的目的是根據(jù)相似性度量(如歐氏距離)將相似數(shù)據(jù)分為一個類.科技的發(fā)展使數(shù)據(jù)收集變得更加方便,產(chǎn)生的數(shù)據(jù)維度也越來越高,數(shù)據(jù)間的相關(guān)性更加復雜.隨著數(shù)據(jù)集變得越來越大和越來越多樣化,需要對現(xiàn)有算法進行調(diào)整以保持聚類的質(zhì)量和效率.傳統(tǒng)的聚類算法由于數(shù)據(jù)維度不高,且為了能夠獲取所有的信息,所以會考慮數(shù)據(jù)的所有維度.但在高維數(shù)據(jù)中,數(shù)據(jù)的多個維度通常是不相關(guān)的,這些無關(guān)的維度會在嘈雜的數(shù)據(jù)中隱藏聚類,使得聚類算法混淆不清.在非常高維度的數(shù)據(jù)集中,所有對象彼此之間幾乎等距,從而完全掩蓋了聚類.特征選擇方法已在某種程度上成功地用于改善聚類質(zhì)量.近幾年來,深度學習廣泛的應(yīng)用場景,如人工智能、智慧城市、聯(lián)合醫(yī)療等,使得聚類分析有了新的發(fā)展空間.
自深度學習廣泛且成功地應(yīng)用以來[1-3],自動學習最優(yōu)表示已經(jīng)成為主流,通過自動學習更好的特征表示在標準任務(wù)上獲得了較好的結(jié)果.自動學習特征表示任務(wù)又被稱為表示學習.更具體地說,表示學習是學習給定數(shù)據(jù)最顯著特征的任務(wù),即能表達數(shù)據(jù)底層結(jié)構(gòu)的特征.它隱式地在有監(jiān)督的深層神經(jīng)網(wǎng)絡(luò)中完成,通過使用其隱藏層來學習并為最后一層提供表示,從而使分類或回歸等任務(wù)變得更加容易.例如,在原始特征空間中,線性不可分的數(shù)據(jù)點可以通過在隱藏層中的特征表示的組合在最后一個隱藏層處線性可分.因此,相對于特征工程,自動學習表示可以不受任務(wù)的影響,學習盡可能好的特征表示,以便在分類、聚類和回歸等下游任務(wù)中獲得更好的性能.為了進一步利用表示學習,可以顯式地設(shè)計目標函數(shù)來學習有利于下游任務(wù)的表示,如聚類.深度嵌入聚類巧妙地將自編碼器網(wǎng)絡(luò)與聚類算法相結(jié)合,使用深度神經(jīng)網(wǎng)絡(luò)同時學習特征表示和聚類指派;變分深度嵌入算法是一種在變體自編碼器框架內(nèi)的無監(jiān)督生成聚類方法,該模型使用高斯混合模型和深層神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)生成過程進行建模;生成對抗網(wǎng)絡(luò)聚類[4]提出了使用生成對抗網(wǎng)絡(luò)進行聚類的新機制,通過從單熱點編碼變量和連續(xù)潛變量的混合變量中采樣潛變量,再加上結(jié)合聚類特定損失而訓練的逆網(wǎng)絡(luò)(將數(shù)據(jù)投射到潛空間),能夠在潛在空間中實現(xiàn)聚類;淺層深度聚類[5]使用淺層聚類算法而不是更深層的網(wǎng)絡(luò)進行聚類,在原始數(shù)據(jù)和自動編碼的嵌入方面研究了多種局部和全局流形學習方法;分離內(nèi)部表示聚類[6]提出了一種更簡單的方法來優(yōu)化自編碼器的參數(shù)學習及解除潛在編碼表示的糾纏,將糾纏定義為來自相同類或結(jié)構(gòu)的點對相對于來自不同類或結(jié)構(gòu)的點對的接近程度;深度自監(jiān)督聚類集成算法[7]首先根據(jù)基礎(chǔ)聚類劃分結(jié)果采用加權(quán)連通三元組算法計算樣本之間的相似度矩陣,基于相似度矩陣表達鄰接關(guān)系,然后將基礎(chǔ)聚類由特征空間中的數(shù)據(jù)表示變換至圖數(shù)據(jù)表示,在此基礎(chǔ)上,將基礎(chǔ)聚類的一致性集成問題轉(zhuǎn)化為對基礎(chǔ)聚類的圖數(shù)據(jù)表示的聚類問題;深度多網(wǎng)絡(luò)嵌入聚類[8]以端到端的方式預訓練多個異構(gòu)網(wǎng)絡(luò)分支,獲取各網(wǎng)絡(luò)的初始化參數(shù),在此基礎(chǔ)上,定義多網(wǎng)絡(luò)軟分配,借助多網(wǎng)絡(luò)輔助目標分布建立面向聚類的KL(Kullback-Leibler)散度損失,與此同時,利用樣本重構(gòu)損失對預訓練階段的解碼網(wǎng)絡(luò)進行微調(diào),保留數(shù)據(jù)的局部結(jié)構(gòu)性質(zhì),避免特征空間發(fā)生扭曲.通過隨機梯度下降與反向傳播優(yōu)化重構(gòu)損失與聚類損失的加權(quán)和,聯(lián)合學習多網(wǎng)絡(luò)表征及其簇分配.
與這些復雜的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相比,本研究提出的結(jié)構(gòu)利用自編碼器學習數(shù)據(jù)的潛在表示形式,然后使用該形式進行聚類.本研究在對提取數(shù)據(jù)的潛在表示形式和融合方式上進行了創(chuàng)新.
(1)
現(xiàn)有文獻已提出了多種自編碼器[9],并應(yīng)用于深度聚類中,主要改進集中在以下幾個方面:
結(jié)構(gòu):原始的自編碼器由多層神經(jīng)元組成.當輸入的數(shù)據(jù)是圖像時,通常使用卷積神經(jīng)網(wǎng)絡(luò)構(gòu)造的卷積自編碼器來處理.
潛在特征的約束:欠完備自編碼器(under-complete autoencoder)的潛在特征的維度小于輸入樣本的維度,能夠有效提取原始數(shù)據(jù)的潛在特征.稀疏自編碼器[11]能夠施加稀疏約束.
卷積網(wǎng)絡(luò)對圖像特征的提取明顯要優(yōu)于全連接網(wǎng)絡(luò),盡管已提出了殘差神經(jīng)網(wǎng)絡(luò)用于提高多層卷積網(wǎng)絡(luò)性能的方法,但多層卷積網(wǎng)絡(luò)對于圖像的整體特征及相關(guān)性的把握隨著網(wǎng)絡(luò)的加深卻表現(xiàn)得不太理想.本研究通過多模態(tài)網(wǎng)絡(luò),尋求不同網(wǎng)絡(luò)結(jié)構(gòu)的相異性來提取相同數(shù)據(jù)的異向特征,用于提高網(wǎng)絡(luò)提取圖像全局特征與局部特征的能力.
圖1 基于自編碼器的多模態(tài)深度嵌入式聚類結(jié)構(gòu)
基于自編碼器的多模態(tài)深度嵌入式模型(MDEC)的結(jié)構(gòu)如圖1所示,該結(jié)構(gòu)由4部分組成:1)由自編碼器(AE)、卷積自編碼器(convolutional autoencoders,CAE)、卷積變分自編碼器(convolutional variational autoencoder,CVAE)組成的編碼器結(jié)構(gòu);2)多模態(tài)自適應(yīng)融合層;3)深度嵌入式聚類層;4)解碼器.
本研究設(shè)計的網(wǎng)絡(luò)基于自編碼器、卷積自編碼器、變分自編碼器這3種最有代表性的自編碼器結(jié)構(gòu),并在此基礎(chǔ)上結(jié)合深度子空間聚類結(jié)構(gòu)組合而成.通過3種不同編碼器獲取原始數(shù)據(jù)的不同模態(tài)特征.3種特征存在相同和不同的信息,本研究的目的是將相同的特征信息合并,不同的特征信息相互補充,即多模態(tài)自適應(yīng)融合,設(shè)置了融合重要性權(quán)重ω來表示3種子空間對融合子空間的不同貢獻度,融合權(quán)重能通過網(wǎng)絡(luò)迭代不斷調(diào)整每個子空間的貢獻度,使得融合后的子空間能更好地表征原始數(shù)據(jù).將融合后的子空間特征輸入深度聚類層得到最終的聚類結(jié)果.
1)編碼器
Zm=hm(X;θm),m=1,2,3.
(2)
2)多模態(tài)自適應(yīng)融合層
為了獲取原始數(shù)據(jù)更全面的信息,將不同自編碼器獲取的特征矩陣Zm通過自適應(yīng)融合的方式進行融合,得到融合特征矩陣Z,對應(yīng)的特征空間表示為Z,即
(3)
(4)
式(4)中:ωm分別通過使用λm作為控制參數(shù)的Softmax函數(shù)定義;λm作為可學習的參數(shù),隨機初始化后通過標準反向傳播進行自動學習.
3)深度嵌入式聚類層
4)解碼器
為了能更好地學習到原始數(shù)據(jù)的特征,本研究使用與編碼器鏡像對稱的結(jié)構(gòu)解碼,即
(5)
損失函數(shù)由3部分組成:1)重構(gòu)損失LR通過更新自編碼器、卷積自編碼器、卷積變分自編碼器的網(wǎng)絡(luò)參數(shù)來學習數(shù)據(jù)的低維嵌入特征;2)聚類損失LC通過更新聚類結(jié)果、自編碼器參數(shù)和融合參數(shù)保證低維嵌入特征有利于聚類任務(wù);3)融合損失LF通過更新融合參數(shù)ω使得各個模態(tài)的特征以最優(yōu)的方式進行組合.整體損失函數(shù)如下:
L=LR+γLC+LF.
(6)
式(6)中,γ為聚類損失的權(quán)重系數(shù).
1)重構(gòu)損失
模型將編碼器和解碼器輸出的平方差函數(shù)作為重構(gòu)損失,一方面用于預訓練自編碼器,得到一個好的初始化模型;另一方面用于在聚類學習過程中保持數(shù)據(jù)的幾何結(jié)構(gòu)不變,則
(7)
2)聚類損失
使用學生T分布作為核函數(shù)計算特征點zi和聚類中心μj的相似度,即
(8)
式(8)中:zi為樣本xi的融合特征,即融合特征矩陣Z的第i行;α表示學生T分布[13]的自由度;qij表示第i個樣本屬于第j類的概率.本研究通過將軟分配與目標分布相匹配來訓練模型,損失函數(shù)定義為軟分配qij和輔助目標分布pij之間的KL散度,即
(9)
式(9)中:i=1,2,…,n;j=1,2,…,k;pij定義為
(10)
3)融合損失
從多個編碼器獲取的不同潛在特征Zm后,采用多模態(tài)融合的方法,將公共子空間特征與融合前的特征的平方差函數(shù)作為融合損失,使得公共子空間特征能最大限度地表示原始數(shù)據(jù),定義為
(11)
將訓練分為2個階段,分別是預訓練初始化階段和聚類優(yōu)化階段.在預訓練初始化階段,使用下面的損失函數(shù)訓練模型:
L1=LR+LF.
(12)
聚類優(yōu)化階段使用下面的損失函數(shù):
L2=LR+LF+γLC.
(13)
通過帶動量的隨機梯度下降函數(shù)聯(lián)合優(yōu)化聚類中心μj和網(wǎng)絡(luò)參數(shù)θ.損失函數(shù)關(guān)于每個數(shù)據(jù)點zi和類中心μj的梯度計算如下:
(14)
(15)
通過不同的編碼器提取不同的潛在特征,并將特征融合到公共子空間中.經(jīng)過預訓練后,得到初始化的融合參數(shù)和模型參數(shù),然后對融合后的公共子空間執(zhí)行k-means聚類初始化聚類中心μj.
圖2 數(shù)據(jù)集
實驗均在深度學習GPU工作站上完成,工作站配置:CPU i7-9700k,GPU GeForce RTX 2080Ti.操作系統(tǒng)Ubuntu 18.04.5LTS,項目環(huán)境Python 3.6和TensorFlow 2.2.0框架來實現(xiàn)模型.設(shè)計了5次實驗,最終實驗結(jié)果通過去掉最高和最低的值并取平均,與經(jīng)典算法和當前表現(xiàn)最好的、具有代表性的算法進行比較,驗證本模型的有效性,并在4種公開數(shù)據(jù)集(見圖2)上測試,詳細數(shù)據(jù)集統(tǒng)計見表1.
表1 數(shù)據(jù)集統(tǒng)計
1)MNIST[14]
數(shù)據(jù)集由70 000個手寫數(shù)字組成,大小為256像素.這些數(shù)字已經(jīng)居中并進行尺寸規(guī)格化.
2)Fashion-MNIST[15]
數(shù)據(jù)集包含來自10個類別的70 000個時尚產(chǎn)品圖片,并且圖片大小與MNIST相同.
3)COIL20[16]
數(shù)據(jù)集收集從不同角度觀看的20種類別的1 440個128×128灰度對象圖像.
4)USPS[17]
數(shù)據(jù)集包含9 298個灰度手寫數(shù)字圖像,大小為16×16像素.特征為[0,2]中的浮點數(shù).
參數(shù)設(shè)置:根據(jù)DEC,IDEC[18],DCEC[19],VDEC[20]中網(wǎng)絡(luò)參數(shù)的設(shè)置,自編碼器網(wǎng)絡(luò)和解碼器網(wǎng)絡(luò)的配置參數(shù)見表2,特征提取空間保持相同,都是1×10的向量.除輸入層、輸出層和嵌入層外,所有內(nèi)部層均由ReLU非線性函數(shù)激活.編碼器網(wǎng)絡(luò)的預訓練設(shè)置與IDEC完全相同.在預訓練之后,將批大小設(shè)置為256個樣本,初始學習率為λ=0.001,β1=0.900,β2=0.999的優(yōu)化器Adam用于MNIST數(shù)據(jù)集,SGD的學習率λ=0.100,動量β=0.990用于USPS和Fashion-MNIST數(shù)據(jù)集.收斂閾值設(shè)置為δ=0.1%,并且對于MNIST,USPS和Fashion-MNIST,更新間隔分別為140次、30次和3次迭代,γ取0.1.
表2 網(wǎng)絡(luò)配置
評估指標:所有聚類方法均通過聚類精度(ACC)和歸一化互信息(NMI)進行評估,這2種類型的方法廣泛用于無監(jiān)督學習場景中.
第1個指標是聚類精度ACC,
(16)
式(16)中:yi是真實標簽;ci是由算法生成的聚類分布;o是一個映射函數(shù),其作用范圍是分布和標簽之間所有可能的一對一映射.
第2個是歸一化互信息NMI,
(17)
式(17)中:Y表示真實標簽;C表示聚類標簽;I表示互信息度量;H表示熵.
實驗分為預訓練階段和深度聚類階段,預訓練階段損失函數(shù)變化如圖3所示,深度聚類階段準確率和損失函數(shù)如圖4所示.圖4中,紅色曲線為聚類階段準確率,綠色曲線為聚類損失L2,黃、藍、青曲線為3種編碼器的重構(gòu)損失.通過預訓練,深度聚類階段的重構(gòu)損失趨于穩(wěn)定,通過降低聚類損失最終提高聚類性能.
圖3 預訓練損失 圖4 深度聚類階段準確率、聚類損失、重構(gòu)損失
通過縱向比較,即對比單獨使用自編碼器、卷積自編碼器、變分自編碼器3種深度聚類模型DEC,IDEC,DCEC,VDEC,結(jié)果見表3.本研究提出的MDEC算法的確能夠很好地融合3種編碼器的特征并得到更好的聚類結(jié)果.除此之外也對比了一些現(xiàn)在具有代表性的多模態(tài)聚類算法,如RMKMC[21],DCCA[22],DCCAE[23],DGCCA[24],DMSC[25],ASPC-DA[26],N2D[5],ClusterGAN[27],SNNL-5[6],SDCN[28],k-DAE[29],以展示本文模型更好的性能,結(jié)果見表4.
表3 算法比較(縱向)
表4 算法比較(橫向)
將MDEC模型3個不同的模態(tài)通過不同的組合方式進行消融分析,結(jié)果見表5.通過測試單一模態(tài)模型、雙模態(tài)模型和多模態(tài)模型,并且在MNIST數(shù)據(jù)集上進行比較分析.卷積自編碼器和卷積變分自編碼器都是基于卷積神經(jīng)網(wǎng)絡(luò),對于圖像的處理結(jié)果要優(yōu)于一般的自編碼器,但在多模態(tài)組成的模型中,自編碼器模型在一定程度上能夠提高整個模型的效果.此外,比較了單個編碼模型與多模態(tài)融合模型的可訓練參數(shù)數(shù)量、運行時間及顯存占用情況,結(jié)果見表6.
表5 多模態(tài)模型消融分析結(jié)果比較
表6 多模態(tài)與單一模型復雜度比較
隨著海量數(shù)據(jù)的不斷積累,傳統(tǒng)算法已不能滿足對海量高維數(shù)據(jù)的處理需求.聚類與深度學習的結(jié)合在這種情況下應(yīng)運而生,深度神經(jīng)網(wǎng)絡(luò)能更好地學習高維數(shù)據(jù)的潛在低維特征表示,從而有利于聚類任務(wù).本研究提出了一種新的基于自編碼器的多模態(tài)深度嵌入聚類算法,并在多個數(shù)據(jù)集上驗證了本模型的有效性.未來研究方向集中在以下幾個方面:
1)盡管本研究提出的模型通過結(jié)合自編碼器結(jié)構(gòu)和嵌入式聚類模型顯著提高了聚類性能,但神經(jīng)網(wǎng)絡(luò)缺乏可解釋性,因此,探索深度聚類的理論保證對指導這一領(lǐng)域未來的研究有著無法忽視的作用.
2)本模型主要是針對圖像數(shù)據(jù)集,而未對語音、文本等時序型數(shù)據(jù)進行探索,為此,未來將探索其他網(wǎng)絡(luò)結(jié)構(gòu)(例如遞歸神經(jīng)網(wǎng)絡(luò))與聚類相結(jié)合的可行性.
3)本模型主要將深度神經(jīng)網(wǎng)絡(luò)與k-means相結(jié)合,而沒有考慮其他的聚類任務(wù).未來將研究多任務(wù)聚類、自學式聚類(轉(zhuǎn)移聚類)等與深度神經(jīng)網(wǎng)絡(luò)相結(jié)合的算法.
4)本模型對多模態(tài)特征的融合方式局限于自適應(yīng)特征融合,未來將考慮其他的融合方式,包括一些線性的和非線性的融合方式.