李昀松,段喜萍
摘要:目前,猴痘病在全球多個(gè)國(guó)家快速傳播,為了能夠使有相關(guān)癥狀的感染者有效地識(shí)別出是否為猴痘病,提出了一種改進(jìn)的基于遷移學(xué)習(xí)殘差網(wǎng)絡(luò)的圖像自動(dòng)識(shí)別方法。該方法使用了ResNet50網(wǎng)絡(luò)并使用該網(wǎng)絡(luò)預(yù)訓(xùn)練權(quán)重進(jìn)行遷移學(xué)習(xí),在網(wǎng)絡(luò)的全連接層后加入dropout對(duì)神經(jīng)元進(jìn)行隨機(jī)失活。在經(jīng)過(guò)數(shù)據(jù)增強(qiáng)的猴痘病數(shù)據(jù)集上進(jìn)行了網(wǎng)絡(luò)的訓(xùn)練,最終達(dá)到了97.9%的識(shí)別準(zhǔn)確率,相比于VGG16和AlexNet網(wǎng)絡(luò)具有更高的識(shí)別準(zhǔn)確率。
關(guān)鍵詞:圖像識(shí)別;分類識(shí)別;深度學(xué)習(xí);殘差網(wǎng)絡(luò);遷移學(xué)習(xí)
中圖分類號(hào):TP391? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)33-0019-02
1 概述
2022年5月,猴痘疫情在歐洲以及北美等地迅速蔓延,其中美國(guó)、西班牙、巴西和法國(guó)等國(guó)家猴痘病例面臨著巨大的挑戰(zhàn)。猴痘病毒具有較強(qiáng)的感染性,其感染者的主要癥狀會(huì)出現(xiàn)全身的水皰與膿皰,該癥狀與天花患者的癥狀極其相似。因此,通過(guò)感染者的水皰與膿皰識(shí)別判斷該感染者是否感染了猴痘病毒成了一項(xiàng)艱巨的任務(wù)。
目前,基于深度學(xué)習(xí)的方法在計(jì)算機(jī)視覺(jué)領(lǐng)域擁有廣泛的應(yīng)用[1],并在醫(yī)療診斷[2]、交通[3]和農(nóng)業(yè)[4]等各個(gè)領(lǐng)域取得了良好的效果,LeCun等首次提出了卷積神經(jīng)網(wǎng)絡(luò)模型LeNet-5,該模型在圖像識(shí)別領(lǐng)域的任務(wù)中超過(guò)了人類的水平。Krizhevsky等人[5]提出了AlexNet網(wǎng)絡(luò),網(wǎng)絡(luò)中使用了ReLU激活函數(shù)替換tanh激活函數(shù),并在網(wǎng)絡(luò)的全連接層增加了dropout方法隨機(jī)地將一部分神經(jīng)元置為0,將該網(wǎng)絡(luò)應(yīng)用到了LSVRC-12競(jìng)賽中取得了當(dāng)時(shí)最好的分類效果。Szegedy等人[6]使用了1[×]1、3[×]3和5[×]5卷積操作作為主要結(jié)構(gòu),與AlexNet相比參數(shù)量更少但準(zhǔn)確率更高。Simonyan等人[7]討論了網(wǎng)絡(luò)的深度對(duì)性能的關(guān)系,通過(guò)增加3[×]3卷積進(jìn)行實(shí)驗(yàn),當(dāng)網(wǎng)絡(luò)層數(shù)達(dá)到16~19層時(shí)達(dá)到最佳效果,并且得到了使用多個(gè)3[×]3卷積替換7[×]7卷積可以達(dá)到相似效果的結(jié)論,并且能夠減小一定的參數(shù)量與計(jì)算量。ResNet網(wǎng)絡(luò)[8]使用了跨層連接的結(jié)構(gòu)并使用了批規(guī)范化[9]的方法抑制神經(jīng)網(wǎng)絡(luò)層數(shù)加深后引起模型過(guò)擬合的退化問(wèn)題,ResNet能夠訓(xùn)練更深的網(wǎng)絡(luò)在LSBRC-15的圖像分類比賽中獲得了第一名的成績(jī)。
本文使用了在ImageNet數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練的ResNet50模型權(quán)重,并在網(wǎng)絡(luò)的全連接層加入dropout方法對(duì)神經(jīng)元進(jìn)行隨機(jī)失活,在猴痘病數(shù)據(jù)集上進(jìn)行模型訓(xùn)練,得到的模型能夠有效地通過(guò)患者癥狀識(shí)別出是否感染猴痘病毒。
2 算法描述
2.1殘差網(wǎng)絡(luò)
在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)研究中,在網(wǎng)絡(luò)上串連更多的層數(shù)時(shí)在圖像任務(wù)中的表現(xiàn)反而下降,這并不是網(wǎng)絡(luò)出現(xiàn)過(guò)擬合而導(dǎo)致錯(cuò)誤率上升的問(wèn)題,而是在網(wǎng)絡(luò)訓(xùn)練的過(guò)程中,正向與反向的信息傳遞不順暢,從而導(dǎo)致模型沒(méi)有得到充分訓(xùn)練的一種網(wǎng)絡(luò)退化問(wèn)題。ResNet提出了一種殘差模塊,如圖1所示,weight_layer為網(wǎng)絡(luò)層,relu為激活函數(shù),通過(guò)殘差結(jié)構(gòu)加入的恒等映射,即使原始卷積結(jié)構(gòu)信息沒(méi)有傳遞也能夠通過(guò)殘差保留原始的信息,并且ResNet使用了批歸一化方法降低梯度消失的問(wèn)題,降低了網(wǎng)絡(luò)在訓(xùn)練過(guò)程中對(duì)于權(quán)重初始化的依賴。
2.2 ResNet50
ResNet50網(wǎng)絡(luò)由49個(gè)卷積層和一個(gè)全連接層構(gòu)成,結(jié)構(gòu)如圖2所示,圖中Conv為卷積層,Max_pooling為最大池化層,ResBlock為殘差模塊,AveragePool為全局平均池化層,F(xiàn)C為全連接層。輸入圖像數(shù)據(jù)的分辨率為224[×]224并由RGB三個(gè)通道組成,首先將224[×]224[×]3的圖像數(shù)據(jù)輸入到卷積核大小為7[×]7步長(zhǎng)為2的卷積層中,得到112[×]112[×]64的張量后進(jìn)行3[×]3的最大池化操作,然后將其輸入4個(gè)階段的殘差網(wǎng)絡(luò)基礎(chǔ)模塊當(dāng)中,隨著每個(gè)階段特征信息的傳遞,可以獲得更深層次的特征,得到的深層特征張量進(jìn)行全局平均池化操作,最后將其輸入到全連接層中,本實(shí)驗(yàn)為是否為猴痘病的二分類任務(wù),最終節(jié)點(diǎn)數(shù)為2,并加入dropout層防止模型過(guò)擬合,隨機(jī)失活比率設(shè)置為0.2,失活了的神經(jīng)元節(jié)點(diǎn)不參與模型的參數(shù)訓(xùn)練,能夠有效的提升模型的泛化能力。
2.3遷移學(xué)習(xí)
遷移學(xué)習(xí)的基本思想是利用已經(jīng)解決問(wèn)題的策略用以解決待解決的問(wèn)題[10],在基于深度學(xué)習(xí)的任務(wù)中,需要大量的數(shù)據(jù)對(duì)神經(jīng)網(wǎng)絡(luò)的模型進(jìn)行訓(xùn)練,得到合適的模型參數(shù)權(quán)重,并且需要大量的模型訓(xùn)練時(shí)間和更高性能的硬件設(shè)備,因此將源領(lǐng)域所學(xué)到的知識(shí)遷移到其他領(lǐng)域是必要的。
本文使用了在ImageNet上訓(xùn)練的ResNet50網(wǎng)絡(luò)模型,ImageNet是供計(jì)算機(jī)視覺(jué)識(shí)別研究的大型可視化圖像數(shù)據(jù)集,其中包含超過(guò)140萬(wàn)手動(dòng)標(biāo)注的圖像數(shù)據(jù),并包含1000個(gè)圖像類別,則經(jīng)過(guò)預(yù)訓(xùn)練的ResNet50網(wǎng)絡(luò)的全連接層輸出1000個(gè)節(jié)點(diǎn),在本實(shí)驗(yàn)中為了適應(yīng)猴痘病數(shù)據(jù)集類別數(shù),將節(jié)點(diǎn)數(shù)量由1000改為2,然后將ResNet50的預(yù)訓(xùn)練權(quán)重在本實(shí)驗(yàn)的猴痘病數(shù)據(jù)集進(jìn)行微調(diào)訓(xùn)練,該方法既能提高模型的泛化能力和魯棒性,也能夠減少訓(xùn)練的時(shí)間節(jié)約算力的開銷。
2.4 網(wǎng)絡(luò)優(yōu)化
2.4.1 損失函數(shù)
損失函數(shù)是將隨機(jī)事件或其有關(guān)隨機(jī)變量的取值映射為非負(fù)實(shí)數(shù),表示該隨機(jī)事件的風(fēng)險(xiǎn)或損失的函數(shù),在實(shí)際任務(wù)中則通過(guò)最小化損失函數(shù)求解和評(píng)估模型。本文使用交叉熵?fù)p失表達(dá)預(yù)測(cè)值和真實(shí)值的不一致程度,交叉熵?fù)p失常用于圖像識(shí)別任務(wù)中作為損失函數(shù),能夠有效地衡量同一個(gè)隨機(jī)變量中的兩個(gè)不同概率分布的差異程度。
2.4.2 優(yōu)化算法
深度學(xué)習(xí)是以最小化損失函數(shù)為目標(biāo),其本質(zhì)上是一種優(yōu)化問(wèn)題,目前應(yīng)用于深度學(xué)習(xí)的優(yōu)化算法均為由梯度下降算法發(fā)展而來(lái),其主要思想為利用鏈?zhǔn)角髮?dǎo)法則計(jì)算損失函數(shù)值相對(duì)于神經(jīng)網(wǎng)絡(luò)中的每一個(gè)權(quán)重參數(shù)的梯度,通過(guò)更新權(quán)重參數(shù)達(dá)到降低損失函數(shù)值的效果。本文使用SGD隨機(jī)梯度下降算法作為模型的優(yōu)化器,該方法具有更新速度快的優(yōu)點(diǎn),能夠?qū)γ恳粋€(gè)樣本都進(jìn)行一次梯度運(yùn)算并更新模型的權(quán)重。
3 實(shí)驗(yàn)與結(jié)果分析
3.1 數(shù)據(jù)集與實(shí)驗(yàn)環(huán)境
為了區(qū)分猴痘病例與類似的非猴痘病例創(chuàng)建了猴痘病毒圖像數(shù)據(jù)集,該數(shù)據(jù)集分為猴痘病類和包含與猴痘病毒癥狀相似的水痘和麻疹的其他類別,以進(jìn)行二分類,其中猴痘病圖像類別包含72張圖片,其他類別包含110張圖片,圖像的像素均為224[×]224,其中的每張圖片應(yīng)用了旋轉(zhuǎn)、平移、反射、剪切、色相、飽和度、對(duì)比度、亮度抖動(dòng)、噪聲和縮放等多種圖像數(shù)據(jù)增強(qiáng)方法擴(kuò)充數(shù)據(jù)集,經(jīng)過(guò)擴(kuò)充后的數(shù)據(jù)集猴痘病類別擁有980張圖片,其他類別擁有1162張圖片。本實(shí)驗(yàn)將全部的圖像數(shù)據(jù)按照8:2的比例進(jìn)行劃分為訓(xùn)練集和測(cè)試集,圖3給出了猴痘病和其他類別的各3張?jiān)紙D像。
實(shí)驗(yàn)操作系統(tǒng)為L(zhǎng)inux操作系統(tǒng),在一塊V100的10核32GB內(nèi)存GPU的云服務(wù)器上運(yùn)行程序,編程語(yǔ)言為Python語(yǔ)言,深度學(xué)習(xí)框架為PyTorch。使用SGD優(yōu)化器進(jìn)行訓(xùn)練,訓(xùn)練動(dòng)量設(shè)為0.9,Batchsize設(shè)為80,學(xué)習(xí)率設(shè)為6e-3,進(jìn)行了50個(gè)epoch的訓(xùn)練。
3.2 實(shí)驗(yàn)結(jié)果分析
本文使用ResNet50對(duì)猴痘數(shù)據(jù)集進(jìn)行了評(píng)估,并與AlexNet和VGG16網(wǎng)絡(luò)進(jìn)行了對(duì)比,三種網(wǎng)絡(luò)模型僅使用遷移學(xué)習(xí)的方法進(jìn)行訓(xùn)練,網(wǎng)絡(luò)對(duì)比結(jié)果如表1所示,由表1可以看出,ResNet50網(wǎng)絡(luò)經(jīng)過(guò)訓(xùn)練后精確度為97.9%,VGG16網(wǎng)絡(luò)精確度為97.7%,AlexNet網(wǎng)絡(luò)精確度為96.3%,ResNet-50網(wǎng)絡(luò)在猴痘病識(shí)別任務(wù)中的效果最佳,并且與其他網(wǎng)絡(luò)相比,擁有最少的參數(shù)量和合適的計(jì)算量。
4 結(jié)論
針對(duì)全球多個(gè)國(guó)家快速傳播的猴痘病疫情,希望能夠通過(guò)感染者的癥狀分辨出是否為猴痘病感染者,本文利用深度學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)的識(shí)別方法,使用了基于遷移學(xué)習(xí)的ResNet50網(wǎng)絡(luò),并且對(duì)網(wǎng)絡(luò)的全連接層添加了dropout,對(duì)其神經(jīng)元以一定的概率進(jìn)行失活,本文所使用的網(wǎng)絡(luò)模型經(jīng)過(guò)猴痘數(shù)據(jù)集的訓(xùn)練,最終能夠達(dá)到97.9%的猴痘病識(shí)別準(zhǔn)確率,高于VGG16與AlexNet模型97.7%和96.3%的精確度,能夠快速有效地對(duì)猴痘病及具有相似癥狀的其他病毒感染者進(jìn)行識(shí)別。由于數(shù)據(jù)集的局限性,本文算法還需要收集更多猴痘病感染者以及更多種類的相似癥狀病毒感染者的數(shù)據(jù)進(jìn)行進(jìn)一步驗(yàn)證。
參考文獻(xiàn):
[1] 張榮,李偉平,莫同.深度學(xué)習(xí)研究綜述[J].信息與控制,2018,47(4):385-397,410.
[2] 唐江平,周曉飛,賀鑫,等.基于深度學(xué)習(xí)的新型冠狀病毒肺炎診斷研究綜述[J].計(jì)算機(jī)工程,2021,47(5):1-15.
[3] 楊柳.深度學(xué)習(xí)在交通運(yùn)輸中應(yīng)用綜述[J].信息技術(shù)與信息化,2022(2):192-195.
[4] 邊柯橙,楊海軍,路永華.深度學(xué)習(xí)在農(nóng)業(yè)病蟲害檢測(cè)識(shí)別中的應(yīng)用綜述[J].軟件導(dǎo)刊,2021(3):26-33.
[5] Krizhevsky A,Sutskever I,Hinton G E.ImageNet classification with deep convolutional neural networks[J].Communications of the ACM,2017,60(6):84-90.
[6] Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]//Proceedings of the IEEE conference on computer vision and pattern recognition, 2015: 1-9.
[7] Simonyan K,Zisserman A.Very deep convolutional networks for large-scale image recognition[EB/OL].2014:arXiv:1409.1556.https://arxiv.org/abs/1409.1556
[8] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition,2016:770-778.
[9] Ioffe S,Szegedy C.Batch normalization:accelerating deep network training by reducing internal covariate shift[C]//International conference on machine learning. PMLR, 2015: 448-456.
[10] 劉鑫鵬,欒悉道,謝毓湘,等.遷移學(xué)習(xí)研究和算法綜述[J].長(zhǎng)沙大學(xué)學(xué)報(bào),2018(5):28-31,36.
【通聯(lián)編輯:唐一東】