王鑫, 文澤華,任家樂,韓藝圓
(1.蘭州職業(yè)技術(shù)學(xué)院, 甘肅蘭州730070; 2.蘭州工業(yè)學(xué)院, 甘肅蘭州730050; 3.寧夏大學(xué), 寧夏銀川750021)
提到水母,人們首先會(huì)想到它透明的、傘狀的、帶有許多觸手的外表,它們?cè)诤Q笾嗅溽嗟难U裊身姿美麗而又奇幻,讓人浮想聯(lián)翩,但很多水母并不像它所表現(xiàn)地那么“溫柔”,許多水母的觸手都帶有大量毒液的刺細(xì)胞,現(xiàn)存有不少種類是有劇毒的。如果不小心被此類水母蜇傷,會(huì)使人麻痹、休克甚至死亡。例如澳洲箱水母,它是目前已知水母品種里毒性最強(qiáng)的水母,一只箱水母可以毒殺60名成年人,且在短短四分鐘之內(nèi)就會(huì)致人死亡。此類水母對(duì)于海下勘察作業(yè)人員具有極大的安全隱患。即使是在淺灘海岸,這種危險(xiǎn)也依然存在,曾發(fā)生過多起游客在海灘被擱淺的僧帽水母蜇傷進(jìn)而引起休克的案例。設(shè)計(jì)一種通過水母圖片來判別水母危險(xiǎn)程度的系統(tǒng)可以方便海員、游客、海下作業(yè)人員等對(duì)所觀察到的水母進(jìn)行一定程度地安全識(shí)別是很有必要的。
圖像識(shí)別是在計(jì)算機(jī)對(duì)圖像特征提取的基礎(chǔ)上進(jìn)行的,雖然有很多有效的算法可以對(duì)圖像進(jìn)行特征提取,但往往這些基于數(shù)學(xué)模型的方法需要進(jìn)行大量的運(yùn)算,耗時(shí)較長,而且對(duì)于內(nèi)容復(fù)雜的圖像通常提取特征精度較低。深度學(xué)習(xí)技術(shù)在圖像特征提取方面的應(yīng)用在很大程度上提升了圖像特征的處理效率和精度,基于深度學(xué)習(xí)的方法具有更好的實(shí)時(shí)性。卷積神經(jīng)網(wǎng)絡(luò)的提出最初就是為了解決圖像分類識(shí)別問題,目前已經(jīng)有很多成熟的卷積神經(jīng)網(wǎng)絡(luò)模型可以對(duì)各類圖像進(jìn)行分類識(shí)別,而且已經(jīng)能達(dá)到很高的識(shí)別精度,例如LeNet[1]主要用來進(jìn)行手寫字符的分類與識(shí)別,準(zhǔn)確率達(dá)到了98%,AlexNet[2]證明了當(dāng)卷積神經(jīng)網(wǎng)絡(luò)具有更寬更深的結(jié)構(gòu)時(shí)仍然有效并確立了深度學(xué)習(xí)在計(jì)算機(jī)視覺領(lǐng)域的地位。VGGNet[3]取得了2014年Imagenet[4]比賽定位項(xiàng)目第一名與分類項(xiàng)目第二名,它可以看作是AlexNet的加深版本,它相對(duì)于AlexNet而言,具有更深的層次和更多的參數(shù),所以它具有更好的表達(dá)能力,而深度網(wǎng)絡(luò)達(dá)到一定深度后,如果繼續(xù)增加層數(shù)并不能進(jìn)一步提高準(zhǔn)確率,反而使得網(wǎng)絡(luò)收斂變得更慢,測(cè)試數(shù)據(jù)的準(zhǔn)確率也會(huì)變得更差。上述網(wǎng)絡(luò)模型都是基于數(shù)據(jù)驅(qū)動(dòng)的深度學(xué)習(xí)模型,雖然已經(jīng)是非常成熟的網(wǎng)絡(luò)模型,但在圖像分類識(shí)別的具體任務(wù)中,如果想要達(dá)到較高的準(zhǔn)確率,首先需要有大規(guī)模的數(shù)據(jù)樣本作為訓(xùn)練數(shù)據(jù)集才能保證上述網(wǎng)絡(luò)模型具有理想的準(zhǔn)確率。其次,上述深度網(wǎng)絡(luò)模型需要有比較昂貴的計(jì)算機(jī)設(shè)備才能支持大規(guī)模數(shù)據(jù)樣本訓(xùn)練,對(duì)于普通用戶和便攜式設(shè)備來講,普及性較差。為了解決上述問題,本文提出了一種遷移ResNet預(yù)訓(xùn)練模型的方法以解決毒性水母圖像數(shù)據(jù)樣本匱乏和使用普通設(shè)備很難對(duì)大型成熟網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練的問題,實(shí)驗(yàn)表明,本文方法在針對(duì)有毒水母微小規(guī)模數(shù)據(jù)集進(jìn)行分類識(shí)別的任務(wù)中,在使用普及性機(jī)器的情況下,相對(duì)于使用常用的深度學(xué)習(xí)網(wǎng)絡(luò)模型,僅需要很短的訓(xùn)練時(shí)間就能夠達(dá)到較高的識(shí)別率。
ResNet是圖像分類識(shí)別任務(wù)中的王者,其準(zhǔn)確率很高,它有效解決了深度網(wǎng)絡(luò)由于梯度消失或者梯度爆炸而發(fā)生退化的問題,并且將網(wǎng)絡(luò)層數(shù)擴(kuò)展到了152層,其網(wǎng)絡(luò)結(jié)構(gòu)主要由殘差學(xué)習(xí)模塊構(gòu)成,如圖1:
圖1 殘差結(jié)構(gòu)
相較于普通卷積過程,殘差結(jié)構(gòu)會(huì)引入一個(gè)X的恒等映射(Identity Mapping),當(dāng)梯度消失時(shí),網(wǎng)絡(luò)模型將學(xué)習(xí)不到任何有價(jià)值的信息,這時(shí)就需要恒等映射來防止梯度消失以至于模型不能夠繼續(xù)學(xué)習(xí)??梢杂肍(X,Wi)來表示殘差映射,那么輸出可以表示為:
Y=F(X,Wi)+X(1)
當(dāng)梯度消失時(shí),即F(X)=0,Y=relu(X)=X,如此會(huì)將X恒等映射,相當(dāng)于在淺層網(wǎng)絡(luò)中堆疊“克隆層”,由于整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)中有很多的恒等映射,所以網(wǎng)絡(luò)繼續(xù)學(xué)習(xí)到有效信息的概率會(huì)大幅度增加。從數(shù)學(xué)角度來解釋的話,由于對(duì)X求導(dǎo)數(shù)會(huì)得到常數(shù)1,所以Loss基本不可能為0。由于VGG有3個(gè)全連接層,這會(huì)用到大量參數(shù),而ResNet用平均池化層代替全連接層,會(huì)節(jié)省大量參數(shù)。與VGG相比,ResNet參數(shù)少了很多,所以其訓(xùn)練效率較高。
遷移學(xué)習(xí)[6]是將某個(gè)領(lǐng)域或任務(wù)中學(xué)習(xí)到的知識(shí)或方法應(yīng)用到其他不同的領(lǐng)域或問題中,讓計(jì)算機(jī)也具備“舉一反三”的能力,以免在新的領(lǐng)域又要通過大數(shù)據(jù)從頭學(xué)起。針對(duì)具體的應(yīng)用場(chǎng)合,可以節(jié)省網(wǎng)絡(luò)模型訓(xùn)練時(shí)間,也為普及型計(jì)算設(shè)備獲得較理想的網(wǎng)絡(luò)模型另辟蹊徑。使用遷移學(xué)習(xí)有諸多益處,第一,可以利用海量數(shù)據(jù)中與當(dāng)前任務(wù)相關(guān)標(biāo)注數(shù)據(jù)構(gòu)建適用網(wǎng)絡(luò)模型;第二,節(jié)省設(shè)備購置成本和訓(xùn)練時(shí)間成本,將世界頂級(jí)公司在大數(shù)據(jù)上訓(xùn)練成型的模型遷移到當(dāng)前應(yīng)用中來,需要做的僅僅是微調(diào)模型;第三,擺脫目前還沒有通用模型的局面,利用成熟模型進(jìn)行靈活調(diào)整以適應(yīng)當(dāng)前任務(wù)需要;第四,面向特定領(lǐng)域和任務(wù),利用現(xiàn)成的標(biāo)注數(shù)據(jù)和模型。
根據(jù)毒性程度不同,本文將有毒水母分為三類,分別為:警惕的(Vigilant)、危險(xiǎn)的(Dangerous)及致命的(Fatal)。
1.基于VGG16預(yù)訓(xùn)練模型的遷移網(wǎng)絡(luò)——本文方法1
本文在VGG16預(yù)訓(xùn)練模型的基礎(chǔ)上,利用遷移學(xué)習(xí)方式,利用VGG16現(xiàn)成模型已經(jīng)習(xí)得的海量標(biāo)注數(shù)據(jù)及模型參數(shù),并將已有模型分類器中的最后一層的線性輸出修改為3種輸出,以對(duì)應(yīng)于3種不同的水母。其中的分類器結(jié)構(gòu)如圖2:
圖2 本文分類器結(jié)構(gòu)
2.基于ResNet預(yù)訓(xùn)練模型的遷移網(wǎng)絡(luò)——本文方法2
由于不同種類的水母在外觀方面有很多相似的特征,而越深的網(wǎng)絡(luò)模型更有利于感知和提取這些特征之間的差異性,相較于其他網(wǎng)絡(luò)模型,ResNet更具備這方面的優(yōu)勢(shì)。而且利用ResNet具有快速收斂的特性,以便可以在手持移動(dòng)弱算力設(shè)備(如:智能終端)上快速識(shí)別水母的毒性程度,本文依據(jù)遷移學(xué)習(xí)的數(shù)據(jù)相關(guān)性,在ResNet預(yù)訓(xùn)練模型的基礎(chǔ)上,根據(jù)任務(wù)需要做了一定修改,本文將最后的線性層進(jìn)行了重新定義,將輸入單元數(shù)(前面各層卷積所提取到的圖像特征數(shù)目)修改為符合本文研究?jī)?nèi)容的4種輸出以對(duì)應(yīng)不同類別的水母。
考慮到本文方法在弱算力設(shè)備上的普及應(yīng)用,而通常解決大規(guī)模深度學(xué)習(xí)問題時(shí),梯度下降法計(jì)算開銷巨大,所以本文采用隨機(jī)梯度下降法,每次僅用單個(gè)數(shù)據(jù)樣本來確定梯度下降方向。因?yàn)殡S機(jī)梯度的期望就是梯度本身,所以在對(duì)網(wǎng)絡(luò)模型的優(yōu)化過程中,其實(shí)不斷優(yōu)化的是Expected loss,其可以表示為:
上式表示對(duì)所有可能的樣本x, 計(jì)算其expected loss,其中x表示數(shù)據(jù)樣本,與其對(duì)應(yīng)的分布用p(x)表示,W為模型參數(shù)。那么相應(yīng)的梯度可以表示為:
WL(W)=WEx[L(W,x)]=Ex[WL(W,x)] (3)
由于無法獲知真實(shí)的分布p(x),所以expected loss很難計(jì)算,使用蒙特卡洛(monte carlo)算法[7]做近似估計(jì)(approximation),(3)可以近似表示為:
隨著M增大,所得到的估計(jì)值就會(huì)更加準(zhǔn)確。當(dāng)M =1時(shí),即使用了單個(gè)樣本,即為SGD[8],其較適用于本文的研究?jī)?nèi)容。
本文構(gòu)建了一個(gè)有毒水母的微小圖像數(shù)據(jù)集(可以擴(kuò)充),該數(shù)據(jù)集中的圖片均為.jpg、.png等網(wǎng)絡(luò)格式圖片構(gòu)成,其中訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集按照水母毒性大小都含有Vigilant、Dangerous及Fatal三種類別的數(shù)據(jù)樣本,數(shù)據(jù)集結(jié)構(gòu)如圖3。
圖3 有毒水母數(shù)據(jù)集結(jié)構(gòu)
本文實(shí)驗(yàn)基于如下硬軟件配置環(huán)境進(jìn)行:硬件:CPU:Intel i5-8300h @2.3GHz 內(nèi)存:8G,集成顯卡,軟件:Windows10家庭中文版+python 3.6+Jupyter Notebook。為了使模型的魯棒性更強(qiáng),首先對(duì)所加載的訓(xùn)練圖像進(jìn)行數(shù)據(jù)增強(qiáng)處理:1、從單張圖像樣本中隨機(jī)裁剪一塊224×224的圖像區(qū)域。2、隨機(jī)地對(duì)圖像區(qū)域進(jìn)行水平或垂直翻轉(zhuǎn)。3、對(duì)圖像區(qū)域進(jìn)行色彩標(biāo)準(zhǔn)化處理。如圖4。
圖4 加載隨機(jī)圖像樣本示例
本文構(gòu)建了一個(gè)CNN網(wǎng)絡(luò)模型,它由提取圖像特征的兩個(gè)卷積層和一個(gè)池化層構(gòu)成主要部分,后接兩個(gè)FC層用于分類輸出。使用該網(wǎng)絡(luò)對(duì)有毒水母微小規(guī)模數(shù)據(jù)集進(jìn)行20輪迭代訓(xùn)練,結(jié)果如表1。
由表1可以看到,搭建的CNN網(wǎng)絡(luò)在當(dāng)前微小規(guī)模數(shù)據(jù)集上的表現(xiàn)并不好,經(jīng)過20輪迭代訓(xùn)練后,訓(xùn)練準(zhǔn)確率只有60%左右,而測(cè)試正確率也僅有50%上下,其損失折線下降表現(xiàn)也并不好,如圖5。接下來使用本文基于遷移學(xué)習(xí)的方法。
表1 CNN迭代訓(xùn)練結(jié)果
圖5 CNN模型迭代訓(xùn)練錯(cuò)誤率示意圖
即在VGG16預(yù)訓(xùn)練模型上利用遷移學(xué)習(xí)對(duì)有毒水母微小規(guī)模數(shù)據(jù)集進(jìn)行訓(xùn)練,并引入交叉熵作為損失函數(shù),將模型參數(shù)放入Adam優(yōu)化器[9]中進(jìn)行訓(xùn)練,一個(gè)訓(xùn)練周期(epoch)中將對(duì)訓(xùn)練數(shù)據(jù)集中的所有樣本都訓(xùn)練一遍。使用該遷移網(wǎng)絡(luò)模型對(duì)有毒水母微小數(shù)據(jù)集進(jìn)行20輪迭代訓(xùn)練的變化情況見表2。
如表2所示,利用本文方法1對(duì)有毒水母微小數(shù)據(jù)集進(jìn)行迭代訓(xùn)練,隨著訓(xùn)練持續(xù)進(jìn)行,Loss值下降到0.3之后,始終在0.1到0.2左右徘徊,在迭代到第11輪之后,Loss又在0.1上下浮動(dòng),經(jīng)過20輪訓(xùn)練后,loss值下降了6倍左右,在測(cè)試數(shù)據(jù)集可以達(dá)到80%的正確率,結(jié)合圖6觀察,圖中,深色為訓(xùn)練錯(cuò)誤率折線、淺色為驗(yàn)證錯(cuò)誤率折線??梢钥吹?,模型在測(cè)試數(shù)據(jù)中的表現(xiàn)并不理想,與訓(xùn)練數(shù)據(jù)擬合地并不盡如人意。利用本文方法1經(jīng)20輪迭代訓(xùn)練共耗時(shí)1588.029秒。
表2 本文方法1迭代訓(xùn)練情況
圖6 本文方法1訓(xùn)練錯(cuò)誤率示意圖
再來看實(shí)際測(cè)試效果,在測(cè)試集中隨機(jī)抽取6張圖片進(jìn)行測(cè)試,結(jié)果如圖7所示,判斷錯(cuò)誤的第四張圖片已經(jīng)在其下方以紅色叉號(hào)標(biāo)出,其所屬類別應(yīng)該為”Fatal”。
圖7 本文方法1樣本測(cè)試結(jié)果
即在ResNet18預(yù)訓(xùn)練模型上利用遷移學(xué)習(xí)再對(duì)有毒水母微小規(guī)模數(shù)據(jù)集進(jìn)行訓(xùn)練,同樣引入交叉熵作為損失函數(shù),將模型參數(shù)放入SGD優(yōu)化器[8]中進(jìn)行訓(xùn)練,對(duì)訓(xùn)練數(shù)據(jù)集中的所有樣本都訓(xùn)練一遍為一個(gè)訓(xùn)練周期(epoch)。使用該遷移網(wǎng)絡(luò)模型對(duì)有毒水母微小數(shù)據(jù)集進(jìn)行20輪迭代訓(xùn)練的變化情況如表3。
表3 本文方法2迭代訓(xùn)練情況
再結(jié)合圖8觀察利用本文方法2進(jìn)行訓(xùn)練的錯(cuò)誤率變化趨勢(shì),圖中深色折線為訓(xùn)練數(shù)據(jù)集、淺色折線為驗(yàn)證數(shù)據(jù)集。
依據(jù)表3和圖8所示,本文方法2的正確率與Loss相對(duì)吻合,在ResNet網(wǎng)絡(luò)模型持續(xù)消除梯度消逝的情況下,相較于方法1,本文方法2的訓(xùn)練折線與測(cè)試折線擬合度較好,但由于本文并未考慮數(shù)據(jù)集平衡的問題,且水母圖片訓(xùn)練樣本之間確實(shí)存在特征近似的情況,在訓(xùn)練集和測(cè)試集樣本均在幾十張以內(nèi)的情況下,確實(shí)很難達(dá)到理想的準(zhǔn)確率;可以看到在20輪迭代訓(xùn)練后訓(xùn)練集的準(zhǔn)確率仍高于驗(yàn)證集,測(cè)試集正確率依然具有提升的余地。由此可見,利用預(yù)訓(xùn)練ResNet模型在微小規(guī)模數(shù)據(jù)集上進(jìn)行遷移訓(xùn)練是很有效的,且本文方法2經(jīng)20輪迭代訓(xùn)練共耗時(shí)471.534秒。
圖8 本文方法2訓(xùn)練錯(cuò)誤率示意圖
隨機(jī)從測(cè)試數(shù)據(jù)集中抽取6張圖片進(jìn)行測(cè)試,結(jié)果如圖9所示:實(shí)際測(cè)試結(jié)果均為正確。
圖9 本文方法2樣本測(cè)試結(jié)果
為了比較不同方法在有毒水母微小數(shù)據(jù)集上的表現(xiàn),進(jìn)行系統(tǒng)化實(shí)驗(yàn),每種方法都進(jìn)行10次實(shí)驗(yàn),每次均迭代訓(xùn)練20次,并計(jì)算它們的平均結(jié)果,見表4。
表4 基于不同方法的數(shù)據(jù)統(tǒng)計(jì)
由表4可以說明,本文方法在針對(duì)微小規(guī)模數(shù)據(jù)集樣本的圖像識(shí)別分類任務(wù)中,測(cè)試精度均優(yōu)于直接使用卷積網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練的方法,對(duì)于本文提出的兩種方法,后者雖然測(cè)試準(zhǔn)確率略低,但訓(xùn)練時(shí)間比前者快將近3.5倍左右,對(duì)于便攜式弱算力設(shè)備來講,本文方法2最為適用。
本文針對(duì)有毒水母圖像識(shí)別分類任務(wù)提出了一套行之有效的方法,該方法解決了訓(xùn)練數(shù)據(jù)匱乏的窘境,并克服了在弱算力設(shè)備上難以訓(xùn)練較高精度網(wǎng)絡(luò)模型的問題。本文方法可以在很短時(shí)間內(nèi)快速訓(xùn)練出較高精度的毒性水母識(shí)別模型,且容易在手機(jī)、平板電腦等智能終端上普及應(yīng)用。本文方法相較于其他方法,具有在很短時(shí)間內(nèi)達(dá)到更高識(shí)別準(zhǔn)確率的優(yōu)勢(shì)。