陳明海,賀建峰
皮膚癌是一種比較常見的癌癥。數(shù)據(jù)表明全球每年有大約300萬例皮膚癌發(fā)生,每3例癌癥患者中就有1例是皮膚癌患者[1]。皮膚病的早期發(fā)現(xiàn)可以讓患者得到及時治療并避免病情的進一步惡化,還可以降低致死率[2]。有些皮膚病,比如黑色素瘤(melanoma,MEL)和黑色素細胞痣(melanocytic nevi,NV),從表面看非常相似,醫(yī)生在診斷這類疾病時極易混淆[3]。另外,醫(yī)生在診斷疾病時還有可能受到一些非主觀因素的影響,比如眼疲勞等,對患者造成誤診[4]。
為了解決上述問題,研究人員利用數(shù)字圖像處理技術(shù)輔助醫(yī)生診斷。Celebi ME等[5]采用基于閾值分割算法對MEL圖像進行分割,然后從分割的病變區(qū)域中選取病兆特征,并訓練支持向量機(support vector machine,SVM)分類器對MEL進行識別,實驗證明該方法有較好的效果。Ganster H等[6]和She Z等[7]采用皮膚病診斷常用的ABCD(asymmetry,border,color,diameter)準則對皮膚病圖像提取特征,從惡性MEL中檢測出良性病變,診斷精確度達到85%~91%。以上這些方法在提取圖像特征過程中,存在著過程復(fù)雜、特征提取不夠精細的不足。
近年來,隨著深度學習技術(shù)的發(fā)展,研究人員把深度學習技術(shù)應(yīng)用到皮膚病的輔助診斷中。Yu L等[8]采用了一種深度卷積神經(jīng)網(wǎng)絡(luò)對MEL進行識別,利用殘差網(wǎng)絡(luò)處理過擬合和模型退化問題,設(shè)計了一種全卷積殘差網(wǎng)絡(luò)對圖像進行分類,精確度平均達到85.5%。Codella N等[9]采用了稀疏編碼、深度學習和SVM相結(jié)合的方法對3類皮膚病圖像進行分類,分類精度達到了93.1%。以上方法均用到了深度學習的方法,但是一般的深度神經(jīng)網(wǎng)絡(luò)對訓練模型用的數(shù)據(jù)集都有著嚴格要求,比如數(shù)據(jù)集要足夠大、數(shù)據(jù)樣本要有標注等,這對一些數(shù)據(jù)量較小或者無標注的數(shù)據(jù)集,在訓練時很難達到相應(yīng)的效果。正是因為上述原因,研究人員采用了訓練神經(jīng)網(wǎng)絡(luò)時對數(shù)據(jù)集沒有以上嚴格要求的遷移學習[10]方法。Esteva A等[11]采用遷移學習方法,在網(wǎng)絡(luò)模型Inception V3的基礎(chǔ)上微調(diào),然后對網(wǎng)絡(luò)模型進行端到端訓練,對3類皮膚病進行分類。分類精度達到了71.2%。Brinker TJ等[12]分別在網(wǎng)絡(luò)模型VGG16和GoogleNet基礎(chǔ)上進行遷移學習對皮膚病分類,分類精度分別達到了79.7%和81.5%。董青青[13]在網(wǎng)絡(luò)模型DenseNet基礎(chǔ)上進行二次遷移學習,對ISIC2017數(shù)據(jù)集進行分類,分類精確度達到了85.15%。Honsny KM等[14]在網(wǎng)絡(luò)模型AlexNet基礎(chǔ)上遷移學習,對ISIC2018數(shù)據(jù)集進行分類,其精確度、靈敏度、特異度及準確度分別達到了98.7%、95.6%、99.27%和95.06%。以上傳統(tǒng)遷移學習方法都是在已有網(wǎng)絡(luò)模型基礎(chǔ)上進行微調(diào)來遷移,所利用網(wǎng)絡(luò)模型的預(yù)訓練參數(shù)是在與皮膚病數(shù)據(jù)集相似度很低的數(shù)據(jù)集上訓練得到的,很容易把不相關(guān)的特征遷移到目標域上,導致負遷移現(xiàn)象的產(chǎn)生,從而降低了訓練網(wǎng)絡(luò)模型的性能。
為減少在傳統(tǒng)遷移學習方法中存在的負遷移現(xiàn)象,筆者提出了一種基于部分遷移學習[15]的皮膚病圖像分類方法。
1.1.1 實驗環(huán)境
該實驗的環(huán)境配置如下:CPU i7;內(nèi)存64 GB;GPU GeForce RTX2080Ti;顯存11 GB。操作系 統(tǒng)Windows10 Professional;深度學習框架PyTorch 1.2。
1.1.2 實驗數(shù)據(jù)集
實驗采用的數(shù)據(jù)集是由國際皮膚成像協(xié)會(International Skin Imaging Collaboration,ISIC)提 供 的ISIC2018和ISIC2019數(shù)據(jù)集。ISIC2018數(shù)據(jù)集光化角化?。╝ctinic keratoses,AKIEC)圖像327幅,良性角化?。╞enign keratosis-like lesions,BKL)圖像1 099幅,基底細胞癌(basal cell carcinoma,BCC)圖像514幅,皮膚纖維瘤(dermatofibroma,DF)圖像115幅,MEL圖像1 113幅,NV圖像6 705幅,血管病變(vascular lesions,VASC)圖像142幅,鱗狀細胞癌(squamous cell carcinoma,SCC)圖像0幅,合計10 015幅。ISIC2019數(shù)據(jù)集AKIEC圖像867幅,BKL圖像2 624幅,BCC圖像3 323幅,DF圖像239幅,MEL圖像4 522幅,NV圖 像12 875幅,VASC圖 像253幅,SCC圖 像628幅,合計25 331幅。
數(shù)據(jù)集ISIC2018和ISIC2019共有的圖像類別有7類,前者的類別是后者類別的真子集,符合部分遷移學習對源域和目標域數(shù)據(jù)樣本類別數(shù)目的要求。根據(jù)部分遷移學習對源域和目標域數(shù)據(jù)集的要求,把包含8類圖像的ISIC2019數(shù)據(jù)集作為源域數(shù)據(jù)集,把包含7類圖像的ISIC2018數(shù)據(jù)集作為目標域數(shù)據(jù)集。
從兩個數(shù)據(jù)集中每個類別的數(shù)量上可以看出,類別之間圖像數(shù)量存在嚴重不平衡的情況。比如ISIC2018數(shù)據(jù)集中NV類包含6 705幅圖像,而DF類僅有115幅圖像。類別之間圖像數(shù)量的不平衡會降低神經(jīng)網(wǎng)絡(luò)的分類性能。為了解決圖像類別之間數(shù)據(jù)不平衡的問題,采用對數(shù)據(jù)集擴增的方法。數(shù)據(jù)擴增主要是通過對圖像進行翻轉(zhuǎn)及0°~355°的隨機旋轉(zhuǎn)等幾何變換來實現(xiàn)。在對ISIC2019數(shù)據(jù)集擴增的時候,考慮到NV類有12 875幅圖像,已經(jīng)有足夠的圖像數(shù)量用于訓練,無需再進行擴增。其余類別均擴增到10 000幅左右。在對ISIC2018數(shù)據(jù)集擴增的時候,是對所有的類別都進行了擴增,每一類別擴增后的圖像均達到10 000幅左右。
1.2.1 問題的提出
遷移學習方法中有一個源域和一個目標域。目前大部分遷移學習算法假設(shè)源域和目標域有著相同的標簽空間,但實際應(yīng)用中這樣的條件很難達到,更多的情況是目標域的標簽空間是源域標簽空間的子集。通常需要把一個模型從一個大規(guī)模數(shù)據(jù)集(e.g.ImageNet)遷移到一個小規(guī)模數(shù)據(jù)集(e.g.Caltech256)上。假設(shè)源域目標域其中表示源域Ds中的數(shù)據(jù)樣本表示對應(yīng)的類別;ns表示源域Ds中帶有標簽的樣本數(shù)目表示目標域Dt中的數(shù)據(jù)樣本;nt表示目標域Dt中無標簽的樣本數(shù)目。假設(shè)源域和目標域數(shù)據(jù)樣本類別數(shù)目分別是Cs和Ct。在實驗提出的部分遷移學習應(yīng)用場景中,二者存在如下關(guān)系:Cs>Ct。源域和目標域中數(shù)據(jù)樣本分別有著不同的概率分布p和q。在傳統(tǒng)的遷移學習中有p≠q,但是在部分遷移學習中更進一步,有著這里pCt表示源域中屬于目標域的數(shù)據(jù)樣本類別的概率分布。筆者的目標是設(shè)計一個深度神經(jīng)網(wǎng)絡(luò),不但能夠?qū)W習可遷移的特征,而且可以讓那些僅屬于源域的數(shù)據(jù)在遷移過程中造成的負遷移現(xiàn)象降到最低。
在傳統(tǒng)的遷移學習中,一個主要的挑戰(zhàn)是目標域數(shù)據(jù)無標注,加之源域和目標域數(shù)據(jù)樣本有著不同的概率分布,因此在源域上訓練好的分類器不能直接用到目標域上。在部分遷移學習中,存在的另一個更加困難的問題是甚至不知道源域中哪一部分數(shù)據(jù)樣本和目標域數(shù)據(jù)樣本有著共同的標簽空間。以上存在的問題導致的結(jié)果是:①僅存于源域中的數(shù)據(jù)樣本在整個遷移過程中導致負遷移的發(fā)生,從而影響整個遷移的性能;②減小源域中和目標域?qū)儆诠餐悇e數(shù)據(jù)樣本的分布差異成為遷移學習的關(guān)鍵。為避免上述結(jié)果對網(wǎng)絡(luò)最終分類性能的影響,實驗采用了通過選擇性對抗網(wǎng)絡(luò)實現(xiàn)的部分遷移學習方法。
1.2.2 域?qū)咕W(wǎng)絡(luò)
域?qū)咕W(wǎng)絡(luò)[16]通過提取可遷移的特征減少源域和目標域的分布差異,這種方法被成功地應(yīng)用到遷移學習當中。對抗學習過程是一個雙人游戲。第一個游戲者是域判別器Gd,域判別器負責分辨數(shù)據(jù)樣本是來自源域還是目標域。第二個游戲者是特征提取器Gf,特征提取器負責提取源域和目標域的特征迷惑域判別器。為了提取域不變特征f,通過最大化域判別器Gd的損失學習特征提取器Gf的參數(shù)θf,同時,通過最小化域判別器Gd的損失學習域判別器參數(shù)θd。另外,也要讓標簽預(yù)測器Gy的損失最小化。最終,域?qū)咕W(wǎng)絡(luò)[16]的目標函數(shù)如(1)式所示:
公式(1)中:λ是實現(xiàn)上述目標的調(diào)和參數(shù)。模型訓練收斂后,將會由參數(shù)得到函數(shù)(1)的一個鞍點,如(2)式所示:
域?qū)咕W(wǎng)絡(luò)在傳統(tǒng)的遷移學習中,在源域和目標域標簽空間相同,即Cs=Ct的條件下有著很好的性能。
1.2.3 選擇性對抗網(wǎng)絡(luò)
在部分遷移學習中,沒有了上述域?qū)咕W(wǎng)絡(luò)中的Cs=Ct的條件,目標域的標簽空間是源域標簽空間的子集,即Cs?Ct,因此如果再匹配整個源域的概率分布p和目標域的概率分布q,將會因為僅存于源域中的數(shù)據(jù)樣本的存在而造成負遷移現(xiàn)象的產(chǎn)生。為了降低負遷移現(xiàn)象的產(chǎn)生,在進行域?qū)惯m應(yīng)的過程中必須過濾掉那些僅存于源域中的數(shù)據(jù)樣本。
為了匹配源域和目標域不同的標簽空間,需要把(1)式中的域判別器Gd劃分為Cs個類級別的域判別器,k=1,…,Cs,每一個判別器負責匹配源域與目標域中的第k類數(shù)據(jù)樣本(圖1)。
圖1 部分遷移學習的選擇性對抗網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Selective adversarial network structure diagram of partial transfer learning
因為目標域數(shù)據(jù)樣本無標注,所以在模型訓練期間,目標域的標簽空間是不可訪問的。這樣就很難決定哪一個域判別器(k=1,…,Cs)負責對目標域的數(shù)據(jù)樣本進行判別。但是,觀察到標簽預(yù)測器yi=Gy(Xi)對于每一個數(shù)據(jù)樣本的輸出是在整個源域標簽空間上的概率分布。這個概率正好能說明Xi屬于Cs類中某一類的概率。因此,就用作為每一個數(shù)據(jù)樣本Xi被分配到Cs個域判別器的概率。每一個數(shù)據(jù)樣本被分配到不同的判別器可以通過(3)式所示的概率權(quán)重域判別器損失來實現(xiàn)。
在(3)式中:是第k個域判別器;是其交叉熵損失;di是數(shù)據(jù)樣本的域標簽。與(1)式中單個判別器的域?qū)咕W(wǎng)絡(luò)相比,實驗提出的算法可以實現(xiàn)更加細粒度的域適應(yīng),讓每一個樣本點只與自己相關(guān)的域判別器進行匹配。這種細粒度的域適應(yīng)有三個優(yōu)點:①避免了硬性的把每個數(shù)據(jù)樣本指派給一個域判別器,這種硬性的指派對目標域來講是不準確的;②通過過濾掉不相關(guān)類別的數(shù)據(jù)樣本,減少了負遷移;③概率權(quán)重域判別器分配不同的損失給不同的域判別器,使得不同的判別器學習到不同的參數(shù),促進了每個數(shù)據(jù)樣本的正向遷移。
除了上述樣本級別的權(quán)重機制,實驗還采用了類級別的權(quán)重方法來進一步地降低僅存在于源域中的數(shù)據(jù)類別樣本造成的負遷移。注意到只有負責對目標域類別進行判別的判別器對促進正向遷移是有效的,其他的判別器在遷移過程中只會帶來噪聲,降低正向遷移的性能。因此需要降低那些僅負責判別只存在于源域中的數(shù)據(jù)樣本類別的判別器的權(quán)重。因為目標域的數(shù)據(jù)樣本屬于僅存于源域中的那部分數(shù)據(jù)樣本類別的可能性較小,所以可以降低那些僅負責只存于源域中數(shù)據(jù)樣本類別判斷的判別器的權(quán)重,如(4)式所示。
盡管(4)式中的域判別器可以通過降低僅存在于源域中的數(shù)據(jù)造成的負遷移現(xiàn)象實現(xiàn)了選擇性地遷移相關(guān)知識,但是這些判別器主要依靠的是概率=Gy(Xi)。因此進一步地利用促進類間低密度分離的熵最小化原則[17]來改進標簽預(yù)測器Gy。通過最小化數(shù)據(jù)樣本Xi在目標域Dt上的概率的條件熵來實現(xiàn)上述要求,如(5)式所示。
綜上所述,選擇性對抗網(wǎng)絡(luò)最終的目標函數(shù)如(6)式所示。
其中:λ是一個超參數(shù),在上述的聯(lián)合優(yōu)化問題中用來調(diào)和兩個目標。整個優(yōu)化的問題的目標就是找到滿足(7)式的參數(shù)(k=1,2,…,Cs)。
選擇性對抗網(wǎng)絡(luò)通過過濾掉僅存于源域的數(shù)據(jù)樣本類別成功地實現(xiàn)了部分遷移學習,同時在共享標簽空間Ct上最大化地匹配數(shù)據(jù)分布pCt和q,從而更加促進了正向遷移。
1.2.4 實驗與分析
1.2.4.1 網(wǎng)絡(luò)模型的訓練 在PyTorch深度學習框架中應(yīng)用實驗提出的方法來訓練網(wǎng)絡(luò)模型。因為實驗的目標是對包含7類皮膚病圖像的ISIC2018數(shù)據(jù)集進行分類。實驗采用ResNet網(wǎng)絡(luò)模型作為基礎(chǔ)網(wǎng)絡(luò)模型,對最后的全連接層和分類層進行微調(diào),并采用ResNet在大型數(shù)據(jù)集ImageNet上訓練的參數(shù)作為預(yù)訓練參數(shù)。對于選擇性對抗網(wǎng)絡(luò),實驗微調(diào)了所有的特征層、分類層和對抗層。因為這些網(wǎng)絡(luò)都是從頭開始訓練,所以把這些層的學習率設(shè)置為其他層的10倍。因為所用數(shù)據(jù)集不同的圖像類別之間存在嚴重的數(shù)量不平衡現(xiàn)象,注意到Focal Loss損失函數(shù)[18]主要用來解決樣本比例嚴重失衡的問題,因此在計算每個類別判別器的損失時,用Focal Loss代替了交叉熵損失函數(shù)。
1.2.4.2 圖像分類實驗 針對實驗提出的部分遷移學習皮膚病圖像分類算法,做了兩組實驗。①在部分遷移學習時,采用類級別的域判別器過濾掉僅存于源域中的數(shù)據(jù)樣本類別。單個類級別域判別器的損失函數(shù)采用交叉熵損失函數(shù);提取特征時采用ResNet作為基礎(chǔ)網(wǎng)絡(luò)模型,并針對要分類的目標數(shù)據(jù)集ISIC2018對ResNet進行微調(diào)(實驗1)。②在實驗1的基礎(chǔ)上,把單個類級別域判別器的損失函數(shù)替換為Focal Loss損失函數(shù);提取特征時針對要分類的目標數(shù)據(jù)集ISIC2018對ResNet網(wǎng)絡(luò)模型進行微調(diào)(實驗2)。并與Honsny KM等[14]結(jié)果進行對比。
1.2.4.3 評價指標 實驗采用了圖像分類中常用的4種評價指標對實驗結(jié)果進行評價。這4種評價指標分別是精確度(accuracy)、靈敏度(sensitivity)、特異度(specificity)、準確度(precision)。
其中:tp、fp、fn、tn分別表示真陽性(true positive)、假陽性(false positive)、假陰性(false negative)、真陰性(true negative)的數(shù)目。
第1組實驗的結(jié)果中,精確度、靈敏度、特異度及準確度分別是99.13%、96.99%、99.45%和97.12%;第2組實驗結(jié)果中上述指標分別是99.24%、97.73%、99.56%和97.32%。實驗結(jié)果與Honsny KM等[14]結(jié)果對比,數(shù)值接近。見表1。
表1 兩組實驗結(jié)果與Honsny KM結(jié)果對比Tab.1 Comparison of results between 2 experimental groups and Honsny KM
混淆矩陣是評價圖像分類結(jié)果的一個常用方法,實驗1與實驗2從混淆矩陣中可以清楚地看出每一類圖像的分類結(jié)果基本相似。見圖2。
圖2 實驗1和實驗2混淆矩陣Fig.2 Confusion matrix graph of experiment No.1 and experiment No.2
傳統(tǒng)遷移學習把已有網(wǎng)絡(luò)模型學習到的知識遷移到新的領(lǐng)域中加以利用,可以節(jié)省新模型的訓練時間,但是在遷移過程中極易造成負遷移現(xiàn)象的產(chǎn)生。筆者通過引入選擇性對抗網(wǎng)絡(luò)進行部分遷移,降低了負遷移現(xiàn)象的產(chǎn)生,提高了圖像的分類精度。實驗中特征提取時采用ResNet網(wǎng)絡(luò)模型,使得提取的特征更加豐富,但是比采用層次淺的網(wǎng)絡(luò)訓練時間會長一些。從實驗結(jié)果可以看出,4項指標均比傳統(tǒng)遷移學習方法有了顯著提高。
從實驗結(jié)果來看,采用實驗提出的部分遷移學習方法,因為規(guī)避了傳統(tǒng)遷移學習方法中容易出現(xiàn)的負遷移現(xiàn)象,降低了負遷移對網(wǎng)絡(luò)性能的影響;又通過降低僅存于源域數(shù)據(jù)的判別器的權(quán)重促進了正向遷移,實驗結(jié)果相比Honsny KM等[14]采用的傳統(tǒng)遷移學習方法有明顯的提升。另外,提取圖像特征的時候,在ResNet的基礎(chǔ)上進行遷移,并且采用了ResNet的預(yù)訓練參數(shù)。因為ResNet是在ImageNet數(shù)據(jù)集上訓練的模型,ImageNet數(shù)據(jù)集中每類圖像的數(shù)量相對比較均衡,而筆者實驗采用的數(shù)據(jù)集都存在著嚴重的圖像類別之間數(shù)量的嚴重失衡的問題,所以實驗采用了Focal Loss損失函數(shù),從實驗結(jié)果看,相比采用圖像分類常用的交叉熵損失函數(shù)也有著一定的改善。如何降低遷移學習中的負遷移現(xiàn)象和如何通過少樣本訓練出精度高的網(wǎng)絡(luò)模型依然值得深入研究。
筆者提出的基于部分遷移學習的皮膚病圖像分類算法降低了傳統(tǒng)遷移學習算法中極易出現(xiàn)的負遷移現(xiàn)象,同時通過最大化地匹配源域和目標域共享標簽空間促進了正向遷移。實驗表明,該方法優(yōu)于傳統(tǒng)的遷移學習方法。一個值得注意的問題是,目前在對皮膚病分類實驗中,采用數(shù)據(jù)集中的皮膚病圖像大部分來自歐洲及北美的白種人[19],為了提高分類器的泛化能力,還需要針對不同種族人群的皮膚病圖像進行深入研究。