王兵銳,張新剛,楊曉非
(1.南陽師范學(xué)院 河南省智能應(yīng)急研究中心,河南 南陽 473007;2.華中科技大學(xué) 光學(xué)與電子信息學(xué)院,湖北 武漢 430074)
乳腺是由腺體、導(dǎo)管和脂肪組織等構(gòu)成,乳腺癌發(fā)生在腺體或?qū)Ч艿纳掀そM織。乳腺癌是危害女性健康的重要惡性腫瘤,位居女性惡性腫瘤第一位。乳腺癌手術(shù)之后,依然有轉(zhuǎn)移的可能性,需要及時(shí)診療[1]。乳腺癌如果不及時(shí)診療,或者診斷失誤認(rèn)為健康,容易發(fā)生乳腺癌轉(zhuǎn)移[2-3]。轉(zhuǎn)移之后,乳腺癌細(xì)胞之間連接松散易脫落,游離的癌細(xì)胞可以隨血液或淋巴液散播,乳腺癌繼續(xù)發(fā)展轉(zhuǎn)移到肺時(shí),引起胸腔積液、呼吸困難。轉(zhuǎn)移到骨骼時(shí)[4],入侵骨髓,出現(xiàn)不規(guī)則的骨質(zhì)破壞,引起骨折甚至癱瘓。轉(zhuǎn)移到大腦時(shí),引起腦腫脹導(dǎo)致顱內(nèi)壓增高,影響中樞神經(jīng),產(chǎn)生各種疼痛。許多乳腺癌患者早期疼痛并不明顯,容易忽視診斷,往往會(huì)造成更加嚴(yán)重的后果。積極的進(jìn)行早期診斷[5],尤其及時(shí)治療,一定程度上抑制癌細(xì)胞生長(zhǎng),使病情得到控制。傳統(tǒng)疾病治療需要醫(yī)生通過輔助機(jī)器檢測(cè)乳腺癌并對(duì)病情做出判斷。人工智能應(yīng)用在醫(yī)學(xué)腫瘤上是當(dāng)前的研究熱點(diǎn)[6-7]。
應(yīng)用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行乳腺癌診斷[8-9],可以將病情數(shù)據(jù)交給訓(xùn)練過的學(xué)習(xí)模型,然后由模型去判斷病情,判斷結(jié)果更加精確,人工判斷一般有主觀傾向,并且?guī)в薪?jīng)驗(yàn)傾向,容易判斷失誤,CNN可以快速處理乳腺癌數(shù)據(jù),效率遠(yuǎn)遠(yuǎn)高于人工,更加節(jié)省時(shí)間。CNN對(duì)于診斷乳腺癌,及早發(fā)現(xiàn)乳腺癌,保障人類生命安全等方面都會(huì)產(chǎn)生巨大的影響。
通常健康人的數(shù)量遠(yuǎn)大于癌癥患者的數(shù)量,獲得的癌癥圖片遠(yuǎn)小于健康圖片的數(shù)量,導(dǎo)致數(shù)據(jù)類別分布不平衡。應(yīng)用深度學(xué)習(xí)時(shí),這種不平衡會(huì)導(dǎo)致學(xué)習(xí)模型偏向于健康類,測(cè)試時(shí)容易將癌癥類判別為健康類,學(xué)習(xí)模型在測(cè)試數(shù)據(jù)集上的泛化性不好[10]。所以,需要得到一個(gè)性能不錯(cuò)的學(xué)習(xí)模型,對(duì)健康和癌癥圖片都能提供較好的分類準(zhǔn)確率。解決數(shù)據(jù)不平衡的方法通常分為兩類[11],校正學(xué)習(xí)模型和調(diào)整數(shù)據(jù)集。
校正學(xué)習(xí)模型常采用損失函數(shù)加權(quán)的方法,具體過程如下所述。
(1)
式(1)為交叉熵?fù)p失函數(shù),tk是正確的標(biāo)簽,并采用獨(dú)熱碼表示,yk是學(xué)習(xí)模型的輸出。數(shù)據(jù)不平衡時(shí),采用式(1)計(jì)算出來的損失值是相近的,對(duì)少數(shù)類容易判為多數(shù)類。此時(shí)需要在式(1)右邊乘以一個(gè)加權(quán)系數(shù),從而加大少數(shù)類的損失值,使學(xué)習(xí)模型更傾向于預(yù)測(cè)少數(shù)類,這樣能達(dá)到平衡預(yù)測(cè)數(shù)據(jù)。式(1)改進(jìn)為:
(2)
其中,λ為加權(quán)系數(shù),訓(xùn)練多數(shù)類時(shí),λ的值為1,訓(xùn)練少數(shù)類時(shí),λ的值大于1,從而加大少數(shù)類的損失,更多關(guān)注少數(shù)類的樣本。
調(diào)整數(shù)據(jù)集通常分為三種方法,合成少數(shù)類數(shù)據(jù)、減小多數(shù)類以及增大少數(shù)類[12-13]。合成少數(shù)類數(shù)據(jù)最經(jīng)典的方法是SMOTE(synthetic minority over-sampling technique)[14-16]。該算法合成新的少數(shù)類數(shù)據(jù),對(duì)每個(gè)少數(shù)類數(shù)據(jù),根據(jù)歐氏距離從它的最近鄰中隨機(jī)選取另一個(gè)少數(shù)類數(shù)據(jù),然后在這兩個(gè)少數(shù)類數(shù)據(jù)的連線上隨機(jī)選擇一個(gè)位置,把該位置作為一個(gè)新的少數(shù)類數(shù)據(jù)。SMOTE算法常用來處理股票、表格等數(shù)據(jù)且效果較好,用來處理圖像的情況較少。
減小多數(shù)類方法是從多數(shù)類樣本中隨機(jī)移除一些數(shù)據(jù),從而達(dá)到數(shù)據(jù)平衡。但有可能丟失包含重要特征的信息。但可以隨機(jī)選擇等量的不同的多數(shù)類數(shù)據(jù),和少數(shù)類數(shù)據(jù)一起學(xué)習(xí)訓(xùn)練,重復(fù)n次學(xué)習(xí)并得到多個(gè)學(xué)習(xí)結(jié)果,最后將多個(gè)結(jié)果進(jìn)行大數(shù)判決,從而決定最終的分類結(jié)果。增大少數(shù)類,最簡(jiǎn)單的方法是隨機(jī)復(fù)制一些少數(shù)類數(shù)據(jù),擴(kuò)充到和多數(shù)類一致的數(shù)據(jù)量。如此的增大策略可以達(dá)到所需的任意平衡,而且該方法比較簡(jiǎn)單,易于理解和實(shí)現(xiàn)。但這樣增大少數(shù)類數(shù)據(jù),并沒有增加數(shù)據(jù)的多樣性,容易導(dǎo)致過擬合。
比較有效的增大少數(shù)類的方法是,做數(shù)據(jù)增強(qiáng)處理。常用的操作有旋轉(zhuǎn),剪切,尺度變換,反轉(zhuǎn),平移,噪聲擾動(dòng),色彩抖動(dòng)。旋轉(zhuǎn)是對(duì)輸入圖像進(jìn)行0度到360度隨機(jī)旋轉(zhuǎn)。裁剪是對(duì)圖像隨機(jī)摘取出一部分,并放大到和輸入圖像一樣大小,容易丟失主要特征。尺度變化是按照一定比例對(duì)圖像隨機(jī)進(jìn)行整體縮小或放大,和剪切有一定區(qū)別。反轉(zhuǎn)是對(duì)圖像做垂直或水平反轉(zhuǎn)。有些圖像比如貓,做垂直翻轉(zhuǎn)后,物體徹底改變,特征變化巨大。平移是隨機(jī)對(duì)圖像左右移動(dòng)一定的比例。噪聲擾動(dòng)是指在圖像中隨機(jī)加入少量的高斯噪聲,可以有效防止過擬合,讓CNN不能學(xué)習(xí)圖像的全部特征。色彩抖動(dòng)指在顏色空間中,每個(gè)通道隨機(jī)抖動(dòng)一定的程度,比如改變圖像的對(duì)比度、亮度、飽和度等,容易產(chǎn)生不符合實(shí)際的圖像,使得學(xué)習(xí)效果變差。
CNN是一類具有卷積計(jì)算的前饋神經(jīng)網(wǎng)絡(luò)[17],卷積神經(jīng)網(wǎng)絡(luò)具有局部感知、特征降維等特點(diǎn)。因其優(yōu)異的算法性能,卷積神經(jīng)網(wǎng)絡(luò)多被用于深度學(xué)習(xí)中,用來進(jìn)行圖像識(shí)別,自然語言處理等。CNN是以梯度下降迭代的方法來進(jìn)行學(xué)習(xí)的,要對(duì)輸入的信息進(jìn)行預(yù)處理歸一化。因?yàn)椴煌奶卣餍畔?duì)應(yīng)的值域不同,為了提高之后的訓(xùn)練效率,要把各個(gè)特征信息的值域盡量控制在相同值域上,一般采用除以255進(jìn)行歸一化。CNN包括卷積層、激活層、池化層、全連接層等。
卷積層最重要的作用就是用來進(jìn)行特征信息提取。卷積層不能一步處理一圖片的全部信息,需要把圖片等分成多份,對(duì)每一小份進(jìn)行處理。卷積層最關(guān)鍵的運(yùn)算是卷積運(yùn)算,如式(3)所示。卷積運(yùn)算會(huì)提取出每一小份所蘊(yùn)含的特征,輸入數(shù)據(jù)是個(gè)矩陣,需要和權(quán)重系數(shù)構(gòu)成的矩陣進(jìn)行卷積。權(quán)重系數(shù)的初始值是隨機(jī)生成的,通常采用正態(tài)分布函數(shù)。在后期的訓(xùn)練學(xué)習(xí)中,權(quán)重系數(shù)會(huì)不斷調(diào)整。權(quán)重矩陣也稱為卷積核。圖片的每個(gè)部分與權(quán)重矩陣至少進(jìn)行一次運(yùn)算,然后產(chǎn)生一個(gè)完整的卷積層輸出。
(3)
其中,xi-1是第i層的輸入數(shù)據(jù),wi是第i層的權(quán)重系數(shù),bi是一個(gè)常數(shù)參數(shù),f(ui)是一個(gè)激活函數(shù),xi是第i層的輸出值。
卷積運(yùn)算之后會(huì)得到不同的值。卷積層的輸出越大,說明當(dāng)前卷積矩陣與輸入的圖片越匹配。換言之,通過卷積層輸出可以判斷哪個(gè)卷積核更能描述待識(shí)別圖片的具體特征。特定的某個(gè)卷積矩陣能夠識(shí)別相同或相似的特征,如果要識(shí)別其他特征則需要多個(gè)卷積矩陣。卷積層的特點(diǎn)就是不斷更新卷積矩陣,確定有哪些卷積矩陣更能揭示待識(shí)別的輸入圖片。
激活層的特點(diǎn)表現(xiàn)為非線性。如果不采用激活層,各層之間的關(guān)系將是一種線性映射。激活函數(shù)的非線性特征經(jīng)過深層次的反復(fù)疊加使得神經(jīng)網(wǎng)絡(luò)可以趨于任意的函數(shù),激活層使得CNN擁有更好的適用性。池化層去除卷積層提取到的無用信息,降低矩陣維度,減少訓(xùn)練參數(shù)以及減少噪聲向下一層傳遞。最大池化是指在相應(yīng)區(qū)域內(nèi)選擇一個(gè)最大的數(shù)代表整個(gè)區(qū)域,如圖1所示,圖中采用的是2×2大小的矩陣池化,也就是4個(gè)元素中選取1個(gè)最大值。均值池化是指用相應(yīng)區(qū)域內(nèi)的平均值去代表整個(gè)數(shù)據(jù)區(qū)域。最大池化和均值池化是經(jīng)常采用的方式。
圖1 最大池化
全連接層通常被放置在最后幾層,其作用主要表現(xiàn)在分類上。卷積層每一次獲取到的都是局部特征,而想要起到分類識(shí)別的作用,局部特征是完全不夠用的。全連接層是把所有的局部特征給組合起來,成為完整的特征圖,以便完成正確的分類識(shí)別。
提出精簡(jiǎn)的4個(gè)卷積層的CNN來進(jìn)行快速運(yùn)算,第一層為卷積層1、激活層,第二層為卷積層2、激活層、池化層,第三層為卷積層3、激活層,第四層為卷積層4、激活層、池化層,按照層層遞進(jìn)的關(guān)系如圖2所示,最后一層為全連接層。激活層采用的激活函數(shù)為Relu,池化層采用最大池化方法。4個(gè)卷積層采用的權(quán)重矩陣都是3×3矩陣,每個(gè)卷積層含64個(gè)以上的權(quán)重矩陣。4個(gè)卷積層,也就是卷積層1、2、3、4采用的權(quán)重矩陣個(gè)數(shù)為64、64、128、128,如圖2中用括號(hào)進(jìn)行標(biāo)注。
圖2 提出的4層CNN
采用的是Kaggle公開提供的50×50的乳腺癌數(shù)據(jù)集,健康圖片約為19.8萬張,癌癥圖片約為7.8萬張。把癌癥圖片中包含信息較少的小圖片去掉,同時(shí)也方便快速運(yùn)算,抽取得到癌癥圖片為4.6萬張,采用減小多數(shù)類的隨機(jī)采樣方法抽取6萬張健康圖片。同時(shí)采用增大少數(shù)類的數(shù)據(jù)增強(qiáng)方法,把癌癥圖片增加到5萬張,數(shù)據(jù)增強(qiáng)擴(kuò)大產(chǎn)生4千張圖片。如果在程序運(yùn)行時(shí),一面擴(kuò)增數(shù)據(jù)一面運(yùn)行模型,處理速度較慢,預(yù)先把數(shù)據(jù)擴(kuò)增好會(huì)提高運(yùn)行速度。數(shù)據(jù)增強(qiáng)的具體方法為水平移動(dòng)范圍為50*0.08=4,即圖片水平偏移的幅度為4個(gè)像素。垂直移動(dòng)范圍為50*0.1=5,即圖片垂直偏移的幅度為5個(gè)像素。圖片隨機(jī)轉(zhuǎn)動(dòng)的角度設(shè)置為12度,設(shè)置水平隨機(jī)翻轉(zhuǎn)也就是做左右對(duì)稱變換。當(dāng)進(jìn)行變換時(shí)超出邊界的點(diǎn)根據(jù)就近插值原則進(jìn)行處理。采用標(biāo)準(zhǔn)化進(jìn)行增強(qiáng),將輸入的圖片除以數(shù)據(jù)集的標(biāo)準(zhǔn)差完成標(biāo)準(zhǔn)化。
除了針對(duì)數(shù)據(jù)集進(jìn)行控制,在訓(xùn)練學(xué)習(xí)模型時(shí),采用校正學(xué)習(xí)模型的損失函數(shù)加權(quán)方法,來平衡健康類和癌癥類的學(xué)習(xí)影響。把數(shù)據(jù)集拆分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,分別為8.8萬張、1.21萬張、9.9千張。由于采用的數(shù)據(jù)集的分辨率較低,把50×50像素圖片增大到100×100大小,從而更好地提取細(xì)節(jié)特征。在人工智能中,遷移學(xué)習(xí)容易理解,且速度較快備受青睞。遷移學(xué)習(xí)是把一個(gè)場(chǎng)景學(xué)到的知識(shí)用來幫助應(yīng)對(duì)新場(chǎng)景的學(xué)習(xí)任務(wù),比如有編寫歌詞的學(xué)習(xí)經(jīng)驗(yàn),就有助于唱歌跳舞。
遷移學(xué)習(xí)最經(jīng)典的應(yīng)用是VGG16,包含13個(gè)卷積層和3個(gè)全連接層,如圖3所示。最大輸入為224×224×3的圖片,最小輸入為48×48×3的圖片。經(jīng)過兩次卷積層,每層包含64個(gè)卷積核,進(jìn)行一次池化操作。之后又經(jīng)過兩次卷積層,每層包含128個(gè)卷積核,進(jìn)行一次池化操作。再經(jīng)過三次卷積層,每層包含256個(gè)卷積核,進(jìn)行一次池化操作。然后進(jìn)行三次卷積層,每層包含512個(gè)卷積核,進(jìn)行一次池化,這個(gè)操作重復(fù)兩遍。最后經(jīng)過三個(gè)全連接層,前兩個(gè)全連接層有4 096個(gè)神經(jīng)元節(jié)點(diǎn),第三層有1 000個(gè)神經(jīng)元節(jié)點(diǎn)。前13層采用的卷積核個(gè)數(shù),依次為64、64、128、128、256、256、256、512、512、512、512、512、512。文中應(yīng)用VGG16來識(shí)別判斷乳腺癌,訓(xùn)練倒數(shù)4個(gè)卷積層和全連接層,其余層進(jìn)行凍結(jié)。
圖3 VGG16結(jié)構(gòu)
下面從精度損失曲線上對(duì)比提出的CNN與VGG16的性能,如圖4所示,其中trian_acc為訓(xùn)練精度,trian_loss為訓(xùn)練損失,val_acc為驗(yàn)證精度,val_loss為驗(yàn)證損失。從圖中可以發(fā)現(xiàn),乳腺癌圖片為50×50時(shí),精度損失曲線波動(dòng)比較大。把圖片擴(kuò)大為100×100時(shí),曲線比較平緩,尤其采用提出的CNN,trian_acc和val_acc結(jié)合的比較緊密,說明訓(xùn)練效果較好。
(a)50×50時(shí)VGG16
上面的精度損失曲線是針對(duì)訓(xùn)練集和驗(yàn)證集。還需要對(duì)測(cè)試集進(jìn)行考查。采用混淆矩陣針對(duì)測(cè)試集做進(jìn)一步的探討,混淆矩陣容易看到深度學(xué)習(xí)模型是否將癌癥的類別混淆。混淆矩陣是對(duì)深度學(xué)習(xí)模型預(yù)測(cè)結(jié)果的一種總結(jié)分析表格,列出測(cè)試集圖片的真實(shí)類別與模型預(yù)測(cè)類別,以矩陣形式呈現(xiàn)出來?;谔岢龅腃NN和VGG16,面向乳腺癌和健康圖片測(cè)試集,分別針對(duì)50×50像素和100×100像素進(jìn)行實(shí)驗(yàn)測(cè)試,得到混淆矩陣,如圖5和圖6所示。圖中矩陣的行表示真實(shí)值,矩陣的列表示預(yù)測(cè)值。
圖5 50×50時(shí)的混淆矩陣
圖6 100×100時(shí)的混淆矩陣
圖5和圖6中,左上角表示真實(shí)為健康且訓(xùn)練模型判別為健康的數(shù)量,稱作真陰性(true negative,TN)。右上角表示真實(shí)為健康但訓(xùn)練模型判別為乳腺癌的數(shù)量,稱作假陽性(false positive,F(xiàn)P)。左下角表示真實(shí)為乳腺癌但訓(xùn)練模型判別為健康的數(shù)量,稱作假陰性(false negative,F(xiàn)N)。右下角表示真實(shí)為乳腺癌且訓(xùn)練模型判別為乳腺癌的數(shù)量,稱作真陽性(true positive,TP)。混淆矩陣?yán)锩媪谐龅氖菙?shù)量,為了更加直觀衡量模型的優(yōu)劣,在混淆矩陣的統(tǒng)計(jì)結(jié)果上給出進(jìn)一步的評(píng)價(jià)指標(biāo),正確率(accuracy)、靈敏度(sensitivity)、特異度(specificity)。正確率是指被網(wǎng)絡(luò)模型識(shí)別正確的乳腺癌和健康數(shù)除以所有的圖片數(shù),一般正確率越高,分類器越好。
(4)
采用CNN進(jìn)行診斷識(shí)別來及早發(fā)現(xiàn)乳腺癌。但乳腺癌數(shù)據(jù)集遠(yuǎn)小于健康人的數(shù)據(jù)集,數(shù)據(jù)不平衡。采用隨機(jī)下采樣的方法減少多數(shù)類健康數(shù)據(jù)集,采用數(shù)據(jù)增強(qiáng)的方法增大少數(shù)類癌癥數(shù)據(jù),同時(shí)控制學(xué)習(xí)模型的癌癥與健康學(xué)習(xí)權(quán)重比例,融合三種方法應(yīng)對(duì)數(shù)據(jù)不平衡。通過混淆矩陣,對(duì)原始50×50像素和調(diào)整后100×100像素?cái)?shù)據(jù)集進(jìn)行測(cè)試評(píng)估,根據(jù)式(4),50×50像素時(shí),經(jīng)典16層的VGG16網(wǎng)絡(luò)和提出的4卷積層CNN網(wǎng)絡(luò)的準(zhǔn)確率分別為79.2%和80.7%。100×100像素時(shí),VGG16網(wǎng)絡(luò)和提出的CNN網(wǎng)絡(luò)的準(zhǔn)確率分別為81.7%和83.1%。提出的CNN的乳腺癌識(shí)別精度在100×100像素時(shí)優(yōu)于VGG16在50×50像素時(shí)多達(dá)4個(gè)百分點(diǎn)。采用的癌癥數(shù)據(jù)集分辨率較低,紋理特征不易提取。同時(shí)為了方便快速計(jì)算、節(jié)約硬件資源,提出了4卷積層的CNN,不易過擬合,性能優(yōu)于16層的VGG16網(wǎng)絡(luò)。因?yàn)閂GG16網(wǎng)絡(luò)容易產(chǎn)生過擬合,從而導(dǎo)致精度較低。