黃志倫,劉 俊,鄭 萌
(1.武漢科技大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,湖北 武漢 430065;2.智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室(武漢科技大學(xué)),湖北 武漢 430065;3.武漢理工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,湖北 武漢 430070)
皮膚容易受到感染并引發(fā)炎癥,因為皮膚作為人體最大的器官,是直接與外界的細菌或者病毒等感染源接觸,所以皮膚病在所有年齡段的人群都比較常見。它主要由3個部分組成,表皮、真皮和皮下組織[1]。位于隔絕外界的第一層防護是表皮,表皮處于整個皮膚結(jié)構(gòu)的最外層,可以直接觀察并觸摸到。位于隔絕外界的第二層防護是真皮,這是一種結(jié)締組織,用于連接第一層防護和第二層防護。位于隔絕外界的第三層防護是皮下組織,皮下組織的作用主要是使表皮和真皮可以貼合地附著在骨骼和肌肉之上。實際上,導(dǎo)致感染皮膚病的原因一般并不是單一的某個外界因素,而是內(nèi)部因素和外部因素結(jié)合在一起共同作用的結(jié)果。常見的內(nèi)部因素有細胞核分層遺傳、激素分泌過度、免疫系統(tǒng)異常等。
但不管導(dǎo)致皮膚感染并發(fā)生炎癥的原因是什么,有相關(guān)研究人員發(fā)現(xiàn),只要在早期階段及時發(fā)現(xiàn)這些皮膚病,及時開展治療行動,就一定可以很快得到治愈。皮膚病的早期發(fā)現(xiàn)一般是通過肉眼觀察和直接觸摸,然后通過皮膚鏡分析進一步診斷。對于可能感染皮膚病的患者前往醫(yī)院的常見檢測方案一般有貼片測試、表皮培養(yǎng)[2]。為了確定感染源,患者可能需要花費一筆不菲的費用用于多個步驟的檢測,收入較低的患者難以承受。
Celebi等人[3]提出了一種順序流水線方法,他要求實驗者必須遵循一系列明確定義的步驟,每一個步驟的固定輸出作為另一個步驟的輸入。這種方法能有效地將皮膚鏡圖像分為良性或者黑色素瘤,分為以下4個步驟:(1)分割皮膚病灶;(2)從病變邊界和病變內(nèi)的區(qū)域提取基于顏色和形狀的特征;(3)篩選出判別特征的子集;(4)使用機器學(xué)習(xí)分類器進行區(qū)分。在這之后,陸續(xù)出現(xiàn)了很多這種順序流水線的變體,改進或者省略其中的步驟,但是這種機器學(xué)習(xí)的方法步驟過于繁瑣。Codella等人[4]發(fā)現(xiàn)可以從數(shù)據(jù)中學(xué)習(xí)特征,而不是針對特定皮膚病學(xué)標準設(shè)計的特征。他應(yīng)用了一種無監(jiān)督稀疏編碼方法來學(xué)習(xí)稀疏數(shù)量的模式,從而最大限度地減少圖像重構(gòu)誤差。Miglani等人[5]嘗試使用預(yù)訓(xùn)練的EfficientNet架構(gòu),通過微調(diào)進行皮膚病圖像的分類訓(xùn)練,但是性能還存在不少提升空間。李亞娥等人[6]提出一種自適應(yīng)的參數(shù)設(shè)置方法,通過確定delta的最佳取值范圍來提高分類的精度。
針對常規(guī)分類方法存在的不足,該文提出一種改進雙線性特征融合模型。首先,使用Inception-ResNet-v1和v2用來并行提取圖像特征映射,這兩個子網(wǎng)絡(luò)需要進行適當(dāng)?shù)募糁σ赃m用于文中分類任務(wù),兩個不同的特征提取網(wǎng)絡(luò)可以提取到不同階數(shù)的特征圖,然后考慮到皮膚鏡病理圖像中不同區(qū)域的可參考性不盡相同,在經(jīng)過雙線性特征融合后設(shè)計額外的軟注意力模塊,對每個位置給予不同的權(quán)重以加強模型的效果,與多個網(wǎng)絡(luò)訓(xùn)練結(jié)果的對比驗證了該方法的有效性。
雙線性網(wǎng)絡(luò)(Bilinear CNN)[7]由2個CNN特征提取器組成,其輸出在圖像的每個位置使用外部積乘以圖像表示。由于BCNN可以以平移不變的方式對局部成對特征交互進行建模,所以該模型對于細粒度分類尤其有效。當(dāng)用于分類任務(wù)時,有定義一個四元組M=(fA,fB,P,C) 。其中fA和fB是2個CNN特征函數(shù),P是池化函數(shù),C是分類函數(shù)。通過BCNN提取的深度視覺為:
(1)
式中, bilinear(l,I,fA,fB)是每個位置l∈L處的fA和fB的雙線性特征組合。映射函數(shù)f為每個輸出位置的特征向量,分類時使用圖像特征φ訓(xùn)練函數(shù)C。
該文使用基于Inception模塊的更高級的Inception-ResNet-v1和v2作為雙線性特征融合提取器。Inception-ResNet-v1是Inception根據(jù)殘差思想設(shè)計出來的變體,具體的做法是在卷積層輸出的地方加上一個基于殘差思想設(shè)計的跳躍連接,通過這種跳躍連接做到直接把Inception的輸出作為輸入添加到殘差計算中,此時需要在原始卷積層中添加一個1*1的卷積用于保證在進行卷積運算之后輸入的維度和輸出的維度是一致的,這樣原先的Inception模塊中的一個池化操作要被更新為殘差連接。
對于另外一個特征提取器,使用的是Inception-ResNet-v2,這是一個結(jié)合了Inception v4[8]和ResNet[9]的混合模型。此前的Inception-ResNet-v1設(shè)計之初是為了與Inception-v3[10]進行橫向?qū)Ρ龋驗樵诖蠖鄶?shù)的情況下所能使用的硬件資源是有限的,所以Inception-ResNet-v1并沒有對模型加深很多和添加更多的參數(shù),在保持和Inception-v3的計算開銷和資源消耗幾乎持平的情況下探究這種糅合設(shè)計在同樣使用環(huán)境下的極限性能。而這里的Inception-ResNet-v2沒有這種限制性的目的。
完整的Inception-v4總網(wǎng)絡(luò)圖從對輸入圖像的預(yù)處理模塊Stem開始,然后連接多個Inception子模塊,最后進行平均池化和正則化并進行分類,圖1包含Inception-ResNet-A的模塊圖。這里使用的子模塊同樣使用了多層卷積并行處理的思想,同時需要注意的是,與以往的人工神經(jīng)網(wǎng)絡(luò)相比,Inception模塊并不用人為指定使用哪一個過濾器,而是把所有這些參數(shù)的值全部添加進該人工神經(jīng)網(wǎng)絡(luò)模型中。Inception模塊可以做到自行學(xué)習(xí),并可以確定理想使用的參數(shù)。在并行卷積然后匯總在一起進行拼接特征圖映射的時候,這里增加的1*1 Conv是為了匹配輸入進來的特征維度。因為可以看到,在之前通過卷積層的特征提取過程中有使用不帶激活函數(shù)的卷積層來通過過濾器進行降維,這時輸入的圖像的通道數(shù)會被壓縮。而由于這里使用了基于跳躍連接的殘差思想,所以會把輸入的特征映射與并行卷積后得到的特征映射聯(lián)合,這里為了保證兩者的通道數(shù)相同,需要添加額外的卷積層來擴增并行拼接的特征映射的通道數(shù)。剩余的Inception-ResNet-B和Inception-ResNet-C同樣也在圖1給出。v1和v2版本的Inception-ResNet-A、B、C結(jié)構(gòu)上是相同的,區(qū)別在于參數(shù)設(shè)置,用表1羅列出。
表1 兩個版本的A模塊不同卷積的通道數(shù)
圖1 Inception-ResNet-A(上)、B(中)、C(下)結(jié)構(gòu)
Inception-ResNet-A、B、C三個子模塊只是整個Inception-ResNet的一部分,完整的剪枝網(wǎng)絡(luò)結(jié)構(gòu)通過嵌入Reduction結(jié)構(gòu)以耦合。這是一個融合了稀疏思想和殘差思想的網(wǎng)絡(luò)結(jié)構(gòu),這兩種思想都可以在網(wǎng)絡(luò)深度增加的時候緩解模型的退化問題。在這里的子模塊使用殘差思想的跳躍連接會把輸入層的特征映射和卷積之后的特征映射拼接在一起,單獨使用稀疏結(jié)構(gòu)的Inception模塊只會并行使用不同大小的卷積層提取特征信息,結(jié)合了跳躍連接的殘差結(jié)構(gòu)可以做到相比較于單獨的Inception模塊性能得到一定程度的提升。
為了加強訓(xùn)練,該文考慮使用軟注意力提高模型的性能。注意力機制是目前深度學(xué)習(xí)人工卷積神經(jīng)網(wǎng)絡(luò)領(lǐng)域非常流行的一個概念,這種思想借鑒于人類的視覺注意力。使用注意力可以做到更加關(guān)注與當(dāng)前目標和期望相關(guān)的特征信息,在一定程度上忽視掉圖像中與訓(xùn)練目標無關(guān)的源域信息[11]。一般來說,注意力被分為硬注意力和軟注意力。硬注意力指只選擇到某一個位置或者幾個位置的信息,軟注意力則是會選擇全部的信息,計算所有輸入信息的加權(quán)聚合。一般來說,硬注意力會更加強調(diào)點的變化,強調(diào)一個隨機的預(yù)測過程。但是,如果是選取概率最高的那一個點,這個步驟是不可微分的,這使得硬注意力相對于軟注意力難以被訓(xùn)練[12]。
軟注意力的做法是讓所有的信息都去加權(quán),通過權(quán)重比分離出最需要的信息,避免受到過多無用的噪聲干擾,最終提高準確率。軟注意力是可以微分的,這意味著可以通過神經(jīng)網(wǎng)絡(luò)計算梯度,并通過反饋直接學(xué)習(xí)到軟注意力的權(quán)重,這是軟注意力相比較于硬注意力更加被廣泛使用的主要原因。但是軟注意力也有不太完美的地方,部分輸入信息對結(jié)果是完全沒有影響的,但由于軟注意力的全局信息再加權(quán)的機制,還是必須要讓這些完全不會對結(jié)果產(chǎn)生影響的信息加入運算,這會造成一定程度的資源消耗[13]。相關(guān)的計算公式如下:
(2)
其中,li是通過預(yù)測softmax函數(shù)作為原始圖像中與特定區(qū)域?qū)?yīng)的第i個位置上的K×K圖像的概率而應(yīng)用的注意力圖,Xi表示從特征提取器模塊中提取的圖像特征,i的取值范圍為1到K×K。實際上,軟注意力就是兩個特征映射矩陣對應(yīng)位置元素進行乘積的過程,即注意力特征圖和輸入特征圖。
完整的皮膚病圖像分類模型見圖2。分別使用Inception-ResNet-v1和Inception-ResNet-v2的剪枝模型來提取皮膚鏡下病理圖像的特征信息,然后進行雙線性融合。由于結(jié)合了稀疏思想和殘差思想,人工卷積神經(jīng)網(wǎng)絡(luò)可以做到在網(wǎng)絡(luò)變的更深的情況下保證性能加強??紤]到皮膚鏡下病理圖像的不同區(qū)域?qū)τ谶M行文中目標工作圖像分類產(chǎn)生影響的權(quán)重不同,所以考慮使用軟注意力來加強對無用特征的過濾。注意力一般分為硬注意力和軟注意力,由于硬注意力難以計算,所以一般使用軟注意力加強對重要信息的聚合。最后的步驟是整合提取的特征信息并使用softmax分類。
圖2 雙線性特征融合網(wǎng)絡(luò)整體結(jié)構(gòu)
實驗使用的數(shù)據(jù)集是skin-cancer-classesisic,包括2 923張皮膚疾病圖像,其中黑色素瘤圖像、皮膚痣和良性角化病的圖像占據(jù)多數(shù),分別有454張、873張和478張,實例圖像見圖3。實驗環(huán)境為64位Windows 10操作系統(tǒng),GPU為GTX 1080Ti,顯存是11G,使用Python 3.6作為編程語言,使用Tensorflow作為深度學(xué)習(xí)框架。
圖3 共7種皮膚病圖像展示
由于該數(shù)據(jù)集包含的圖像數(shù)量過少,該文進行鏡像、翻轉(zhuǎn)等方式的數(shù)據(jù)增強。擴充后設(shè)置訓(xùn)練集、測試集、驗證集的比例為80%、15%、5%,見表2,然后把圖像大小全部設(shè)置為128*128并歸一化到0~1。
表2 擴充后的訓(xùn)練集、驗證集、測試集
選擇合適的評價指標是至關(guān)重要的,因為它給出了一個尺度和標準來衡量深度神經(jīng)網(wǎng)絡(luò)模型的優(yōu)劣,然后在接下來的完善過程中又會遵循這個評價指標來優(yōu)化。一般綜合使用多種參考指標,以減少偶然性。為了便于表示,這里使用TP代表真陽性,F(xiàn)P代表假陽性,TN代表真陰性,F(xiàn)N則代表假陰性。
精度的含義是成功預(yù)測陽性樣本的能力,即占所有預(yù)測為陽性樣本(無論是否預(yù)測正確)的比例,其計算公式如下:
(3)
召回率是從另一個角度衡量預(yù)測陽性樣本的能力,表示為成功預(yù)測為陽性樣本的個數(shù)占所有陽性樣本個數(shù)(其中包含誤測)的比例,其計算公式如下:
(4)
F1 Score綜合考慮精度和召回率,兼顧了陽性樣本的誤報和漏報,是一種相對更均衡的評價標準,其計算公式如下:
(5)
本節(jié)實驗設(shè)置使用Inception-ResNet-v1和Inception-ResNet-v2作為雙線性特征提取器的網(wǎng)絡(luò)為BCNN(IRv1,IRv2),在訓(xùn)練時初始學(xué)習(xí)率設(shè)置為0.005,批量大小設(shè)置為64。每經(jīng)過10個epoch將學(xué)習(xí)率衰減為原先的80%。在第100個epoch之后把批量大小設(shè)置為16。
表3顯示了文中使用的BCNN(IRv1,IRv2)的分類結(jié)果。Precision主要表示預(yù)測的陽性樣本中有多少是被正確預(yù)測的,即衡量模型是否預(yù)測得準確。Recall主要表示有多少陽性樣本是被正確預(yù)測的,即衡量模型是否預(yù)測得全面。在實際預(yù)測中通常還需要F1-Score,這是一個同時兼顧分類模型精確率和召回率的評價指標??梢钥闯觯闹兴惴ūM管在黑色素瘤上的表現(xiàn)不是特別優(yōu)秀,但是在其他6種皮膚疾病上都維持一個不錯的水平。在皮膚痣上,文中算法可以在Precision上達到0.96,在Recall上達到0.98,F(xiàn)1-Score同樣高達0.97。分類結(jié)果的混淆矩陣見圖4。
表3 文中模型分類結(jié)果
圖4 分類結(jié)果的混淆矩陣
表4中則是列出文中分類模型和其他3種模型的實驗比較。文獻[14]設(shè)計了一個基于CNN的皮膚病分類的交互Web平臺,便于用戶的使用。文獻[15]設(shè)計了輕量級的卷積網(wǎng)絡(luò),同時也可以取得不錯的效果。文獻[16]設(shè)計帶有增量結(jié)構(gòu)的分類模型,同樣可以提高分類的性能。表中的三種指標都是加權(quán)平均值,可以看出在這3個指標上文中模型均優(yōu)于另外三種,由此可見,使用剪枝后的Inception-ResNet-v1和v2并行提取圖像特征,然后對提取到的映射圖進行雙線性融合,輔以軟注意模塊加強訓(xùn)練,能夠取得較好的效果。
表4 使用共4種分類模型的表現(xiàn)
為了解決皮膚病圖像在分類時由于皮膚病圖像之間存在類間相似性和類內(nèi)差異性而分類困難的問題,采用雙線性特征融合的思想,使用剪枝后的Inception-ResNet-v1和v2作為雙線性特征提取器。這種特殊的網(wǎng)絡(luò)結(jié)構(gòu)采用稀疏思想和殘差思想,能夠在一定程度上保證網(wǎng)絡(luò)模型變深的同時性能不會因此退化。然后考慮到皮膚鏡下病理圖像中不同區(qū)域的特征信息對分類目標結(jié)果的影響大小不同,在進行雙線性特征匯合后添加軟注意力模塊,使網(wǎng)絡(luò)模型可以屏蔽掉無用的特征,專注于更重要的紋理部分。最后在實驗部分驗證雙線性特征提取器的優(yōu)越性和使用軟注意力的加強效果。該工作還可以進一步做分割訓(xùn)練,會更加便于為醫(yī)師提供計算機輔助診斷,未來的研究將會著眼于此。