孫 宇,魏本征,劉 川,張魁星,叢金玉,3
1.山東中醫(yī)藥大學 智能與信息工程學院,濟南 250355
2.山東中醫(yī)藥大學 醫(yī)學人工智能研究中心,山東 青島 266122
3.山東中醫(yī)藥大學 青島中醫(yī)藥科學院,山東 青島 266122
自動編碼器是深度學習中重要的無監(jiān)督算法之一,其以神經(jīng)網(wǎng)絡(luò)為支撐,能從大量無標記數(shù)據(jù)中自動提取特征,同時具有結(jié)構(gòu)簡單、無監(jiān)督等優(yōu)點[1-2]。目前被廣泛應(yīng)用在數(shù)據(jù)分類[3-4]、異常檢測[5-6]、模式識別[7-8]及數(shù)據(jù)生成[9-10]等領(lǐng)域。
近年來,諸多研究者從特征提取方式、隱含層特征表達和重構(gòu)誤差損失等方面對傳統(tǒng)自動編碼器進行了諸多改進。在特征提取方面,卷積自動編碼器(convolutional auto-encoders,CAE)[11]、卷積降噪自動編碼器(convolutional denoising auto-encoder,CDAE)[12]和張量自動編碼器(tensor auto-encoder,TAE)[13]等被提出。其中CAE 使用卷積和池化的方式替代原有全連接(fully connection,F(xiàn)N)特征提取,以避免在二維信號特征提取過程中的空間信息損失;CDAE 通過對輸入信號增添一定噪聲形成受損信號,通過對受損信號的特征學習以提升對不同信號的特征提取能力;TAE 是在大數(shù)據(jù)特征學習過程中使用張量對特征進行表示,以解決大數(shù)據(jù)特征學習過程中向量無法建模等問題。在隱含層特征表達方面,飽和自動編碼器(saturating auto-encoders,SAE)[14]、變分自動編碼器(variational auto-encoders,VAE)[15]和大邊緣自動編碼器(large margin auto-encoders,LMAE)[16]等被提出。其中SAE 是在隱含層特征表達中增加一個正則項,以使得所提取特征處于激活函數(shù)的飽和區(qū)域;VAE 在對輸入數(shù)據(jù)特征進行學習的同時也對所提取特征的概率分布進行學習,再利用所學特征分布來產(chǎn)生與原始輸入類似的數(shù)據(jù)。在重構(gòu)誤差損失方面,收縮自動編碼器(contractive auto-encoders,Con-AE)[17]和區(qū)分自動編碼器(discriminative auto-encoders,DAE)[18]等被提出。其中Con-AE 通過對重構(gòu)損失函數(shù)增加一個懲罰項來抑制特征在不相關(guān)方向上的擾動,以此實現(xiàn)特征收縮;DAE 通過對重構(gòu)損失函數(shù)增加一個區(qū)分正則項來增強對幾何結(jié)構(gòu)特征的區(qū)分性,以提升特征提取能力。
現(xiàn)有自動編碼器雖已在特征提取方面取得了一定進展,但仍存在編碼過程中缺乏特征融合,解碼過程中逐層上采樣導(dǎo)致模型效率低下,以及損失函數(shù)過早最優(yōu)化導(dǎo)致模型早熟等問題。為解決上述問題,本文設(shè)計了一種融減自動編碼器(melting reduction auto-encoder,MRAE)。一方面,該算法在模型結(jié)構(gòu)方面提出了“融減網(wǎng)絡(luò)結(jié)構(gòu)”,以此建立特征層之間的聯(lián)系和提升解碼效率;另一方面,設(shè)計了一種聯(lián)合重構(gòu)損失函數(shù),用于特征之間的優(yōu)化和避免模型早熟[19]。在肺部CT 圖像上的實驗結(jié)果表明,融減網(wǎng)絡(luò)結(jié)構(gòu)以及聯(lián)合重構(gòu)損失函數(shù)能夠顯著提升模型特征提取能力;同時,融減自動編碼器在肺部CT 圖像數(shù)據(jù)集和CvD(cats vs.dogs)數(shù)據(jù)集上均能提取到有效特征,且特征能力顯著優(yōu)于其他同類算法。
傳統(tǒng)自動編碼器網(wǎng)絡(luò)結(jié)構(gòu)示意圖如圖1 所示。傳統(tǒng)自動編碼器主要由編碼器、解碼器和隱含層三部分構(gòu)成[20]。編碼器主要是對輸入信息進行特征提取,解碼器是對特征進行解碼恢復(fù),隱含層利用恢復(fù)信號和輸入信號間的重構(gòu)損失函數(shù)對特征進行優(yōu)化。
Fig.1 Auto-encoder network structure圖1 傳統(tǒng)自動編碼器網(wǎng)絡(luò)結(jié)構(gòu)
傳統(tǒng)自動編碼器的編碼過程可描述為:
解碼過程可描述為:
重構(gòu)損失函數(shù)定義為:
式中,α為激活函數(shù),常用激活函數(shù)為Sigmoid 和ReLU 等[21];W和b為相鄰節(jié)點權(quán)重和偏置;*為卷積操作;X={x1,x2,…,xN}為輸入數(shù)據(jù),其中x為M維矢量;Z為隱含層特征;Y為輸出數(shù)據(jù);LAE(W,b)表示輸入信號和恢復(fù)信號的損失誤差。
目前自動編碼器在圖像特征提取過程中隨著網(wǎng)絡(luò)加深所提取的特征會逐漸變得抽象,這容易使模型忽略輸入數(shù)據(jù)的細節(jié)特征;同時不相鄰特征層之間只能通過逐層前向傳播進行特征傳遞,這使得前端局部特征無法和后端抽象特征直接進行特征交互,最終限制了模型所提取特征的表達能力[22]。
本文為提高自動編碼器對不同任務(wù)的泛化性和對相同任務(wù)的魯棒性,針對編碼器和解碼器的不同目標,提出一種融減網(wǎng)絡(luò)結(jié)構(gòu)。該結(jié)構(gòu)基于跳躍連接思想在編碼器中將前端局部特征和后端抽象特征進行跨層融合,以加強前后不相鄰特征層間的信息交互,進而提升目標特征表達能力;在解碼器中通過縮減解碼層數(shù)避免逐層解碼造成特征損失和降低模型參數(shù)量[19]。
融減網(wǎng)絡(luò)結(jié)構(gòu)在編碼器中具體原理是將前端局部特征通過跳躍連接與后端抽象特征進行融合,每層局部特征只傳遞一次,每層抽象特征也只與一層局部特征融合。融減網(wǎng)絡(luò)結(jié)構(gòu)的編碼原理如圖2 所示。
圖2 中,X表示原始輸入;Elayer={1,2,3}表示不同特征提取層;Z表示所提取特征。融減網(wǎng)絡(luò)結(jié)構(gòu)中編碼器的特征融合原理可表示為:
其中,Qk為第k層特征;Qa為第a層特征;Qd為第d層特征;β為激活函數(shù);Wa為第a特征層中節(jié)點權(quán)重;Wd為第d特征層中節(jié)點權(quán)重;Ea為第a特征層的輸入;Ed為第d特征層的輸入;bk為第k特征層偏置;*為卷積操作。
Fig.2 Encoder structure of ablation network structure圖2 融減網(wǎng)絡(luò)結(jié)構(gòu)編碼結(jié)構(gòu)
在解碼器中,為避免逐層解碼造成特征損失,提高解碼效率及降低模型參數(shù)量,融減網(wǎng)絡(luò)結(jié)構(gòu)按照恢復(fù)信號與輸入信號尺寸相等的原則對解碼器結(jié)構(gòu)進行優(yōu)化[23]。融減網(wǎng)絡(luò)結(jié)構(gòu)的解碼結(jié)構(gòu)原理示意圖如圖3 所示。
Fig.3 Decoder structure of ablation network structure圖3 融減網(wǎng)絡(luò)結(jié)構(gòu)解碼結(jié)構(gòu)
圖3 中,Z表示解碼特征;Dlayer={1,2,3}表示不同解碼層;Y表示恢復(fù)信號。如圖3 所示,在解碼中通過增大每個解碼層輸出尺寸實現(xiàn)特征快速解碼,這不僅可降低逐層解碼過程中信息損失,也能提高特征解碼質(zhì)量;同時網(wǎng)絡(luò)層數(shù)的減少會降低模型參數(shù)量,提高模型的魯棒性和泛化性。
目前基于重構(gòu)誤差損失所改進的自動編碼器,主要是增加不同正則項實現(xiàn)對模型的松弛或限制?,F(xiàn)有模型僅對恢復(fù)信號和輸入信號計算重構(gòu)誤差損失以優(yōu)化所提取的特征,在編碼器和解碼器的特征層之間缺乏聯(lián)系,這不僅容易使模型陷入早熟,也限制了模型特征學習能力。針對該問題本文設(shè)計了一種新型的聯(lián)合重構(gòu)損失函數(shù),具體結(jié)構(gòu)示意圖如圖4所示。
其中,LMRAE(W,b)表示聯(lián)合重構(gòu)損失函數(shù);LMRAE(X,Y)表示輸入信號和恢復(fù)信號之間的重構(gòu)損失;LMRAE(E,D)表示對稱特征層之間的重構(gòu)損失;N表示樣本組數(shù);上述兩個過程均用均方誤差損失函數(shù)。LMRAE(W,b)的具體定義如下:
如圖4 所示,本文在相互對稱的特征層之間構(gòu)造了基于特征的重構(gòu)損失函數(shù),并與恢復(fù)信號和輸入信號之間的重構(gòu)損失函數(shù)按照相同權(quán)重形成聯(lián)合重構(gòu)損失函數(shù)。該函數(shù)通過在對稱特征層之間建立聯(lián)系,不僅可使模型訓(xùn)練更加充分,也可有效避免模型早熟。
本文基于融減網(wǎng)絡(luò)結(jié)構(gòu)和聯(lián)合重構(gòu)損失函數(shù)提出了融減自動編碼器。該模型以分辨率512×512 的肺部CT 圖像為例,具體網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。
在編碼器中:首先,為了增強對質(zhì)量各異信號的適應(yīng)能力以及減少訓(xùn)練數(shù)據(jù)和驗證數(shù)據(jù)之間的代溝,使模型學習到更加魯棒的特征和提升對信號的表達能力,基于降噪自動編碼器思想,使用均勻分布產(chǎn)生噪聲對輸入信號進行破壞以形成受損信號[24];其次,利用4 組卷積和池化操作對受損信號進行特征提取和降維;最后,在特征提取的第3 特征層對第1 特征層進行融合,在第4特征層對第2特征層進行融合。
第3 層特征層融合后的特征可表示為:
第4 層特征層融合后的特征可表示為:
Fig.5 MRAE network structure圖5 融減自動編碼器網(wǎng)絡(luò)結(jié)構(gòu)
其中,Q3和Q4分別表示融合后的第3 和第4 特征層;β為Sigmoid 激活函數(shù);*表示卷積操作;W和b分別為融合節(jié)點的權(quán)重和偏置。
在解碼器中,模型將原本應(yīng)與編碼器對稱的4 層解碼層精簡到2層,這不僅能提升模型效率和,也能避免多層解碼導(dǎo)致特征解碼損失增加;同時解碼層減少不僅降低了模型參數(shù)量,也能克服層數(shù)加深引起的梯度消失等問題。網(wǎng)絡(luò)參數(shù)量統(tǒng)計表明,相同內(nèi)核的卷積自動編碼器參數(shù)量為2 325 600,卷積降噪自動編碼器參數(shù)量為2 473 056,而融減自動編碼器參數(shù)量僅為1 670 016,這分別下降了28.19%和32.47%。
在聯(lián)合重構(gòu)損失函數(shù)方面,模型在相互對稱的編碼第2 特征層和解碼第1 特征層之間計算均方誤差損失,并與恢復(fù)信號和輸入信號的均方誤差損失形成聯(lián)合重構(gòu)損失一并進行優(yōu)化。最終聯(lián)合損失函數(shù)可表示為:
其中,LMRAE(W,b)為最終的聯(lián)合損失函數(shù);LMRAE(W1,b)為輸入信號與恢復(fù)信號之間均方誤差;LMRAE(W2,b)為對應(yīng)特征層之間的均方誤差。其中,D1和D2分別表示解碼第1 和第2 特征層,x表示原始輸入;E2表示第2 特征編碼層。
在模型參數(shù)配置方面,融減自動編碼器為提高特征提取質(zhì)量并減少模型參數(shù)量,在卷積和池化過程中均采用小尺寸內(nèi)核進行特征提取和降維[25]。融減自動編碼器網(wǎng)絡(luò)參數(shù)如表1 所示。
Table 1 MRAE network parameters表1 融減自動編碼器網(wǎng)絡(luò)參數(shù)
本文實驗分別使用中國胸部CT 圖像調(diào)查協(xié)會(CC-CCII)發(fā)布的肺部CT 圖像數(shù)據(jù)集[26]和CvD 數(shù)據(jù)集。其中肺部CT 圖像數(shù)據(jù)集中包含各類常見肺炎以及正常肺部的CT 圖像共計60 余萬張,單張圖像分辨率均為512×512;CvD 數(shù)據(jù)集包含貓和狗2 類共37 500 張圖片,由于每張圖片的尺寸不同,本文在特征提取之前將每張圖片尺寸均格式化成384×384。
在肺部CT 圖像數(shù)據(jù)集中存在每個病例成像張數(shù)不同,所掃描圖像包含病灶圖像比例低,存在大量不含任何肺部特征信息的無效圖像等問題[27]。為減少模型訓(xùn)練時間和無效圖像對模型訓(xùn)練的影響,本實驗從各類肺炎以及正常肺部圖像中隨機選取1 000張圖像,組成LC-2000 數(shù)據(jù)集;為進一步驗證模型性能,再從各類肺炎以及正常肺部圖像中隨機選取2 000張圖像,組成LC-4000 數(shù)據(jù)集進行實驗。
本文使用LC-2000 和LC-4000 數(shù)據(jù)集對融減自動編碼器的特征提取性能、融減網(wǎng)絡(luò)結(jié)構(gòu)以及聯(lián)合重構(gòu)損失函數(shù)的有效性進行測試,使用CvD 數(shù)據(jù)集對融減自動編碼器的泛化性進行測試。在實驗過程中為避免樣本劃分不一致導(dǎo)致的模型不穩(wěn)定等現(xiàn)象,本文采用交叉驗證的方式將數(shù)據(jù)集劃分成5 份,其中訓(xùn)練集、驗證集以及測試集的劃分比例為8∶1∶1。
3.3.1 融減自動編碼器特征提取性能測試
為驗證融減自動編碼器特征提取性能,本文在LC-2000、LC-4000 數(shù)據(jù)集上依次采用卷積自動編碼器、卷積降噪自動編碼器和融減自動編碼器進行特征提取,并將所提取的特征分別使用支持向量機(support vector machine,SVM)、K-means 和分類回歸決策樹(classification and regression tree,CART)分類器進行分類,不同自動編碼器所提取特征的分類準確率如表2 所示。
由研究結(jié)果可知:首先,在測試集上與卷積自動編碼器和卷積降噪自動編碼器相比,融減自動編碼器所提取特征的肺炎篩查準確率在K-means 分類器上平均提高15.9 個百分點,在SVM 分類器上平均提高15.33 個百分點,在CART 分類器上平均提高16.78個百分點,這表明融減自動編碼器在特征提取方面相比同類算法具有更好的性能。其次,基于融減自動編碼器所提取的特征在不同分類器上的分類準確率均大于97%,說明模型所提取特征對于不同肺部圖像具有較強的魯棒性。最后,融減自動編碼器在驗證集和測試集上所提取特征的分類準確率近乎相同且五折交叉驗證的精度差距均在4%以內(nèi),這表明模型有較強穩(wěn)定性和抗擬合能力。
Table 2 Comparison of classification accuracy of features extracted by different AE表2 不同編碼器所提取特征分類準確率對比
3.3.2 融減網(wǎng)絡(luò)結(jié)構(gòu)和聯(lián)合重構(gòu)損失函數(shù)性能測試
為驗證融減網(wǎng)絡(luò)結(jié)構(gòu)、聯(lián)合重構(gòu)損失函數(shù)的有效性,本文以特征提取能力較強的卷積自動編碼器為基礎(chǔ),分別在LC-2000、LC-4000 數(shù)據(jù)集上使用融減網(wǎng)絡(luò)結(jié)構(gòu)、聯(lián)合重構(gòu)損失函數(shù)對其進行改進,并將改進后模型所提取的特征分別使用SVM、K-means 和CART 分類器進行肺炎篩選,以此驗證融減網(wǎng)絡(luò)結(jié)構(gòu)、聯(lián)合重構(gòu)損失函數(shù)的有效性,改進后卷積自動編碼器所提取特征分類準確率如表3 所示。
由表3 分析可知,在測試集上與卷積自動編碼器相比,利用融減網(wǎng)絡(luò)結(jié)構(gòu)改進后卷積自動編碼器所提取特征的肺炎篩查準確率在K-means 分類器上平均提高了8.56 個百分點,在SVM 分類器上平均提高了9.57 個百分點,在CART 分類器上平均提高了9.35個百分點,這說明融減網(wǎng)絡(luò)結(jié)構(gòu)和聯(lián)合重構(gòu)損失函數(shù)對模型性能提升具有顯著的有效性。
Table 3 Comparison of classification accuracy of features extracted by improved CAE表3 改進后卷積自動編碼器所提取特征分類準確率對比
3.3.3 融減自動編碼器泛化性能測試
為進一步驗證融減自動編碼器的泛化性,本文在CvD 數(shù)據(jù)集上分別使用卷積自動編碼器、卷積降噪自動編碼器以及融減自動編碼器進行特征提取,并將提取后的特征使用全連接進行樣本分類,以此來驗證融減自動編碼器在不同數(shù)據(jù)集上以及采用不同分類方式時模型的泛化性。在CvD 數(shù)據(jù)集的測試集上不同算法分類準確率如圖6 所示。
Fig.6 Comparison of classification accuracy of features extracted on CvD testset圖6 在CvD 測試集中所提取特征分類準確率對比
由圖6 可知,融減自動編碼器在CvD 數(shù)據(jù)集測試過程中與卷積自動編碼器和卷積降噪自動編碼器相比,準確率平均提高33.55 個百分點以上,這說明在不同數(shù)據(jù)集上融減自動編碼器特征提取能力均顯著優(yōu)于同類算法。值得指出的是,融減自動編碼器不同折數(shù)之間準確率平方差僅為1.20,這表明融減自動編碼器在不同圖像特征提取任務(wù)中具有較強的魯棒性。
本文提出了一種融減自動編碼器,該模型可有效解決現(xiàn)有自動編碼器特征缺乏融合、信息損失過多以及模型容易早熟等問題。一方面,該模型利用所提出的融減網(wǎng)絡(luò)結(jié)構(gòu)在提高特征質(zhì)量的同時,可有效降低模型參數(shù)量;另一方面,利用所提出的聯(lián)合重構(gòu)損失函數(shù)不僅加強了中間特征層的聯(lián)系,而且可有效避免模型早熟。
研究結(jié)果表明,融減網(wǎng)絡(luò)結(jié)構(gòu)和聯(lián)合損失重構(gòu)函數(shù)對模型圖像特征提取能力的提升有顯著作用,同時融減自動編碼器對參數(shù)初始值依賴較小且在不同類型圖像特征提取方面均有良好的魯棒性,是一種無監(jiān)督圖像特征提取的有效方法。雖然“融減網(wǎng)絡(luò)結(jié)構(gòu)”解碼器中層數(shù)精簡能提升模型運算效率和減少特征解碼損失,但也會因解碼步長過大造成恢復(fù)信號粗糙以及部分細節(jié)特征遺漏等,在部分任務(wù)中容易導(dǎo)致模型性能降低。在未來的工作中,可進一步優(yōu)化融減網(wǎng)絡(luò)結(jié)構(gòu)以及聯(lián)合重構(gòu)損失函數(shù)各組成部分的權(quán)重系數(shù),使融減自動編碼器具有更好特征提取能力的同時,也能在不同任務(wù)需求中發(fā)揮更大的作用。