劉之瑜,張淑芬,李鉑初,羅長銀,董燕靈
(1. 華北理工大學 理學院,河北 唐山 063210;2. 河北省數據科學與應用重點實驗室,河北 唐山 063210; 3. 唐山市數據科學重點實驗室,河北 唐山 063210)
改革開放以來我國蔬菜種植面積和單位面積(畝)產量逐年提高,蔬菜種類逐漸豐富,人們對新鮮蔬菜的需求越來越大,蔬菜種植行業不斷發展,設施蔬菜等更具技術性的新形式種植方法推廣以后,反季節蔬菜種植面積不斷提高,如蔬菜大棚等簡單設施蔬菜種植面積顯著增加,大大豐富了反季節蔬菜種類。設施蔬菜種植面積在2000年后迅速增長,截至2013年,設施蔬菜種植面積和總產量分別達到了370萬公頃和2.5億噸,在全國蔬菜種植總面積和蔬菜總產量的占比分別達到了18%和34%[1]。
我國設施蔬菜種植設施包括大中型塑料棚、日光溫室以及防雨遮陽棚等,與露天種植蔬菜相比,設施蔬菜產業的技術設備水平高、集約化程度高、科技含量高、產量高、經濟效益高[2]。但設施蔬菜的管理是一個問題,設施蔬菜尤其是反季節蔬菜對蔬菜的生長環境的要求很高,空氣與土壤的溫度和濕度、光照強度、二氧化碳濃度、土壤酸堿度等環境條件很大程度影響著蔬菜生長,需要通過物聯網實時監控設施內各種環境情況,以便對設施內環境進行調控[3]。物聯網(The Internet of Things,簡稱IOT)是指將信息傳感設備通過互聯網聯結起來的巨大網絡,實現不限時間地點的人機物互聯互動[4]。除了可以通過物聯網對空氣與土壤的溫度和濕度、光照強度、二氧化碳濃度、土壤酸堿度等設施內部環境情況進行實時監控外,還通過布置高精度圖像采集設備對蔬菜作物的生長狀況進行圖像采集和實時分析,以便務農人員及時發現蔬菜作物是否受到病蟲害侵害。而完成蔬菜作物的病蟲害圖像取樣之后,需要使用卷積神經網絡來對圖像進行處理和識別,對蔬菜作物的病蟲害的種類進行分類并反饋給務農人員,給予提醒和處理建議,結合物聯網獲取的設施蔬菜環境情況幫助務農人員更好地管理設施蔬菜,發現病蟲害并及時治理,及時調節設施內環境,為蔬菜作物的生長提供合適的生長環境,提高蔬菜產量。
該項研究對遷移學習在卷積神經網絡的圖像識別任務中的應用進行了研究,遷移學習經常被用在卷積神經網絡的訓練過程中,減少目標模型的訓練對數據集的依賴,加快網絡模型的訓練速度。大多采用微調的遷移學習方法,將預訓練好的網絡模型的參數遷移到目標網絡模型中,凍結前面卷積層參數只對全連接層參數進行訓練,一般遷移學習的預訓練網絡和目標網絡是同一種網絡模型。該研究提出了不同網絡模型之間的遷移學習方法,將預訓練好的AlexNet網絡模型的第1層卷積層的參數經過區域插值方法計算處理后變為VGG16網絡模型的第1層卷積層的參數,再對VGG16網絡進行訓練,實驗結果證明有助于提高網絡模型精度。
卷積神經網絡是經過封裝好的神經網絡模型,由多層網絡和激活函數以及神經網絡分類層組成,具有非線性特征表述能力能擬合多類型的特征,這種能力是它被用在處理圖像大數據從中獲取內在邏輯信息的原因[5]。卷積神經網絡的訓練離不開大規模的數據,網絡模型的參數規模和所需訓練數據量的大小呈正相關,網絡模型的較低層網絡可以學習并表達圖像的低維特征,較高層的網絡將低維特征處理為抽象特征,再經過分類層對圖像進行分類,數據的規模需要達到網絡模型對特征的表達能夠表現出圖像的內在邏輯信息。
數據依賴是深度學習中最嚴峻的問題之一,但在一些特殊領域訓練數據不足的情況不可避免,數據收集復雜昂貴甚至是不現實的,構建大規模、高質量的帶標注數據集非常困難[6]。面對訓練數據不足的問題可考慮遷移學習方法,遷移學習通過將源域中部分樣本以一定權重比例填充到目標域中達到補足訓練數據集的目的[7]。遷移學習的過程如圖1所示。

圖1 遷移學習流程圖
根據權重化樣本、映射數據空間、網絡重用和對抗思想4種技術的使用,遷移學習在深度學習中的應用可以劃分為4大類:基于樣本的遷移學習、基于映射的遷移學習、基于網絡的遷移學習和基于對抗的遷移學習[6]。
基于樣本的遷移學習是從源域中選取部分與目標域樣本相似的樣本填充到目標域,通過給相似樣本賦予特定的權重調整策略為樣本分配適當的權重,以此作為樣本的選擇標準。Li等[8]提出Festra方法來處理區域砂巖顯微圖像分類問題,首先選出砂巖區域間差異較大的特征,然后使用增強的TrAdaBoost方法進行樣本的傳輸,通過實驗證明了Festra的有效性。Xu等[9]提出度量遷移學習框架對度量結構進行編碼,在并行框架中學習實力權重和距離,使源域的樣本遷移更有效。樣本遷移示例如圖2所示,源域中與目標域樣本不相似的三角形樣本被排除在遷移之外,源域中與目標域樣本類似的淺色星號樣本以適當權重包括在目標域數據集中。

圖2 源域目標域樣本遷移示意圖
基于映射的遷移學習,將源域目標域通過映射方法重組為一個新的目標域,新的目標域中樣本特征相似度高可用于訓練新的網絡模型。Long M等[10]提出了一種稱為WGAN的新算法,提高模型訓練的穩定性,并提供有意義的學習曲線,可用于調試和超參數搜索。Arjovsky M等[11]通過聯合適應網絡學習可遷移特征,最大化較大均值差異來擴大特征分布的可區分性,經過實驗證明該方法可行。樣本映射到新樣本空間的過程如圖3所示,源域目標域樣本分別映射到新目標域。將新樣本空間中的所有樣本視為網絡模型的訓練集。

圖3 源域目標域樣本映射過程示意圖
基于網絡的遷移學習,指的是將在源域預訓練好的網絡模型的部分網絡或參數遷移到目標網絡上,再由目標域對目標網絡進行訓練。一般進行網絡遷移是在同一種網絡上面進行遷移,如在VGG16網絡模型上進行網絡遷移,將由源域預訓練完成的VGG16網絡模型的部分網絡層遷移到目標網絡模型,凍結該遷移部分的網絡,再由目標域訓練進行微調。如圖4所示。Hang Chan等[12]提出了一種用于少樣本的無監督參數遷移學習方法,以增強卷積核的多尺度學習能力增強特征的尺度特異性,通過在醫學圖像上的實驗驗證了方法有效性。Daniel George等[13]將網絡遷移學習方法用于處理Gravity Spy數據集,并得到了98.8%的最高準確率。Yosinski Jason等[14]指出了關于網絡結構和可遷移性之間的關系,某些模塊不會影響準確性,但會影響可遷移性,指出哪些特征可以遷移,哪些類型的網絡更適合遷移,得出結論:LeNet、AlexNet、VGG、Inception、ResNet在基于網絡的遷移學習中效果很好。

圖4 CNN網絡層參數遷移流程圖
基于對抗的遷移學習,應用GAN[15]的對抗思想,通過特征提取器提取相似特征由判別器判別特征屬于源域還是目標域,在判別器無法判別特征分類時說明找到了可遷移特征即可生成新的目標域。Tzeng Eric等[16]提出了對抗判別域自適應(ADDA)方法,通過一種新的GAN損失函數將判別模型與新的域自適應方法相結合,通過實驗證明了方法的有效性。Long等[17]提出隨機多線性對抗網絡(RMAN),通過隨機梯度下降和反向傳播計算梯度來進行學習,實驗證明方法可行。Luo等[18]提出了可實現在不同領域和任務之間遷移的框架,通過域對抗性損失來處理跨域遷移,使用基于度量學習的方法將遷移泛化到新任務,對目標域中有標記的源數據和未標記或稀疏標記的數據進行了優化以在深度遷移學習中找到更易處理的特征。應用對抗層的遷移學習流程如圖5所示。

圖5 對抗遷移技術流程圖
卷積神經網絡的設計模仿了人視覺皮層組織的神經元連接模式,人類視覺系統習慣于在初始階段采用全局信息來定位目標區域,然后利用詳細信息識別目標區域中的物體。這種視覺習慣有利于提高計算機視覺系統的識別性能。所以感受野更大的卷積核對于識別圖像特征更有優勢。AlexNet網絡模型第1層卷積核大小為11×11,VGG16網絡模型中所有卷積核的大小均為3×3,二者相比AlexNet網絡第1層卷積核感受野比VGG16網絡的第1層卷積核感受野更大,獲取圖像的特征信息更具全局性和代表性。
但11×11大小的卷積核有121個參數,是3×3大小的卷積核參數的13倍多,若直接把AlexNet網絡的第1層網絡直接遷移到VGG16網絡上,會造成參數量增加,占用計算資源,使網絡的訓練速度變慢,網絡的每一層都是緊密連接的,不同的網絡之間不能自由遷移網絡層,網絡層不匹配會導致網絡模型訓練出錯。
為了解決不同網絡之間不能自由遷移網絡層的情況。該項研究提出了不同網絡之間參數遷移的學習方法,通過區域插值計算方法將11×11大小的卷積核的參數變換為3×3大小,在計算時盡可能的保存11×11卷積核所學習到的圖像特征的參數位置信息和結構,再將計算得到的3×3大小的參數遷移到VGG16網絡的第1層卷積核中,使11×11大小的卷積核所學習到的圖像特征能很大程度上幫助VGG16網絡的訓練。11×11大小的卷積核要變為3×3大小,需要進行區域劃分,按九宮格的方式對11×11的卷積核進行劃分,由于11不是3的整倍數,所以劃分的時候第4和第8行與第4和第8列會被切分,這造成計算困難,該研究在對11×11卷積核進行劃分的時候,先將11×11卷積核中的每一個元素劃分為3×3的,每個值為該元素值的1/9,11×11卷積核變為33×33大小,再按九宮格的方式進行劃分,簡化了計算。
卷積神經網絡在應用遷移學習加速網絡訓練圖像的時候,需要一個預訓練完成的精度較高的網絡模型。該項目以處理植物病害圖像為研究對象,使用ImageNet大型公開數據集預訓練AlexNet網絡,訓練完成后AlexNet網絡的分類準確率最高達到了92.88%,然后將AlexNet網絡的第1層卷積層的參數提取出來,經過計算處理后將11×11大小的卷積核的參數變換為3×3大小的,將3×3的參數遷移到VGG16網絡進行全卷積層的再訓練。參數矩陣大小的計算和變換過程如圖6所示。

圖6 不同大小卷積核轉換
算法描述如下:
輸入:AlexNet網絡的第1層11×11大小的卷積核的參數;
輸出:VGG16 網絡的第1層3×3大小的卷積核的參數;
(1) 將輸入的11×11大小的卷積核參數提取出來;
(2) 以數組的方式讀取卷積核參數矩陣;
(3) 建立一個33×33的二維數組;
(4) 將11×11矩陣中的每個參數塊劃分為3×3矩陣;
(5) 每個參數塊劃分的3×3矩陣的9個參數值為對應的11×11矩陣中的每個參數值乘以1/9;
(7) 將33×33的矩陣按九宮格劃分為9個塊,一一對應輸出的3×3矩陣的9個參數;
(8) 創建輸出的3×3矩陣數組 [[0, 0, 0], [0, 0, 0], [0, 0, 0]];
(9) 將9個塊內的11×11個參數值相加,對應填充進輸出的3×3矩陣的9個參數;
(10) 得到3×3參數矩陣,即為VGG16 網絡的第一層卷積核參數;
(11) 將3×3參數矩陣導入VGG16 網絡的第1層卷積核參數進行訓練.
選取了PlantVillage數據集中蘋果、玉米和葡萄的12種病害圖像,使用Pytorch框架搭建AlexNet和VGG16網絡模型進行訓練。
操作系統:win10 64位;CPU:i7-10875H@2.30 GHz 八核;內存:16GB 海力士DDR4 3200 MHz;顯卡:GeForce RTX 2060(6GB);Python版本:3.8.5;Pytorch版本:1.6.0。
數據集選取了PlantVillage中的3個植物品種12種病害圖像,分別為蘋果痂病(apple scab)、蘋果黑腐病(black rot)、蘋果松柏蘋果銹病(Cedar apple rust)、健康蘋果葉片、玉米灰斑病(cercospora leaf spot gray leaf spot)、玉米銹病(common rust)、健康玉米葉片、玉米葉枯病(northern leaf blight)、葡萄黑腐病(black rot)、葡萄黑麻疹病(black measles)、健康葡萄有葉片、葡萄葉枯病(leaf blight)。數據集共有11 085張圖片,蘋果病害圖片3 171張,玉米病害圖片3 852張,葡萄病害圖片4 062張。將11 085張圖片劃分為訓練集和測試集,訓練集由7 760張圖片組成占比70%,測試集由3 325張圖片組成占比30%。12種病害圖像樣本如圖7所示。

圖7 12種植物病害圖像示例
網絡模型的訓練和測試均在Pytorch 1.6.0框架下實現,Pytorch是由Facebook開發的基于Python的機器學習庫,支持動態神經網絡,支持GPU加速的張量計算,框架簡潔而快速高效。采用Python語言來構建和訓練網絡,采用AlexNet網絡進行預訓練,AlexNet網絡第1層卷積核尺寸為 ,接池化層,第2層卷積核尺寸為 ,接池化層,第3、4、5層卷積核尺寸為 ,接池化層,依次輸出的特征圖個數為64、192、384、256、256,大小依次縮減為27×27、13×13、13×13、13×13、6×6,AlexNet網絡卷積層分布結構和核大小如圖8所示。經預訓練AlexNet網絡分類精度達到92.88%。統計數據如表1所示。

圖8 AlexNet網絡結構

表1 AlexNet每層的特征圖數量
將AlexNet第1層卷積核參數處理后轉換為VGG16的第1層卷積核參數,再通過數據集對VGG16模型進行再訓練,VGG16網絡輸入圖片尺寸強制縮放為 三通道,有13層卷積層,分為5個塊和3層全連接層,在全連接層后有softmax層,每個卷積層的卷積核尺寸統一為3×3,在每個分塊后跟最大池化層,特征圖矩陣的尺寸在每次池化后減半,輸出特征圖個數依次為64、128、256、512、512,大小依次縮減為224×224、112×112、56×56、28×28、14×14。統計數據如表2所示。

表2 VGG16的特征圖數據
使用的VGG16和AlexNet2個網絡的預訓練參數均為通過ImageNet數據集訓練得到。對AlexNet網絡采用隨機初始化參數和預訓練參數2種情況進行了實驗,實驗表明采用預訓練參數的情況下AlexNet網絡訓練效果更好,loss值更低準確率更高,loss值對比如圖9所示,準確率對比如圖10所示(●線為采用預訓練參數結果,■線為采用隨機參數結果)。AlexNet網絡采用隨機初始化參數和預訓練參數loss值,取后5次平均值分別為0.226 4與0.180 1,準確率分別為88.31%和91.8%,分類準確率提高了3.49%。說明遷移學習在AlexNet網絡中有效。數據統計如表3所示。

圖9 AlexNet遷移學習前后loss值對比 圖10 AlexNet遷移學習前后準確率對比

表3 AlexNet遷移學習前后訓練結果
對VGG16網絡采用隨機初始化參數和預訓練參數2種情況進行了實驗,實驗表明采用預訓練參數的情況下VGG16網絡訓練效果更好,loss值更低準確率更高,遷移學習前后loss值統計繪圖如圖11所示,準確率統計繪圖如圖12所示(●線為采用預訓練參數結果,■線為采用隨機參數結果)。VGG16網絡采用隨機初始化參數和預訓練參數loss值,取后5次平均值分別為0.166 9與0.127 6,準確率分別為89.49%和95.83%,分類準確率提高了6.34%。說明遷移學習在VGG16網絡中有效。數據統計如表4所示。

圖11 VGG16遷移學習前后loss值對比 圖12 VGG16遷移學習前后準確率對比

表4 VGG16遷移學習前后訓練結果
同時比較VGG16和AlexNet網絡的loss值和準確率,不難發現,網絡層數越深訓練得到的結果越平穩準確率越高。經過大型數據集訓練得到的預訓練參數可以很大程度上幫助目標模型進行再訓練,提高模型訓練速度增加模型分類準確率,并解決數據集不足帶來的網絡模型難以訓練的問題。
對VGG16網絡采用隨機初始化參數和采用AlexNet第1層參數轉換為VGG16網絡第1層參數2種情況進行了實驗,實驗表明采用第1層參數遷移的情況下VGG16網絡訓練效果更好,loss值更低準確率更高,loss值統計繪圖如圖13所示,準確率統計繪圖如圖14所示(●線為采用預訓練參數結果,■線為采用隨機參數結果)。VGG16網絡采用隨機初始化參數和第1層參數遷移loss值,取后5次平均值分別為0.166 9與0.098 4,準確率分別為89.49%和94.47%,分類準確率提高了4. 98%。說明第1層參數遷移在VGG16網絡中有效。

圖13 VGG16第1層參數遷移學習前后loss值對比 圖14 VGG16第1層參數遷移學習前后準確率對比
經過實驗發現,不同網絡模型之間的參數遷移可以實現,并能起到遷移學習幫助目標模型訓練的效果,如將AlexNet第1層11×11卷積核的參數通過區域插值計算轉換為VGG16網絡第1層3×3卷積核的參數,VGG16網絡可以訓練并更新參數,說明參數遷移成功,實驗結果顯示比采用隨機初始化的VGG16網絡更加穩定、分類準確率更高,提高了4.98%,說明不同網絡模型之間遷移參數有效。對比采用預訓練參數的VGG16網絡,準確率略低,因為采用的預訓練參數為全部網絡的參數,但loss值更低,網絡更穩定。說明在一定程度上保留了AlexNet第1層11×11卷積核通過更大的感受野學習到圖像特征。詳細loss值和準確率統計數據如表5所示。

表5 VGG16網絡訓練結果數據統計
設施蔬菜的管理離不開圖像采集設備對蔬菜病害情況進行實時監控,及時發現病害的出現以便進行及時治療,而對圖像的處理需要卷積神經網絡,深度卷積網絡的訓練過程中需要大量的圖像數據,圖像采集設備短時間很難采集到足夠的圖像樣本,需要遷移學習幫助訓練卷積神經網絡,該項研究通過對不同網絡模型之間的遷移學習進行研究和試驗,成功將AlexNet的第1層的11×11大小的參數通過區域插值計算處理后變換為3×3大小并遷移到VGG16的第1層參數進行再訓練,訓練結果顯示準確率增加了4.98%。