劉曦 高士武 賀雨
摘 ? 要:為提高卷積神經(jīng)網(wǎng)絡(luò)(CNN)在小樣本數(shù)據(jù)集中的識(shí)別準(zhǔn)確率,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習(xí)的目標(biāo)分類方法,提高了卷積神經(jīng)網(wǎng)絡(luò)對(duì)小樣本混凝土裂紋的識(shí)別率。實(shí)驗(yàn)表明,該方法加快了卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度,降低了網(wǎng)絡(luò)的過擬合過程,提高了目標(biāo)分類識(shí)別準(zhǔn)確率。
關(guān)鍵詞:遷移學(xué)習(xí) ?卷積神經(jīng)網(wǎng)絡(luò) ?裂紋分類
中圖分類號(hào):G642 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A ? ? ? ? ? ? ? ? ? ? ? ?文章編號(hào):1674-098X(2019)02(a)-0024-02
隨著計(jì)算機(jī)技術(shù)的發(fā)展,基于機(jī)器視覺的橋梁檢測(cè)法受到了人們的關(guān)注,它是基于機(jī)器視覺理論,利用計(jì)算機(jī)、無人機(jī)等設(shè)備對(duì)橋梁進(jìn)行遠(yuǎn)距離、高像素、低成本的自動(dòng)檢測(cè)技術(shù)[1]。使其能夠代替人工專家,實(shí)現(xiàn)對(duì)混凝土橋梁裂紋的識(shí)別、分類、定位等工作。當(dāng)前卷積神經(jīng)網(wǎng)絡(luò)(CNN)在圖像識(shí)別方面表現(xiàn)十分出色[2],隨著深度學(xué)習(xí)技術(shù)的發(fā)展,有了把深度學(xué)習(xí)技術(shù)和橋梁結(jié)構(gòu)損傷檢測(cè)相結(jié)合的想法。但在深度學(xué)習(xí)任務(wù)中,訓(xùn)練結(jié)構(gòu)模型需要數(shù)量龐大的數(shù)據(jù)集,否則容易出現(xiàn)過擬合和陷入局部最優(yōu)解等現(xiàn)象。遷移學(xué)習(xí)的加入很好地解決了訓(xùn)練樣本不足所帶來的問題。本文應(yīng)用的是首先將從大量數(shù)據(jù)集上學(xué)習(xí)到的CNN遷移到小樣本目標(biāo)集上,作為目標(biāo)集的底層和中層特征提取器;然后替換CNN的全連接層;最后通過小樣本目標(biāo)數(shù)據(jù)集對(duì)新的全連接層進(jìn)行訓(xùn)練,得到適用于小樣本目標(biāo)集的分類識(shí)別網(wǎng)絡(luò)。
1 ?卷積神經(jīng)網(wǎng)絡(luò)遷移學(xué)習(xí)基本原理
1.1 卷積神經(jīng)網(wǎng)絡(luò)
本文使用的卷積神經(jīng)網(wǎng)絡(luò)模型主要是由輸入層、卷積層、批歸一化層、池化層、全連接層和輸出層組成[3]。卷積層的主要功能是訓(xùn)練提取目標(biāo)局部特征。池化層主要是對(duì)局部特征圖進(jìn)行降維,提升網(wǎng)絡(luò)對(duì)輸入圖像的平移旋轉(zhuǎn)等抗變形能力,本文選擇無重疊區(qū)域的最大池化(max pooling)作為采樣函數(shù),相比平均池化(average pooling),最大池化能更好地保留感知野之間的相互特性。在卷積層與池化層中添加了批歸一化層,它不僅可以加快模型的收斂速度,而且在一定程度上緩解了網(wǎng)絡(luò)中“梯度彌散”的問題,使得訓(xùn)練網(wǎng)絡(luò)模型更加簡(jiǎn)單和穩(wěn)定。經(jīng)過多組卷積層與下采樣層的運(yùn)算,CNN依靠全連接網(wǎng)絡(luò)加一個(gè)頂層激活函數(shù)對(duì)提取的特征進(jìn)行分類,頂層分類函數(shù)為softmax。
1.2 遷移學(xué)習(xí)
深度學(xué)習(xí)近年來已經(jīng)取得了巨大成功,但它在很大程度上依然依賴于大量數(shù)據(jù),特別是帶有標(biāo)記的數(shù)據(jù)[4]。在實(shí)際應(yīng)用中,帶有標(biāo)記的有用數(shù)據(jù)往往非常珍貴。為了減少深度學(xué)習(xí)對(duì)可用數(shù)據(jù)數(shù)量的巨大依賴性,遷移學(xué)習(xí)成為一種非常有效的手段。遷移學(xué)習(xí)的一般定義是:給定源域及其學(xué)習(xí)任務(wù),目標(biāo)域及其目標(biāo)任務(wù),目的是使用源域與源目標(biāo)的知識(shí)幫助改進(jìn)學(xué)習(xí)目標(biāo)任務(wù)中的預(yù)測(cè)功能。根據(jù)源域和目標(biāo)域與任務(wù)之間的不同條件,遷移學(xué)習(xí)可以分為三個(gè)子類,歸納、遷移和無監(jiān)督,本文中的檢測(cè)任務(wù)屬于歸納學(xué)習(xí),歸納學(xué)習(xí)需要在目標(biāo)中標(biāo)記一些數(shù)據(jù)。此外,根據(jù)知識(shí)遷移目標(biāo)域的要求,有四種常用方法可以應(yīng)用:(1)實(shí)例遷移學(xué)習(xí)方法;(2)特征遷移學(xué)習(xí)方法;(3)參數(shù)遷移學(xué)習(xí)方法;(4)關(guān)系遷移學(xué)習(xí)方法。
2 ?網(wǎng)絡(luò)結(jié)構(gòu)
本文使用的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)是VGG結(jié)構(gòu)的變體形式,其中使用大小為33的濾波器,最大池化層的步長(zhǎng)為2,窗口大小為22,與原型VGGNet相比,在softmax層之前將配置更改為具有256個(gè)神經(jīng)元的全連接層,使網(wǎng)絡(luò)由于訓(xùn)練數(shù)據(jù)不足而更好地與遷移學(xué)習(xí)兼容。模型輸入的參數(shù)數(shù)量,濾波器大小和全連接層中的神經(jīng)元數(shù)量有關(guān)。首先通過大樣本數(shù)據(jù)集對(duì)卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)參數(shù)進(jìn)行預(yù)訓(xùn)練;其次,用兩個(gè)自適應(yīng)全連接層代替卷積神經(jīng)網(wǎng)絡(luò)中全連接層,實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的遷移學(xué)習(xí);最后通過小樣本數(shù)據(jù)集對(duì)新的全連接層網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)進(jìn)行訓(xùn)練,得到新的分類識(shí)別模型。新適應(yīng)層的維度基于圖像中特征的復(fù)雜性,取決于網(wǎng)絡(luò)經(jīng)驗(yàn)和交叉驗(yàn)證。在設(shè)計(jì)中,使用兩個(gè)自適應(yīng)全連接層,其中第一個(gè)具有256個(gè)神經(jīng)元,第二個(gè)是Softmax層,其中神經(jīng)元的數(shù)量等于任務(wù)類的數(shù)量。
3 ?網(wǎng)絡(luò)訓(xùn)練
實(shí)驗(yàn)環(huán)境為python3.5.2,基于keras2.1.5,計(jì)算機(jī)配置為:intel core i5 7500 CPU、主頻3.4GHz,GPU:NVIDIA GTX 1050TI,內(nèi)存為8GB。原始圖像總數(shù)為1000張高清照片(3,344×2,224分辨率)。這些圖像來自大型鋼筋混凝土梁強(qiáng)度檢測(cè)試驗(yàn)。使用索尼NEX-5C數(shù)碼單反相機(jī)采集。其中800個(gè)圖像用于訓(xùn)練和驗(yàn)證,200個(gè)圖像用于測(cè)試。將原始圖像裁剪成224×224像素分辨率的較小圖像,以構(gòu)建用于訓(xùn)練和驗(yàn)證的數(shù)據(jù)集。在訓(xùn)練之前,首先將每個(gè)圖像標(biāo)注為有損傷和無損傷的標(biāo)簽。在測(cè)試步驟中使用滑動(dòng)窗口技術(shù),用來檢測(cè)位于圖像空間中任何位置的裂縫。同時(shí)在此訓(xùn)練模式中應(yīng)用數(shù)據(jù)增強(qiáng)技巧,減少過度擬合問題。使用實(shí)驗(yàn)采集數(shù)據(jù)進(jìn)行歸一化處理,搭建卷積神經(jīng)網(wǎng)絡(luò)。編譯函數(shù)選用RMSprop,層間激活函數(shù)選用ReLU,分類函數(shù)選用softmax。把訓(xùn)練集輸入搭建好的CNN中,將數(shù)據(jù)通過預(yù)訓(xùn)練模型得到的特征向量保存下來,接著以這些特征向量為原始數(shù)據(jù)訓(xùn)練我們新的全連接層網(wǎng)絡(luò),經(jīng)過100次充分迭代后,損失值不再下降,則認(rèn)為網(wǎng)絡(luò)訓(xùn)練完成。
4 ?實(shí)驗(yàn)結(jié)論
從圖2可以看到,對(duì)裂紋圖像進(jìn)行分類時(shí),零基礎(chǔ)學(xué)習(xí)的分類正確率初始值為17.4%,同時(shí)期的遷移學(xué)習(xí)初始值為61.8%。經(jīng)過約20次epochs迭代訓(xùn)練后遷移學(xué)習(xí)模式下網(wǎng)絡(luò)分類正確率達(dá)到峰值97.39%,經(jīng)過約60次epochs迭代訓(xùn)練后兩者均達(dá)到最高值。相比較而言,遷移學(xué)習(xí)的loss值下降得也更快,說明模型的學(xué)習(xí)速度更快。通過對(duì)比可以看到,遷移學(xué)習(xí)的迭代曲線相比零基礎(chǔ)學(xué)習(xí)更加平滑,說明遷移學(xué)習(xí)模式下,每一次迭代過程更加趨向于全局最優(yōu)解,避免了陷入局部最優(yōu)的問題發(fā)生,并且明顯加快了網(wǎng)絡(luò)參數(shù)的訓(xùn)練速度。在未來的研究中,有三種方法可以改善模型的性能:(1)增加訓(xùn)練數(shù)據(jù);(2)改進(jìn)更好的架構(gòu);(3)使用相同的架構(gòu),微調(diào)一些部分網(wǎng)絡(luò)結(jié)構(gòu)。
參考文獻(xiàn)
[1] 龐娜,趙啟林,芮挺,等.基于機(jī)器視覺的橋梁檢測(cè)技術(shù)現(xiàn)狀及發(fā)展[J].現(xiàn)代交通技術(shù),2015(6): 25-31.
[2] 劉洪公,王學(xué)軍,李冰瑩,等.基于卷積神經(jīng)網(wǎng)絡(luò)的橋梁裂縫檢測(cè)與識(shí)別[J].河北科技大學(xué)學(xué)報(bào),2016(5):485-490.
[3] 李雪松,林逸洲,馬宏偉,等.基于卷積神經(jīng)網(wǎng)絡(luò)的橋梁損傷識(shí)別方法應(yīng)用研究[J].青海大學(xué)學(xué)報(bào),2018(2):1-46.
[4] 李松,魏中浩,張冰塵,等.深度卷積神經(jīng)網(wǎng)絡(luò)在遷移學(xué)習(xí)模式下的SAR目標(biāo)識(shí)別李松[J].中國(guó)科學(xué)院大學(xué)學(xué)報(bào),2018(1):75-83.