《續(xù)》
第 4 章 豬胴體圖像分級模型 CNN-P
本章主要構建了針對豬胴體圖像分級的卷積神經(jīng)網(wǎng)絡模型,選用TensorFlow計算框架,采用以AlexNet網(wǎng)絡模型為藍本的八層網(wǎng)絡結構,通過對網(wǎng)絡參數(shù)的修改,調(diào)整卷積層中池化運算的數(shù)量和策略、網(wǎng)絡中卷積核的尺寸與數(shù)量,分析得到不同的分類效果來選擇更有益于提高網(wǎng)絡性能的模式,按照此模式對構建的網(wǎng)絡模型進行修改,獲得對豬胴體圖像分級性能更好的網(wǎng)絡模型。
4.1 TensorFlow機器學習框架
本文的網(wǎng)絡模型搭建使用了TensorFlow機器學習框架,作為google公司開發(fā)的一款面向機器學習領域的開源框架,TensorFlow由Distbelief深度學習系統(tǒng)發(fā)展而來Distbelief學習系統(tǒng)由google公司開發(fā),該項目由JeffDean主導,其衍生的面向圖像分類的深度學習系統(tǒng)在2014年贏得了世界級圖像識別大賽Image-Net的第一名。其實現(xiàn)的語義識別模型也性能極佳,一舉將語義識別的誤判率降低了四分之一,但Distbelie系統(tǒng)也存在著一些缺陷,其中實現(xiàn)與運作需要大量的google公司的內(nèi)部框架支持,很難實現(xiàn)開源。因此google公司的開發(fā)團隊通過對原系統(tǒng)的改進,研發(fā)了面向機器學習方面的TensorFlow計算架構。該框架基于Apache2.0開源協(xié)議,TensorFlow較其前身具有更加通用的運算模塊、更高速的計算能力、更全面的平臺支持和更多的深度學習算法,整體的穩(wěn)定性也更好。在google公司的翻譯服務、電子商務平臺、廣告推廣、語音識別等眾多領域均大量采用了TensorFlow框架的支持。在學術界,TensorFlow也得到了很廣泛的關注,越來越多的項目中采用或參考了TensorFlow,在深度學習網(wǎng)絡模型搭建方面,TensorFlow框架與很多其他深度學習框架都在不斷優(yōu)化完善,本文選擇TensorFlow不僅因為其具有更加規(guī)范化的代碼以及更加全面的項目文檔,更重要的是其具備的以下幾大亮點。
(1)應用廣泛
TensorFlow在建立深度學習系統(tǒng)過程中有廣泛的應用,其不僅架構齊全也可以達到簡化計算過程的作用。在具體的構件過程中可用到Python和C++,可以通過Python抽象處理,來得到相應的程序,也可以應用相應的C++編寫。
(2)易于不同平臺間的移植
框架對各種設備普遍具有很強的支持性,可以在很多平臺上運行,也可以在臺式機運行,因而對設備的依賴性低,可移植性很強。
?。?)支持更多底層操作
為了實現(xiàn)對底層的操作,框架對很多的硬件也可以做到普遍性的支持,可以直接實現(xiàn)針對結點的分配與處理,使網(wǎng)絡高效得進行并行化處理,來滿足相應的應用要求。
(4)開發(fā)環(huán)境更豐富
除了可以在Python開發(fā)環(huán)境下使用外,框架還提供了應用C++語言的開發(fā)環(huán)境,相比一些框架只能面向集成化開發(fā)環(huán)境的現(xiàn)狀,TensorFlow框架提供了更多的選擇。在使用過程中,可根據(jù)需要利用不同的語言環(huán)境。在操作過程中可以通過可視化工具將計算結果通過一定的形式顯示出來,而對應的參數(shù)、運行結構也可以通過同樣的方式輸出。
?。?)封裝微積分運算包
一些機器學習算法的原理是根據(jù)梯度運算進行的,對于這些涉及梯度下降算法的部分往往需要大量的微分運算,TensorFlow框架可以方便地應用相應的自動求導功能,在此計算過程中要定義結構,對模型進行綁定處理后,會自動計算相關的導數(shù)。
TensorFlow框架在處理過程中用到數(shù)據(jù)流圖工具,可以通過“結點”和“線”,描述相應的數(shù)據(jù)運算處理,而“結點”一般用W表示,和數(shù)據(jù)運算存在一定的相關性,“線”主要反映出相應“結點”之間的數(shù)據(jù)關系。張量具體表示為一種特殊的多維數(shù)組,輸入端所有的張量準備完畢時,就可以對節(jié)點進行分配,且可以開始異歩計算。
4.2 基礎模型的設計
本章主要通過構建卷積神經(jīng)網(wǎng)絡實現(xiàn)對豬胴體圖像的分級。本次研究中首先基于經(jīng)典的卷積神經(jīng)網(wǎng)絡模型AlexNet建立了面向豬胴體分級應用的神經(jīng)網(wǎng)絡模型,然后通過此網(wǎng)絡模型對豬胴體圖像庫的圖像進行掃描分析,確定出圖像的分類特征。接下來利用經(jīng)過訓練的網(wǎng)絡模型對豬胴體圖像數(shù)據(jù)集進行識別研究。其中作為基礎模型AlexNet(后文簡稱A模型)的網(wǎng)絡結構較其他多層神經(jīng)網(wǎng)絡結構具有如下特征:
?。?)將Dropout過程作為網(wǎng)絡中默認的一部分
A模型將Dropout這一過程加入到對應的全連接層的ReLu部分,將其中一部分的神經(jīng)元去掉,來簡化分析過程,并滿足擬合要求。這種優(yōu)化方法是由學者Hinton在一次關于神經(jīng)網(wǎng)絡特征提取研究過程中提出的。
通過這種方法對模型進行訓練時,其中隨機選擇隱藏層節(jié)點,使其權重暫時不參與網(wǎng)絡傳遞。對應的節(jié)點在此時可以不參與計算,對權重進行保留,在其后的輸入操作過程中,這些節(jié)點會隨機開始工作。對應的運行情況具體見圖4.1(b)所示,沒有添加此方法的神經(jīng)網(wǎng)絡模型結構見左圖。通過這種方法可以有效地減少參與訓練的神經(jīng)元數(shù)量,僅訓練部分神經(jīng)元,在一定的訓練時間情況下,相應的分類結果滿足系統(tǒng)的準確性要求,有利于防止過擬合問題的出現(xiàn)。

圖 4.1 dropout 方法對應的網(wǎng)絡模型
(2)ReLu層
在A模型中,通過應用ReLu函數(shù)代替?zhèn)鹘y(tǒng)的激活函數(shù),ReLU函數(shù)是一種非線性函數(shù),但也可以將其看作一種分段線性函數(shù)。主要特征表現(xiàn)為反向求導更容易且不必進行除法操作,并且出現(xiàn)梯度發(fā)散現(xiàn)象可能性很低,有效地提高了網(wǎng)絡判別結果的精度。
?。?)LRN層
LRN層的字面意思是局部響應歸一化,通過對各個像素點的數(shù)據(jù)全部進行歸一化處理,設置LRN層能有效避免由于數(shù)據(jù)在不同層中的不同分布導致的擬合困難及訓練速度低下等問題。
在此分析過程中確定出的初始網(wǎng)絡中相應的全連接層與卷積層對應的參數(shù)具體情況如表4.1、4.2所示。
表4.1 全連接層網(wǎng)絡參數(shù)設置
全連接層 | 激活函數(shù) | dropout |
fc1 | RELU | 有 |
fc2 | RELU | 無 |
fc3 | 無 | 無 |
表 4.2 卷積層網(wǎng)絡參數(shù)設置
卷積層 | 卷積 | 池化 | 激活函數(shù) | 填充 |
C1 | 卷積核數(shù)量:96 卷積核大?。?1×11 步長:4 | 池化大?。?×3 步長:2 | RELU | valid |
C2 | 卷積核數(shù)量:96 卷積核大?。?×5 | 無 | RELU | valid |
C3 | 卷積核數(shù)量:256 卷積核大?。?×3 | 無 | RELU | valid |
C4 | 卷積核數(shù)量:256 卷積核大?。?×3 | 池化大小:3×3 步長:2 | RELU | valid |
4.3 豬肉識別的影響因素
在農(nóng)產(chǎn)品圖像的分類識別中,分析各參數(shù)對圖像識別的影響,主要根據(jù)感受野的大小,卷積核的數(shù)量、卷積層的數(shù)量的改變水平來確定??梢栽诖嘶A上確定出不同參數(shù)方法的作用,更好的得到圖像識別模型。
4.3.1 卷積核個數(shù)與尺寸的分析
卷積操作在利用深度學習進行圖像處理的過程中被廣泛應用,其原理主要是利用卷積核來提取圖像特征。提取圖像特征時,最重要的環(huán)節(jié)就是選擇卷積核,也就是設置卷積核的數(shù)量、尺寸及步長的相關參數(shù)。其中卷積核的數(shù)量與特征映射圖的個數(shù)有關,對應的特征圖和上層圖像的描述存在一定的相關性。特征映射圖的數(shù)量也可以在一定程度上反映出相應特征的描述能力。從理論上講,這種圖的數(shù)量越多,網(wǎng)絡的學習能力就越強。不過實際應用中卷積核數(shù)量應該控制在一定的范圍內(nèi),并非越多就越好。根據(jù)實際使用的結果表明,如果選取的特征數(shù)量超過了一定水平,會導致網(wǎng)絡結構過于復雜,也就明顯的增加了數(shù)學計算難度,且在一定情況下還會出現(xiàn)過擬合問題。卷積核的尺寸決定了特征映射圖的大小。在圖像卷積的操作過程中,步長的大小主要會影響到特征數(shù)量。在此操作過程中,如果對應的圖像像素尺寸為(n,n),對其進行卷積操作,核只有一個,其大小設定為(w,w),設置的步長大小為 k,卷積處理后可以確定出l個特征映射圖,特征映射圖的大小如如公式(4.1)所示:
?。?.1)

通過這種網(wǎng)絡結構對圖像進行卷積的過程中,需要確定邊界參數(shù)的選擇是SAME模式還是VALID模式。其中選擇VALID就是對圖片直接進行特征提取,在進行卷積池化過程中,對輸入圖像不進行變化。SAME模式則是在圖片外圍添加n層0來改變圖像尺寸方便卷積運算,n可以通過公式(4.2)、(4.3)來確定,然后根據(jù)所得結果再利用VALID模式進行卷積操作。在此運算情況下輸入的圖像和卷積處理后的圖像的尺寸一致,可以避免卷積核的尺寸對卷積運算后圖像尺寸大小的影響。
橫向擴充層數(shù)n_ h (卷積核橫向的大小-1) / 2 (4.2)
縱向擴充層數(shù)n_ v (卷積核縱向大小-1) / 2 (4.3)
根據(jù)卷積神經(jīng)網(wǎng)絡的特性可知:卷積核數(shù)量會影響到網(wǎng)絡模型的識別效果。本文研究中,采用保持其他的參數(shù)固定,對模型卷積核的數(shù)量進行逐步增加的方法以確定不同的影響效果。具體數(shù)量設置如下,改變C2、C3及C4卷積層的卷積核數(shù)量為:96-96-128;96-128-128;96-128-256;128-256-256;256-256-384;256-384-384;384-384-384。然后在此基礎上通過模型來對圖像庫進行訓練,所得結果具體如圖4.2所示。

圖 4.2 采用不同卷積核數(shù)量對應的誤判率
分析以上結果可知,增加卷積層中卷積核的數(shù)量,可以使網(wǎng)絡訓練的擬合結果在一定程度上有所提高,同時圖像的識別率也會有顯著提高。同時隨著卷積層數(shù)量的增加,相應的整體網(wǎng)絡規(guī)模也明顯增加。網(wǎng)絡規(guī)模的擴大伴隨著數(shù)學計算量的增大,過大的計算量會使網(wǎng)絡的訓練及識別速度受到一定的影響。一旦輸入圖像的尺寸超過了一定的限度,模型的訓練效果也會受到明顯的影響,對應的識別效率會明顯降低。在網(wǎng)絡的訓練識別過程中,通過縮小卷積過程中卷積核的尺寸也可以有效地提高圖像的識別率。從理論上來講在其他參數(shù)不變的情況下,與單個像素點大小相同的卷積核對應的識別效果可以達到更高的水平。但卷積核過小會伴隨著噪聲干擾問題的明顯加大,反而影響了圖像的識別效果,在此情況下應該適當?shù)目刂?。而在一般情況下,網(wǎng)絡模型大部分選擇了尺寸為3×3-5×5的卷積核進行卷積處理。
4.3.2 池化操作和范圍的分析
池化操作(子采樣)就是在一定的卷積操作處理后,為有效的降低特征維度而對特征映射圖進行處理。根據(jù)實際的處理結果表明:這種方法處理后,相應的數(shù)據(jù)參數(shù)可以大幅度減少,而處理的結果在進行旋轉、平移操作后,圖像性質(zhì)依然保持不變。通過這種方法進行處理時,可以選擇隨機采樣、最大值采樣、均值采樣等幾種類型,相應的操作過程具體如圖4.3所示。

圖 4.3 不同池化方法示意圖
選擇最大值采樣的方法進行采樣時,主要是獲取上一層中池化區(qū)域中對應的最大參數(shù)并將其選作為神經(jīng)元參數(shù)。均值采樣過程中則對上一層池化區(qū)域中對應的參數(shù)求平均值,然后將所得結果作為相應的參數(shù)值。研究表明,最大值采樣方法對圖像細節(jié)邊緣的影響最小,對紋理特征的保留效果最好。平均值采樣因其均值化的特點,可以減少池化運算對圖像整體背景的影響,對網(wǎng)絡參數(shù)中池化范圍尺寸選擇的限制較小,均值化方法可以有效地降低與原圖對比的方差。隨機采樣方法是根據(jù)上一層池化區(qū)域對應的參數(shù)的數(shù)值對應設定概率,參數(shù)數(shù)值被選擇的概率由數(shù)值本身的大小決定。通過對幾種池化方法的分析可知:池化層各參數(shù)會明顯的影響到圖像識別的效果,因而本文在進行研究時,控制其他的參數(shù)不變,在2層池化層分別選擇這三種采樣方法進行采樣,并修改其各自的池化大小,分別設置為2×2、3×3、5×5,在此基礎上進行池化處理,選擇后者時,邊界參數(shù)選擇SAME來進行模擬分析。在以上參數(shù)設置的基礎上對豬胴體進行圖像測試,采用各池化范圍的網(wǎng)絡模型測試誤判率如圖4.4所示。

圖4.4 不同池化方法和大小對豬胴體圖像識別的影響
如圖4.4所示,分析此結果可發(fā)現(xiàn),噪音和池化大小存在一定的相關性,擴大池化區(qū)域范圍,則對應的噪音影響越大,進而明顯的影響識別效果。同時進一步分析可知:過小的池化范圍會導致過擬合問題。同時不同池化方法的最優(yōu)池化范圍選擇也不同,如在最大池化方法中,最優(yōu)大小為3×3。在測試過程中,雖然整體擬合效果隨著池化范圍的減小而不斷地提高。但在實際應用中對網(wǎng)絡模型進行訓練時,相應的3×3池化可以起到更好的識別效果,原因在于尺寸為2×2的池化識別過程中會有更大的可能性產(chǎn)生過擬合問題,對比分析這幾種方法的圖像識別結果,可以發(fā)現(xiàn)最大值池化方法的識別效果明顯好于其他兩種方法的。
《未完待續(xù)》