国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于深度學習的常見市場漁獲檢測分類算法研究

2022-12-28 11:20李克祥王國慶鄭國華潘海華周昌智
中國新技術新產(chǎn)品 2022年19期
關鍵詞:殘差次數(shù)準確率

李克祥 王國慶 鄭國華 潘海華 周昌智

(浙江索思科技有限公司,浙江 溫州 325000)

1 關鍵技術

1.1 遷移學習

傳統(tǒng)機器學習方法往往是針對特定任務創(chuàng)建數(shù)據(jù)訓練模型的,這也導致模型之間互相孤立、毫無聯(lián)系,訓練習得的內(nèi)容并沒有延續(xù)下去。遷移學習是將在一個場景中獲得的知識經(jīng)驗應用到新的場景中,以達到輔助學習的目的,遷移學習使模型之間可以傳遞學習內(nèi)容,避免花費大量時間和資源重新標記數(shù)據(jù)、訓練模型[1]。遷移學習利用其他模型已經(jīng)學習的知識來提高新模型的性能,節(jié)約模型訓練的計算資源,當數(shù)據(jù)稀缺或獲取成本高昂時,能夠利用更少的數(shù)據(jù)獲得穩(wěn)定的模型,提高模型泛化能力和模型訓練效率。

1.2 預訓練網(wǎng)絡模型

預訓練模型(pre-trained model)一般是在規(guī)模足夠大的數(shù)據(jù)集下進行訓練而產(chǎn)生的,具備很多的參數(shù)量以及復雜的網(wǎng)絡結構,是為解決類似問題而創(chuàng)造的。對當前大部分的圖像識別處理預訓練模型來說,訓練的原始數(shù)據(jù)集一般可以通用,預訓練網(wǎng)絡學到的特征空間層次結構和權重不需要過多修改就可以應用到特定的新問題上,也就是所謂的微調(fine tune),是“遷移學習”的一種方式。預訓練模型使深度學習對處理小數(shù)據(jù)問題更有效,這也是深度學習的一個優(yōu)勢[2]。

1.3 ResNet網(wǎng)絡模型

深度學習隨著網(wǎng)絡層數(shù)的加深,理論上模型的表達能力會逐漸提高,但是卷積神經(jīng)網(wǎng)絡CNN到達一定的深度后,分類性能不再提高,反而導致網(wǎng)絡收斂變緩,準確率隨之下降,即使增大數(shù)據(jù)集解決過擬合問題,也不會有所改善。ResNet網(wǎng)絡的提出解決了這個問題,其引入殘差網(wǎng)絡的設計,采用shortcut的方式跳過輸入數(shù)據(jù)的卷積層操作,直接把輸入x加到輸出中,克服了網(wǎng)絡深度加深對模型訓練梯度下降的不良影響。

殘差模塊的結構設計如圖1所示。F(X)為X經(jīng)過權重層輸出的結果,即指的是殘差,而右側曲線Xidentity表示X本身跳過了權重層直接與F(X)進行疊加,relu表示網(wǎng)絡激活函數(shù)。使用這種快捷徑的結構能夠在進行反向傳播的同時保證無衰減地傳遞信號,因此即使增加網(wǎng)絡層數(shù),學習效率也很高。

圖1 ResNet殘差模塊結構圖

ResNet網(wǎng)絡模型中最常用的是ResNet50,網(wǎng)絡結構如圖2所示,包括49個卷積層和1個全連接層。其中,第一階段不包括殘差塊,CONV表示對輸入進行卷積操作,Batch Norm表示正則化處理,ReLU表示激活函數(shù),MAXPOOL表示進行最大池化計算。第二階段~第五階段包括殘差塊結構,圖塊CONV-BLOCK不會改變殘差塊的尺寸,只用于添加殘差塊的維度,而圖塊IDBLOCK則不改變殘差塊的維度。在ResNet50網(wǎng)絡結構中,殘差塊都有3層卷積,那網(wǎng)絡總共有1+3×(3+4+6+3)=49個卷積層,加上最后的全連接層,總共是50層,這也是ResNet50名稱的由來[3]。通過使用16個殘差塊的堆疊構建了深度達到50層的卷積神經(jīng)網(wǎng)絡,再經(jīng)過AvgPOOL平均池化層輸出特征向量、Flatten平面化圖層降維處理,最后由全連接層FC對這個特征向量進行計算并輸出類別概率。

圖2 ResNet50網(wǎng)絡模型圖

2 試驗設計

2.1 數(shù)據(jù)集構建

現(xiàn)有公開的數(shù)據(jù)集資源很匱乏,特定領域的數(shù)據(jù)集資源更稀缺。網(wǎng)上收集的現(xiàn)成魚類數(shù)據(jù)集數(shù)量和豐富性難以滿足模型訓練的需要,通過人工拍照、網(wǎng)絡爬蟲方式獲取相關圖片,爬蟲通過Python腳本實現(xiàn),用關鍵詞搜索的方式在電商平臺、百度圖片爬取對應的圖片。試驗發(fā)現(xiàn),爬取圖片會出現(xiàn)圖名不對應的情況,需要改變方式,從百科中更有針對性地獲取數(shù)據(jù),經(jīng)過人工審查、篩選和判斷歸集圖片,并采用尺度變換和內(nèi)容變換的方式對數(shù)據(jù)集進行增強處理。

采用Python腳本實現(xiàn)圖像批處理功能,對存在尺度不一、格式不定等問題的魚類圖像進行統(tǒng)一數(shù)據(jù)處理,完成對917個樣本進行圖像采集和歸納的任務,并對每張圖片進行編號排目,歸置到對應的30種類別文件目錄中,用于下一步的模型訓練。

2.2 模型訓練參數(shù)調整

2.2.1 學習率

學習率是模型訓練時可控、可調整的超參數(shù)之一,其作用是控制梯度下降的迭代步長。如果學習率過大,就會造成損失梯度下降速度較快的問題,模型loss無法收斂;反之,學習率過小會導致模型收斂速度變慢,甚至會陷入局部最優(yōu)的情況。最理想的結果是權衡兩者變化,損失梯度收斂較快又能下降到比較小的位置。在ResNet網(wǎng)絡的遷移學習中,通過凍結底層學習率調整新的全連接層學習率,經(jīng)過多次試驗選擇最優(yōu)學習率。默認的學習率設置都比較小,推薦參數(shù)一般為0.000 1,在該范圍擴大或縮小數(shù)量級進行測試,以選擇最優(yōu)值。

2.2.2 批尺寸

批尺寸是指單次訓練所選取樣本的數(shù)量,其大小影響模型的優(yōu)化程度和速度。在合理范圍內(nèi)增大批尺寸能提高內(nèi)存利用率,減少單次訓練中批數(shù)據(jù)的迭代次數(shù),梯度確定的下降方向就越準,但是盲目增大批尺寸會導致單次訓練時間增加,參數(shù)的修正變得緩慢,超過某個臨界點還會導致模型泛化能力下降,而在該臨界點之下,模型性能隨批尺寸變化而變化的程度通常沒有學習率明顯??紤]該試驗為CPU環(huán)境,設置批尺寸小于64為宜。

2.2.3 迭代次數(shù)

將所有樣本數(shù)據(jù)送入網(wǎng)絡完成1次前向計算以及反向傳播的過程稱為一個迭代,在實際模型訓練時,所有數(shù)據(jù)迭代訓練1次是不夠的,往往需要經(jīng)過多次反復的迭代才能擬合收斂。神經(jīng)網(wǎng)絡模型的權重結構會隨著迭代次數(shù)的增加而逐步更新,loss曲線從不擬合狀態(tài)逐漸進入優(yōu)化擬合狀態(tài),如果迭代次數(shù)繼續(xù)增加,那么最終模型將進入過擬合狀態(tài)。但迭代次數(shù)的選擇沒有一個確切的答案,不同的數(shù)據(jù)樣本有不同的迭代次數(shù),一般數(shù)據(jù)集的多樣化程度越高,迭代次數(shù)也應該越多,合適的迭代次數(shù)能使模型訓練達到更好的效果。綜合考慮樣本集數(shù)量(1 917個)以及樣本種類(30種),迭代10次就可以大致收斂。

2.3 網(wǎng)絡構建

基于神經(jīng)網(wǎng)絡框架平臺PyTorch搭建ResNet網(wǎng)絡模型,根據(jù)ResNet中的殘差學習模塊的不同分別構建BasicBlock(nn.Module)類和Bottleneck(nn.Module)類,逐層實現(xiàn)ResNet34、ResNet50以及ResNet101網(wǎng)絡結構,例如ResNet50網(wǎng)絡根據(jù)圖2的結構模型逐層搭建,并通過宏定義的方式進行網(wǎng)絡模型封裝,以方便模型訓練時對該自定義模塊進行調用。

3 試驗過程

3.1 試驗環(huán)境

該試驗使用基于Python語言的深度學習神經(jīng)網(wǎng)絡框架平臺PyTorch,硬件環(huán)境為Intel(R) Core(TM) i5-4210M CPU @ 2.60GHz,Windows 1 064位家庭版21H2,編譯軟件為PyCharm2020社區(qū)版,基礎配置Anaconda 3,創(chuàng)建Python3.7版本虛擬環(huán)境,并在該解釋器下安裝了Open CV、TensorBoardX等依賴庫,以滿足試驗的需要。

3.2 數(shù)據(jù)集處理及訓練參數(shù)

對基礎數(shù)據(jù)集進行拆分,按照9∶1的比例分為訓練集和驗證集,級目錄結構保持與基礎數(shù)據(jù)集一致,以方便后續(xù)模型的訓練。其中,訓練集1 739張,驗證集178張,并且采取相同的預處理操作,保證驗證和測試結果的準確性。

神經(jīng)網(wǎng)絡中超參數(shù)的取值對模型的性能有很大的影響,試驗中分類識別模型訓練所使用的優(yōu)化器是Adam,綜合考慮硬件訓練環(huán)境資源,設定學習率為固定的值0.000 1,批尺寸的數(shù)值設定為16,即每次批量讀取16張圖片,以交叉熵誤差函數(shù)(Cross Entropy Loss)作為損失函數(shù),在不占用太大計算資源的情況下,使模型可以快速收斂。

3.3 模型訓練

采用遷移學習機制,試驗前下載3個預訓練模型(ResNet34、ResNet50以及ResNet101),并分別構建ResNet34、ResNet50以及ResNet101網(wǎng)絡模型,以相同的市場漁獲數(shù)據(jù)集進行訓練,訓練周期設置為10,即1次試驗迭代10輪,通過TensorBoardX繪制訓練損失loss曲線以及驗證的準確率與loss曲線,觀察模型收斂情況,展示網(wǎng)絡模型在訓練集和驗證集上的識別效果。

ResNet中的殘差學習模塊有2種形式:1) Basicblock。用于層數(shù)較少的模型。2) Bottleneck。目的是減少參數(shù)量和計算量。ResNet50網(wǎng)絡就是模型分界,層數(shù)小于50的使用Basicblock,其余的網(wǎng)絡模型使用Bottleneck[4]。而ResNet50與ResNet101相比,唯一的不同在于網(wǎng)絡conv4_x,ResNet50有6個殘差模塊(block),而ResNet101有23個block[5]。

訓練loss曲線如圖3所示。由圖3可知,ResNet34網(wǎng)絡較為簡單,收斂速度快,在第三輪訓練時基本就趨于穩(wěn)定了,而另外2個網(wǎng)絡模型則在第四輪之后才達到相近的loss值。從訓練時間來看,3個ResNet網(wǎng)絡模型訓練時長分別為2.2 h、3.5 h和5.7 h,由此可知,網(wǎng)絡結構和卷積網(wǎng)絡層數(shù)的增加對模型訓練花費的時間有較大的影響。

圖3 訓練損失loss曲線

驗證loss曲線以及準確率如圖4所示。首先,對照準確率acc曲線,在訓練10輪后,3個模型的準確率acc均達到0.9以上,ResNet34訓練過程中曲線波動較大,而另外2個模型訓練過程較平穩(wěn)。其次,對照驗證loss曲線,三者曲線loss值均降至0.4以下,對比之下,ResNet34的loss已趨于穩(wěn)定,而另外2個模型的loss值仍有下降的趨勢,ResNet101網(wǎng)絡表現(xiàn)得更明顯。

圖4 驗證loss曲線以及準確率

對模型訓練的學習率lr進行微調,將其設置為0.000 05和0.000 30,并沒有推薦參數(shù)0.000 10的效果好。另外,調整迭代次數(shù)批處理數(shù)量的大小對計算機的資源占用率影響較大,對模型的訓練效果影響較小,這些現(xiàn)象也符合試驗前的分析。

4 結語

該試驗以市場常見的30種漁獲物為對象,橫向對比ResNet網(wǎng)絡模型的訓練效果,綜合上述數(shù)據(jù)表現(xiàn),整體準確率和loss收斂差別不大,都達到了較好的效果,在一般的使用場景下,ResNet50網(wǎng)絡模型可以符合使用需求。下一步打算豐富當前的漁獲數(shù)據(jù)集,增加模型訓練的迭代次數(shù),并將算法模型投入實際生產(chǎn)環(huán)境使用,以驗證模型的精度與穩(wěn)定性。

猜你喜歡
殘差次數(shù)準確率
基于雙向GRU與殘差擬合的車輛跟馳建模
機場航站樓年雷擊次數(shù)計算
2020年,我國汽車召回次數(shù)同比減少10.8%,召回數(shù)量同比增長3.9%
不同序列磁共振成像診斷脊柱損傷的臨床準確率比較探討
一類無界算子的二次數(shù)值域和譜
基于殘差學習的自適應無人機目標跟蹤算法
基于遞歸殘差網(wǎng)絡的圖像超分辨率重建
高速公路車牌識別標識站準確率驗證法
平穩(wěn)自相關過程的殘差累積和控制圖