李文勝
(湖南電子科技職業(yè)學(xué)院,湖南 長(zhǎng)沙 410220)
銀屑病(Psoriasis,PS),又稱“牛皮癬”,是一種以表皮細(xì)胞過(guò)度增殖及免疫性炎癥為特征的慢性反復(fù)發(fā)作性疾病。該病具有病程長(zhǎng)、頑固性、常見(jiàn)性以及外觀丑陋等特性,且病程后期可侵犯多種臟器,被世界衛(wèi)生組織列入世界十大頑癥之一。
銀屑病是不能夠完全治愈的,基本上每位患者都會(huì)復(fù)發(fā),需要長(zhǎng)期跟蹤治療。銀屑病的診療難度非常高,病種主要包括尋常型銀屑病、關(guān)節(jié)型銀屑病、膿胞型銀屑病和紅皮病型銀屑病等四種類型。在做診斷時(shí),不僅要考慮到外觀因素,還要綜合考慮心血管、心理、胃腸道、自身免疫等多個(gè)方面,因此,如何對(duì)疑似患者是否患上銀屑病以及患上何種銀屑病進(jìn)行準(zhǔn)確且快速地診斷是目前的一大難題。該問(wèn)題屬于典型的分類問(wèn)題。本文提出一種基于深度殘差網(wǎng)絡(luò)(Deep residual network,ResNet)的銀屑病分類診斷模型,通過(guò)訓(xùn)練得到一個(gè)ResNet-34 模型來(lái)對(duì)銀屑病進(jìn)行分類診斷,有效地提高了銀屑病的識(shí)別率。
在深度學(xué)習(xí)中,卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是目前處理醫(yī)學(xué)圖像問(wèn)題的主要手段。人們普遍認(rèn)為CNN深度越深(參數(shù)越多),則CNN 的非線性表達(dá)能力就越強(qiáng),可以進(jìn)行更加復(fù)雜的特征模式的提取,理論上可以取得更好的結(jié)果。然而大量的研究表明,傳統(tǒng)的CNN 結(jié)構(gòu)隨著層數(shù)加深到一定程度之后,越深的網(wǎng)絡(luò)反而效果更差,過(guò)深的網(wǎng)絡(luò)竟然使分類的準(zhǔn)確率下降了,即出現(xiàn)網(wǎng)絡(luò)退化問(wèn)題(Degradation problem)。為了解決這一問(wèn)題,何凱明等人在2015年提出了著名的深度殘差網(wǎng)絡(luò)(ResNet)。ResNet由一個(gè)個(gè)地殘差單元相互組合而成(如圖1所示),其特點(diǎn)是容易優(yōu)化,并且能夠通過(guò)增加相當(dāng)?shù)纳疃葋?lái)提高準(zhǔn)確率。其內(nèi)部的殘差塊使用了跳躍連接(短路機(jī)制),緩解了在深度神經(jīng)網(wǎng)絡(luò)中增加深度帶來(lái)的梯度消失或梯度擴(kuò)散等問(wèn)題。
圖1 深度殘差網(wǎng)絡(luò)
本文提出的基于ResNet-34 的銀屑病分類診斷流程如圖2所示。把患病部位的照片上傳到某一應(yīng)用系統(tǒng)或APP 中,系統(tǒng)或APP 調(diào)用預(yù)先訓(xùn)練好的并已經(jīng)部署完畢的ResNet-34 對(duì)該圖片進(jìn)行分類診斷,系統(tǒng)給出是否患上銀屑病以及患上何種銀屑病的結(jié)論。
圖2 基于ResNet-34的銀屑病分類診斷流程
由于銀屑病的病癥較為復(fù)雜、發(fā)病的位置也多種多樣,醫(yī)生或患者在對(duì)患者的患病部位進(jìn)行拍照時(shí)容易受到光照、拍攝設(shè)備以及設(shè)備像素等因素的影響,導(dǎo)致獲得的銀屑病患者圖像數(shù)據(jù)經(jīng)常存在大量的噪聲以及圖片格式不一致等問(wèn)題,不便于進(jìn)行進(jìn)一步處理,為此本文從數(shù)據(jù)增強(qiáng)、圖片大小調(diào)整和圖片格式編碼等三個(gè)方面來(lái)對(duì)樣本圖片進(jìn)行預(yù)處理,使之滿足ResNet-34的輸入要求,從而為ResNet-34的訓(xùn)練做好準(zhǔn)備。
2.1.1 銀屑病圖片數(shù)據(jù)增強(qiáng)
數(shù)據(jù)增強(qiáng)也稱為數(shù)據(jù)擴(kuò)增,是指在不實(shí)質(zhì)性的增加數(shù)據(jù)的情況下,讓有限的數(shù)據(jù)產(chǎn)生等價(jià)于更多數(shù)據(jù)的價(jià)值。對(duì)于圖片數(shù)據(jù)而言,目前常用的數(shù)據(jù)增強(qiáng)方法主要有旋轉(zhuǎn)、平移、縮放和邊緣填充等幾種,下面給出對(duì)銀屑病圖片進(jìn)行數(shù)據(jù)增強(qiáng)的核心代碼。
2.1.2 銀屑病圖片大小調(diào)整
統(tǒng)一調(diào)整圖片的大小,便于后面采用ResNet-34模型進(jìn)行深度學(xué)習(xí)。本文以調(diào)整data_augmentation 文件夾生成的新的銀屑病圖片為例,下面給出了對(duì)銀屑病圖片大小進(jìn)行調(diào)整的核心代碼。
2.1.3 tfrecord編碼
ResNet-34 模型的輸入只能接受數(shù)值類型的數(shù)據(jù),因此,我們還需要對(duì)圖片進(jìn)行編碼,即轉(zhuǎn)換成tfrecord 格式。tfrecord 是TensorFlow官方推薦的標(biāo)準(zhǔn)格式,能夠?qū)D片數(shù)據(jù)和標(biāo)簽一起存儲(chǔ)成二進(jìn)制文件,從而在TensorFlow 中實(shí)現(xiàn)快速地復(fù)制、移動(dòng)、讀取和存儲(chǔ)操作。訓(xùn)練ResNet-34 的時(shí)候,通過(guò)建立隊(duì)列系統(tǒng),可以預(yù)先將tfrecord格式的銀屑病數(shù)據(jù)加載進(jìn)隊(duì)列,隊(duì)列會(huì)自動(dòng)實(shí)現(xiàn)數(shù)據(jù)隨機(jī)或有序地進(jìn)出棧,并且隊(duì)列系統(tǒng)和模型訓(xùn)練是獨(dú)立進(jìn)行的,這可以加速ResNet-34 的讀取和訓(xùn)練。下面給出了將銀屑病圖片轉(zhuǎn)換成tfrecord格式的核心代碼。
本文構(gòu)建了一個(gè)34層的深度殘差網(wǎng)絡(luò)(ResNet-34)來(lái)提取銀屑病的特征,如圖3 所示。ResNet-34 限定輸入的圖片像素大小為224×224。在ResNet-34 中,首先采用一個(gè)大小為7×7的卷積核以2個(gè)步長(zhǎng)對(duì)原始輸入的圖像進(jìn)行特征提取,得到一個(gè)大小為112×112的特征圖,緊接著采用最大池化(Max Pooling)技術(shù)來(lái)對(duì)特征進(jìn)行壓縮,然后經(jīng)過(guò)四組大小分別為3、4、6和3的殘差塊進(jìn)行多次反復(fù)的特征提取。其中,所有殘差組中的卷積核大小都為3×3,每組殘差塊中的第一個(gè)卷積核采用2 個(gè)步長(zhǎng)進(jìn)行特征提取,其他卷積核采用1 個(gè)步長(zhǎng)進(jìn)行特征提取。此外,同組殘差塊所采用的卷積核通道數(shù)均相同,分別為64、128、256 和512。各組輸出的特征圖大小依次為56×56、28×28、14×14、7×7。最后經(jīng)過(guò)平均池化和全連接層,采用Softmax函數(shù)進(jìn)行分類映射,對(duì)輸入圖像是否屬于銀屑病進(jìn)行分類診斷。
圖3 用于的銀屑病分類診斷的ResNet-34結(jié)構(gòu)
本文提出的ResNet-34 模型采用交叉熵作為損失函數(shù)來(lái)評(píng)估模型的準(zhǔn)確性,采用Adam 算法作為訓(xùn)練過(guò)程中的優(yōu)化策略,采用Softmax函數(shù)實(shí)現(xiàn)銀屑病的多分類診斷,下面進(jìn)行詳細(xì)闡述。
2.3.1 損失函數(shù)
文中采用交叉熵作為損失函數(shù),交叉熵能夠衡量同一個(gè)隨機(jī)變量中的兩個(gè)不同概率分布的差異程度,在本文中表示為銀屑病的真實(shí)概率分布與預(yù)測(cè)概率分布之間的差異。交叉熵的值越小,ResNet-34 的預(yù)測(cè)效果就越好。其計(jì)算公式為:
2.3.2 優(yōu)化器
本文采用Adam(Adaptive Moment Estimation)算法進(jìn)行ResNet-34 的訓(xùn)練。Adam 算法是一種在深度學(xué)習(xí)模型中將Momentum算法和RMSProp算法結(jié)合起來(lái)使用的優(yōu)化算法,在訓(xùn)練的初始階段,我們首先初始化梯度的累積量和平方累積量:
然后在第t輪訓(xùn)練中,我們計(jì)算得到Momentum算法和RMSProp算法的參數(shù)更新:
其中,v和v分別是損失函數(shù)在前-1 輪迭代過(guò)程中累積的梯度動(dòng)量,β 是梯度累積的一個(gè)指數(shù),一般設(shè)置值為0.9。Momentum 算法和RMSProp 算法主要是基于梯度的移動(dòng)指數(shù)加權(quán)平均來(lái)進(jìn)行訓(xùn)練,但是這種訓(xùn)練方式在迭代開(kāi)始的初期會(huì)導(dǎo)致梯度優(yōu)化的擺動(dòng)幅度過(guò)大,不利于算法收斂。
所以需要對(duì)上面求得的幾個(gè)值做偏差修正:
通過(guò)式⑷可以求得在第t 輪迭代過(guò)程中,參數(shù)梯度累積量的修正值。接下來(lái),可以根據(jù)Momentum算法和RMSProp 算法的結(jié)合來(lái)對(duì)模型的權(quán)重和偏置進(jìn)行更新:
在Adam 算法中,參數(shù)β所對(duì)應(yīng)的是Momentum算法中的β 值,一般取0.9;參數(shù)β所對(duì)應(yīng)的是RMSProp 算法中的β 值,一般我們?nèi)?.999,ε 是一個(gè)平滑項(xiàng),一般取值為10,而學(xué)習(xí)率α 則需要我們?cè)谟?xùn)練的時(shí)候進(jìn)行微調(diào)。綜上所述,Adam 算法的偽代碼可以表述為:
當(dāng)ResNet-34訓(xùn)練完成之后,我們采用Softmax函數(shù)實(shí)現(xiàn)銀屑病的分類診斷。Softmax 函數(shù)主要用于多分類過(guò)程中,它將多個(gè)神經(jīng)元的輸出映射到(0,1)區(qū)間內(nèi)看成概率來(lái)理解,從而實(shí)現(xiàn)多分類。ResNet-34 模型的輸出有五個(gè)值,代表四種常見(jiàn)的銀屑病類型(尋常型、關(guān)節(jié)型、膿胞型和紅皮病型)和正常人群(沒(méi)有患病)。因此,對(duì)于每一個(gè)樣本,依據(jù)Softmax函數(shù)的定義可知,它屬于類別i的概率為:
我們以2017年1月到2019年12月為一個(gè)時(shí)間周期,從湖南中醫(yī)藥大學(xué)附屬醫(yī)院的皮膚科獲取銀屑病患者數(shù)據(jù),并將其作為我們構(gòu)建分類診斷模型的數(shù)據(jù)集。我們要求病人在活檢前沒(méi)有接受過(guò)系統(tǒng)的免疫抑制治療或停止PUVA/UV 治療至少一月以上,局部治療至少停止二周以上,且無(wú)其他皮膚病及系統(tǒng)性疾病,共篩選得到數(shù)據(jù)樣本40000份。
我們?cè)谝慌_(tái)8 核16 線程的計(jì)算機(jī)上進(jìn)行了實(shí)驗(yàn)。其中,CPU 型號(hào)為Intel Core i9-9960X @ 3.10GHz,內(nèi)存為16G,操作系統(tǒng)為Ubuntu 16.04 LTS 64 位。在ResNet-34 模型中激活函數(shù)選用relu 函數(shù),采用深度學(xué)習(xí)框架TensorFlow 和Anaconda 平臺(tái)實(shí)現(xiàn)了文中提出的基于深度殘差網(wǎng)絡(luò)的銀屑病分類診斷模型。此外,為了避免模型過(guò)擬合,我們?cè)?0000份銀屑病數(shù)據(jù)樣本上采用k 折交叉驗(yàn)證(在文中k 取值為10)來(lái)評(píng)估ResNet-34 的預(yù)測(cè)性能,選出性能最好狀態(tài)下的超參數(shù),得到最終的模型。
本文將多分類問(wèn)題轉(zhuǎn)換為二分類問(wèn)題來(lái)進(jìn)行實(shí)驗(yàn)評(píng)價(jià),轉(zhuǎn)換的方法是采用一對(duì)其余(One-vs-Rest)的方法:將其中一個(gè)類標(biāo)記為正例,然后將剩余的其他類都標(biāo)記成反例。由于本文ResNet-34 的輸出為5 類結(jié)果(4 類為銀屑病,1 類為正常),因此只需要構(gòu)建5 個(gè)分類器就可以實(shí)現(xiàn)問(wèn)題的轉(zhuǎn)換。然后采用目前常用的精確率、召回率和ROC 曲線等指標(biāo)來(lái)評(píng)價(jià)基于ResNet-34 進(jìn)行銀屑病分類診斷的性能。此外,我們將ResNet-34 和目前性能較好的卷積神經(jīng)網(wǎng)絡(luò)VGG19在銀屑病診斷上的性能做橫向比較,以評(píng)價(jià)本文模型的優(yōu)越性。
圖4給出了ResNet-34和VGG19在銀屑病數(shù)據(jù)集上分類診斷的召回率比較結(jié)果。從圖4 中可以看到,隨著銀屑病數(shù)據(jù)集規(guī)模的增大,兩種方法的召回率都有不同程度的上升。但總的來(lái)看,本文方法的召回率總是高于基于VGG19的診斷方法,平均來(lái)看,本文方法的召回率比VGG19 高出約9.5%。分析其原因可知,這是由于:①相比于VGG19 而言,ResNet-34 的深度更深,可以更好更豐富地提取銀屑病的特征;②ResNet-34 通過(guò)引入殘差的概念,在網(wǎng)絡(luò)結(jié)構(gòu)中加入了恒等映射連接,有效地解決了網(wǎng)絡(luò)深度增加所帶來(lái)的性能退化問(wèn)題,因此取得了更好的性能表現(xiàn)。
圖4 召回率比較(ResNet-34 VS VGG19)
最后,為了綜合衡量ResNet-34 和VGG19 兩種方法對(duì)于銀屑病分類診斷的特異性和敏感性,下面畫(huà)出它們的ROC 曲線。對(duì)于每個(gè)測(cè)試樣本,ResNet-34 和VGG19在進(jìn)行每次分類時(shí)都會(huì)得到一個(gè)“Score”值(分值),表示該樣本多大概率上屬于正例(或負(fù)例)。我們要畫(huà)出ROC 曲線,則需要一系列關(guān)于True positive rate 和False positive rate 的值。文中通過(guò)如下的步驟來(lái)實(shí)現(xiàn):
⑴ 從高到低將“Score”值排序并依此作為閾值threshold;
⑵ 對(duì)于每個(gè)閾值,“Score”值大于或等于這個(gè)threshold 的測(cè)試樣本被認(rèn)為正例,其它為負(fù)例。從而形成一組預(yù)測(cè)數(shù)據(jù)。
⑶將觀測(cè)數(shù)據(jù)的值進(jìn)行連線,則可以得到ROC曲線。
圖5給出了兩種方法進(jìn)行銀屑病分類診斷的ROC曲線比較結(jié)果,ROC 曲線下的面積稱為AUC(Area Under Curve)。AUC 值(面積)越大的分類器,性能越好。在圖5 中,紅色線條下方的AUC 值表示VGG19的分類性能,黑色線條下方的AUC 值表示ResNet-34的分類性能,顯然后者的AUC值要大于前者。這表明ResNet-34 的性能明顯好于基于VGG19 的方法,可以應(yīng)用到真實(shí)環(huán)境下的銀屑病分類診斷任務(wù)中去。
圖5 ROC-AUC比較(ResNet-34 VS VGG19)
文中提出一種基于深度殘差網(wǎng)絡(luò)的銀屑病分類診斷模型,通過(guò)設(shè)計(jì)一個(gè)34層的殘差網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)銀屑病的精準(zhǔn)診斷,最后的實(shí)驗(yàn)結(jié)果也驗(yàn)證了所提模型的有效性。在下一步工作中,我們將繼續(xù)對(duì)銀屑病的癥狀、證型以及用藥規(guī)律等進(jìn)行分析,將銀屑病的診斷、治療和用藥等一體化過(guò)程構(gòu)建成知識(shí)圖譜,并進(jìn)一步提出一種基于圖卷積神經(jīng)網(wǎng)絡(luò)的銀屑病用藥推薦模型,從而對(duì)醫(yī)生的診療工作提供更好的決策支持。