【VGG卷積神經網絡實驗探究報告8700字(論文)】_第1頁
【VGG卷積神經網絡實驗探究報告8700字(論文)】_第2頁
【VGG卷積神經網絡實驗探究報告8700字(論文)】_第3頁
【VGG卷積神經網絡實驗探究報告8700字(論文)】_第4頁
【VGG卷積神經網絡實驗探究報告8700字(論文)】_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

VPAGEIIVGG卷積神經網絡實驗探究報告目錄TOC\o"1-3"\h\u24672VGG卷積神經網絡實驗探究報告 1166411.1卷積神經網絡的結構及特點 1243541.2VGG卷積神經網絡的結構及特點 922761.3不同層數的VGG模型實驗結果與分析 13293391.4梯度消失和梯度爆炸 16近年來隨著科技發展,設備硬件性能提升導致數據量也隨之猛增,網絡的層次結構也不斷增大,這無疑對卷積神經網絡的訓練效果、識別準確度上造成了巨大的挑戰。在不斷地實際問題與科研結果的碰撞下,科研人員在卷積神經網絡的各方面不斷創新,許多的創新算法、新型模型如雨后春筍。VGG卷積神經網絡憑借其優秀的準確率、簡潔的網絡結構和可拓展性,被稱為三大經典的卷積神經網絡之一,自2014年問世以來,直至今天仍被用作圖像分類模型的首選和優化改進模型的基礎模型。1.1卷積神經網絡的結構及特點常規的神經網絡通常包括三個基本層次:輸入層、隱藏層和輸出層,即圖1中紅色、藍色、綠色部分表示,其中隱藏層層數不定。神經網絡同人腦神經一樣由許多神經元構成,從單個神經元的關系上看,常規全連接神經網絡的每一神經元與它隔壁層上的一切神經元都有聯系,即該網絡是全連接的。這樣的結構明顯會對運算帶來幾何倍增的參數量,同時會使模型出現過擬合的情況,即模型在訓練集上損失函數數值小準確率高但應用在測試集上時會出現損失函數數值變大準確率降低的現象。卷積神經網絡已經是現在最廣為應用推崇的深度學習算法之一。它就是為有效解決上述問題而研究出現的,且隨著深度學習的發展,對卷積神經網絡的研究也愈發深入,2012到2017短短五年間,大型視覺識別挑戰賽上各種卷積神經網絡模型百花齊放,但結構大都萬變不離其宗。圖1卷積神經網絡的藍色隱藏層部分,可細化分為卷積層、池化層和全連接層。圖1常規全連接神經網絡(左)與卷積神經網絡結構(右)示意圖1.1.1卷積層進行圖像分類的第一步也是其核心就是要對輸入圖像進行識別并提取圖中的“特殊部分”來進行后續的識別分類,卷積神經網絡卷積層上的卷積操作就是用作對輸入圖像的特征進行提取的。卷積的過程就是卷積核的感受野在圖像上以規定步長不斷移動掃描信息并進行卷積運算得到一個新圖像的過程。這個過程中卷積核可以看作是一個小的用于特征提取的矩陣。感受野就是輸入圖像被有效提取特征信息的部分,即對卷積核的某一接受區域。待操作的輸入圖像可以看作一個大的矩陣。步長是卷積核對應的感受野在圖像上沿橫或縱向移動一次所經過的像素單位個數,步長和卷積核參數共同決定著輸出圖像的寬高規格。小矩陣在大矩陣中移動并進行線性運算,得到的數據又構成了一個新的矩陣,輸出的新矩陣的每一像素單位即為這個卷積核在每個感受野上提取到的特征信息。經過卷積運算后的圖像數據會變大,這就稱之為激活,輸出的新圖像就稱為特征圖像。(1)步長關于步長和卷積核規格對輸出結果的影響,可以由以下公式得出: y=x?其中,y為輸出特征圖像規格,x為輸入圖像規格,k為使用卷積核規格,stride為步長大小。以下圖2為例,對一塊大小為5像素×5像素的感受野,使用步長為1的3×3的卷積核,卷積操作后得到的輸出圖像邊長為y=5?31+1=3,即可得到3×3大小的特征圖像。同理可得,當改變步長為2時,就可得到y=圖2不同步長下的卷積運算(2)Padding填充由卷積計算的公式及特性可知,當輸入圖像進行一次卷積計算后得到的輸出圖像寬高會根據步長和卷積核大小的不同而出現或多或少的縮小,這也可以看成是原始圖像邊緣的信息被遺漏了。但是為了易于計算且基于不遺漏特征信息的思想,人們希望得到的特征圖尺寸與輸入圖像是一致的,所以考慮通過增改“0”信息以改變輸入圖像的大小,即為對輸入圖像進行Padding(填充)操作。卷積核在輸入圖像上以不同的步長移動時,存在兩種取樣方式,如圖3所示。一種是不允許卷積核外邊框越過輸入圖像最外邊框移動的方式,這樣它所提取得到的特征信息圖的規格就會略小于被提取圖像,多步操作后原始圖像非中心位置的信息就會有被遺漏的情況,也許這些部分就會包含此圖的重點信息。第二種是允許卷積核探出輸入圖像的最外邊進行取樣的方式,這樣得到的特征圖層的尺寸就等于輸入圖像,且完全包含到了更多更詳細的特征信息。這兩種方式都需對輸入圖像進行padding操作,前者稱為validpadding,也可以理解成對輸入圖像不進行多余的操作;后者稱為samepadding,需要對原始圖像進行外圈增加無信息像素單位的填充操作。圖3使用validpadding(左)與samepadding(右)的卷積取樣示意圖基于填充操作的引入,對前文公式進行修改可以得到以下公式: W2= H2= D2=K其中,W2×H一般為使輸出圖像和輸入圖像大小相同,當步長為1時,samepadding填充的值有關系P=F?12(3)通道對于上文輸入輸出圖像的W×H×D表示,卷積神經網絡將輸入圖像的神經元以三維數據的形式表示為width×height×depth,因為在現實應用中輸入圖像都是有色彩的,也就是有RGB三個通道的,如圖4所示,他們的尺寸往往表示為高×寬×深,其中深度的數值也稱通道數。對于單通道的情況,卷積核可看作一個二維矩陣,基于前文所述計算方式進行卷積運算從而提取輸入圖像特征。對于多通道的情況,每個通道上的卷積核的集合稱filter(濾波器),輸出等于輸入圖像的每一個通道上的信息分別與濾波器對應的該通道上的卷積核進行卷積運算得到的結果之和再加偏移量。對于卷積操作后通道數的變化有:當前層l的接受圖的通道數等于l-1層的輸出特征圖的通道數,當前層l的輸出特征圖像的通道數就是該層使用的卷積核個數。圖4有RGB三個通道的表示為6×6×3的輸入圖像(4)激活函數為豐富網絡模型對圖像特征劃分的多樣性,往往會在卷積運算后添加一個激活函數。卷積運算僅僅是一種線性運算,即使模型會重復疊加卷積運算,但結果仍是線性的。對于復雜的圖像識別分類問題,線性劃分往往不能很好的得到想要的結果,因此,可以通過添加一個激活函數,以增加網絡的非線性,使這個模型更具可用性。常見的激活函數有sigmoid、tanh、ReLU等。1)sigmoid函數的數學表達式為: σx=圖5sigmoid函數圖像如圖5所示,sigmoid函數可以將定義域(-∞,+∞)上的輸入值x輸出到(0,1)的范圍內,且他只對以0為中心對稱的很小一部分數值輸出較為敏感,對接近正無窮或負無窮的自變量的輸出結果差異較小,即在網絡模型中對此部分特征提取的效果較差。同時因為該函數輸出值恒大于零,這也致使訓練應用中,當某層經過sigmoid函數輸出一個正數時,這個正數也作為了下一層的輸入再次經過該函數時會使結果越來越趨近于落在sigmoid函數不敏感區域內,導致分類模型效果逐漸降低。且因該函數計算過程存在指數運算,會導致模型訓練過程中計算量的激增致使運算速度大幅度變慢。2)tanh函數的數學表達式為: tanhx=圖6tanh函數圖像如圖6所示,同為s型函數,tanh函數的效果與sigmoid函數大為相似。二者區別在于,tanh函數的輸出結果的范圍為-1至1的開區間,即輸出的值的范圍擴大了一倍且可以劃分正負,消除了sigmoid函數輸出結果恒為正數造成的影響模型收斂速度的現象。(5)計算基于卷積運算、偏置與激活函數的綜合,對于第l層的輸出結果有以下公式: xjl其中,Mj為l-1層輸出的特征圖像有i個,xil?1為第l-1層上的第i個輸出圖像,k1.1.2池化層在卷積層的操作后,可以得到成倍增加的特征圖像,由于圖像往往會有大面積背景相似或特征明顯部分占比極小等特性,所以會出現圖像相近位置運算得到的特征信息圖像存在大量相似的情況。為避免不必要的多余計算,人們希望對這一類幾乎無差別的圖像進行有效篩選。池化操作就是對這些信息進行選擇替代的一步操作,一般根據在鄰域矩陣中選取最大值或平均值來進行替代該矩陣的操作不同,分為最大池化和平均池化。這兩種池化函數是當下CNN模型最為常用的,他們的顯著區別就是:最大池化著重保存原始圖像上更多的細節突出特征,而平均池化則更傾向于保留原始圖像的大面積模糊背景信息。不同的圖像分類模型會根據其功能定位的不同選擇添加不同類型的池化層。如圖7所示,步長為2的情況下,且兩個例子都使用了2×2大小的池化核。左圖為最大池化,即池化核每走兩像素在感受野上取最大值。右圖為平均池化,即池化核每走兩像素對感受野取平均值。圖7最大池化(左)與平均池化(右)1.1.3全連接層在輸入圖像經過了多次卷積和池化處理之后,準備輸出之前還會被送入全連接層分類。全連接層通過連接它上一層的全部神經元,將感受到的全部特征信息以分布式的形式進行映射,再與已知樣本進行匹配標記,換句話說就是綜合前面操作所提取到的所有圖像特征并根據它們進行分類。全連接層的添加也代表著模型中神經元個數的激增,參數增加,從而導致了運算時間變長效率降低,還會出現過度訓練的現象。為防止此類現象,卷積神經網絡的許多算法模型在全連接層往往會使用Dropout的方法。Dropout顧名思義就是在每次訓練時在全連接層連接的神經元中隨機選擇一些使之脫離,阻斷他們的彼此聯系,減小相關性,這時的全連接就變成了稀疏連接。如圖8所示,Dropout的使用可以看作是將一整個模型在一次訓練的不同回合中隨機以交集形式“隱藏”一些部分,得到許多不同的“殘缺模型”,每回合訓練的結果就是這些有相同部分的不同的“殘缺模型”的結果整合計算而得到的。這樣的方法有效防止了模型因重復計算而造成的過度單一訓練導致測試集效果不理想的現象。圖8Dropout方法示意圖1.1.4Softmax分類層最后一步的SoftMax分類層就相當于了一個最終的簡明分類器,Softmax函數根據已知的多個類別標簽對輸出結果進行均一化分類。Softmax函數的表達式為: Softmaxzi其中zi為第i個神經元的輸出,i=1,2,……,k,k為所用數據集包含的分類類別數,該式對于原本在(-∞,+∞)上的輸出值z在應用時,Softmax層會將數據集分類結果標簽轉化為one-hot編碼,該編碼用0或1表示FALSE或TRUE,可快速判斷出結果所屬分類。例如,手寫數字0-9的識別中,得到one-hot編碼為[0,0,0,1,0,0,0,0,0,0]時,可判斷識別出的手寫數字為數字3。1.1.5卷積神經網絡的特點卷積神經網絡與常規神經網絡相比,采用稀疏連接的形式防止了過度訓練,又采用權值共享的方法減少了參數量、簡化了模型。(1)稀疏連接人工智能既然類比于人,卷積神經網絡也從人的神經系統得到啟發,研究者發現人的神經元對事物的感知是通過整合許多局部區域的信息認知而形成的。基于這點,卷積神經網絡使用稀疏連接的方式,形式如圖9所示,也就是當前層的各神經元與上一層的部分神經元相連,以達到防止模型過度擬合的要求,同時也大大減少了數據量,使模型具有更快速高效學習的能力。以產生的參數量來看,如果采用完全相連的形式,假設l層有m個神經元,l+1層有n個神經元,那么在全連接的情況下該層一共會產生m×n個連接。然而當連接是不完全的時候,假設每個神經元只與其隔壁層的k個神經元相連,則只會產生m×k個連接,當層數不斷增加各層以乘法計算參數量,這兩種情況參數量的計算差值就會相差巨大。圖9稀疏連接示意圖(2)權值共享對于卷積層,輸入圖像在同一通道的不同的層操作時使用的卷積核參數數值是一致的,且每層的卷積核是作用于整個圖層的,也就是同一通道內當前層的神經元與上一層的神經元使用的參數實現共享,以達到減少網絡參數量簡化模型的效果。1.2VGG卷積神經網絡的結構及特點VGG卷積神經網絡仰仗其優異的性能在2014年的ILSVRC大賽中的定位和分類項目中分別獲得第一和第二名,其定位方案的前五類的錯誤率僅為7.5%。雖仍有不足之處,但瑕不掩瑜,VGG模型一時名聲大噪,被廣泛應用于特征提取、圖像定位等領域。VGG模型的突出貢獻為提出了通過使用小卷積核替換大卷積核的方法,在加深層次提升準確度的同時反而使參數量大量減少。同時,VGG憑借其擁有更小卷積核和小池化核等特點,進一步提升了其對輸入數據的特征提取能力。同一般的卷積神經網絡一樣,VGG模型也是由前文所述四個層次組合而成。下文將詳細介紹VGG模型各層次的基本作用與特點。1.2.1卷積層(1)小卷積核VGG模型相較于其他模型的優點之一就是只使用了同樣大小的步長為1的3×3的較小卷積核進行運算,其原因有:1)3×3的奇數卷積核大小是最小的具有中心和上下左右概念的尺寸,良好的對稱性使其大大減小了提取特征信息時像素偏移的情況,可以更好的保留住原始信息。2)使用兩個或三個3×3大小的卷積核可以效果更好地替代5×5(如圖10所示)或者7×7甚至用更多數量置換更大尺寸的卷積核。假設有一個n像素×n像素的感受野,則使用有效填充且卷積步長為1時,由公式(1.1)可得:使用一個5×5的卷積核時,計算得n?51+1=n?4,可知輸出特征圖規格為(n-4)×(n-4)。使用兩個3×3的卷積核時,計算其第一層得到n?31圖10用兩個3×3的卷積核替代5×5的卷積核示意圖3)替代的同時也會使模型層數加深,同時網絡深度的增加也會對提高模型分類準確度起到正面作用。4)使用多個小卷積核堆疊產生的參數和運算量要遠遠小于使用一個大卷積核,同時,小卷積核參數量的減少會使模型的訓練速度有很大提升。不考慮偏移時對于參數量的計算有:兩個3×3的卷積核所含參數量計算結果為18,一個5×5的卷積核所含參數量計算結果為25,可知一個替換就使參數量減少了28%,當面對整個模型時參數量會明顯減少。5)相對于只有一個卷積核時,復合使用多個小規格的卷積核堆加替代時的非線性程度更高,非線性運算更有助于復雜圖像識別分類場景下的應用。所以VGG模型采用3×3的卷積核達到了減小參數計算量并有效提高圖像分類準確度的要求。(2)samepaddingSamePadding就是在每次卷積操作之前,通過向輸入圖像最外圈添加零值空信息像素的方法先增大原始圖像。因為增補的這些像素單位不包含RGB信息,且從數學運算角度零并不影響卷積計算結果,故samepadding操作并不會影響特征圖像的輸出結果,但可以使其在規格大小上繼續與輸入圖像保持一致。VGG模型使用samepadding方法進行填充,以保持卷積操作后輸出的特征圖不損失有效信息且與原始輸入圖像尺寸一致易于計算。(3)ReLU激活函數ReLU函數的數學表達式為: fx=max圖11ReLU函數圖像如圖11所示,ReLU函數為一個輸出非零即正的max分段函數:當輸入值x大于等于0時,取原值不變;當x小于0時,該層輸出值為0。設有一組數據自變量x平均分布在負無窮到正無窮的定義域上,則他經過此函數計算后的結果就會有1/2的輸出值變為零,其余仍為原值,增大了結果的稀疏性,該性能的增強也代表著該網絡泛化性能的增強。且因其在整個定義域上不是線性表達的,所以可以使網絡模型更容易接受識別分類不同的樣本,即提高泛化能力。同時ReLU函數在進行運算時由于只需要進行簡單的與零比大小的正負值判斷,所以他的運算速度會比其他激活函數要更快,效率更高。VGG模型秉承簡潔的思想,所有隱藏層都選擇使用了運算較為簡單的ReLU函數作為激活函數,同時增加模型的非線性和提高模型的稀疏性,從而獲得更好的識別分類效果。1.2.2池化層池化層的作用是在保留了圖像全部特征的同時避免了信息冗余的現象,相當于對提取出的特征進行了篩選工作,并大大減少了參數量和計算量,提高了模型的容錯性。VGG模型選擇使用的是最大池化,在每一段卷積后添加最大池化層,以減小卷積操作參數誤差帶來的影響,最大限度的保留圖像原始特征信息。同時,使用步長為2的2×2的池化核,使得該操作后輸出特征圖的寬高變為原來的一半。1.2.3全連接層全連接層因其特性導致所需參數較多,對內存的需求也極大,VGG模型有三個全連接層,他們的默認值依次是兩個4096和一個1000,也就是前兩層各有4096個通道且第三層有1000個通道進行全連接。當然這三個數字是可以更改的,前兩個全連接層的數值僅僅是一個經驗值,第三層的數值1000是根據訓練集的分類數給出的,實際應用時可以根據選擇的圖像訓練集的不同進行修改。1.2.4Softmax分類層同一般的卷積神經網絡一樣,VGG模型的最后一層為Softmax分類層,將全連接的最后一層輸出的結果以分類數分之一的概率形式輸出并編碼識別得到其類別。1.2.5以VGG16模型為例簡析圖像識別分類過程圖12VGG16模型結構圖VGG16模型的網絡結構示意圖如圖12所示,該模型共有13個卷積層,5個最大池化層,3個全連接層和1個softmax層。對于一張224×224×3的輸入圖像,有以下操作過程及圖像數據變化:(1)卷積段一:有兩個卷積層,使用3×3卷積核。使用samepadding填充,計算可知padding=(F-1)/2=1像素。且該卷積段通道數為64,因此輸出圖像尺寸為224×224×64。后經過ReLU函數進行激活操作。(2)最大池化層一:對于卷積層輸出的224×224×64的圖像,最大池化層使用步長為2的2×2的池化窗口,操作后圖像長寬減半,得到112×112×64的輸出圖像。(3)卷積段二:有兩個卷積層,128通道數。圖像長寬不變通道數隨之變化,得到輸出圖像尺寸為112×112×128。后接ReLU函數。(4)最大池化層二:同理長寬減半,得到輸出為56×56×128。(5)卷積段三:有三個卷積層,256通道數。圖像長寬不變通道數隨之變化,得到輸出圖像尺寸為56×56×256。后接ReLU函數。(6)最大池化層三:同理長寬減半,得到輸出為28×28×256。(7)卷積段四:有三個卷積層,512通道數。圖像長寬不變通道數隨之變化,得到輸出圖像尺寸為28×28×512。后接ReLU函數。(8)最大池化層四:同理長寬減半,得到輸出為14×14×512。(9)卷積段五:有三個卷積層,512通道數。圖像長寬不變通道數隨之變化,得到輸出圖像尺寸為14×14×512。后接ReLU函數。(10)最大池化層五:同理長寬減半,得到輸出為7×7×512。(11)全連接層:兩層通道數為4096和一層通道數為1000的全連接層,得到1×1×1000的輸出。后經過ReLU函數進行激活操作。(12)softmax層:得到最終分類結果。1.3不同層數的VGG模型實驗結果與分析1.1.1實驗數據集實驗選擇使用CIFAR-100數據集,CIFAR數據集是一套常用的適用于日常常見物體生物識別分類的數據集。CIFAR數據集尺寸較小但包含數據種類規模又相對較大,因此也多為研究者青睞。CIFAR-100包含二十個總類(Superclass),其中每大類有細分的五小類,所以共有一百個具體種類(Classes)。每個圖像都帶有兩個標簽表示Superclass和Classes,該數據集包括總計六萬張大小為32像素×32像素的彩色圖像,每小類六百張圖像按五比一分配給訓練集和測試集。對該數據集的測試塊包含從每個Classes中自由選擇組合的共一萬張圖像,訓練塊以隨機順序包含全部余下部分。1.1.2實驗環境NVIDIAGeForceGTX1050的顯卡,CPU為4核8邏輯處理器的Intel(R)Core(TM)i7-7700HQ版。1.1.3實驗過程及數據結果對VGG卷積神經網絡模型框架,通過調整改變卷積層數的不同,構造了包含8層、10層、14層、16層、20層和22層卷積層的新的VGG模型,并以“VGG_卷積層數量”的形式命名,他們的準確度及損失值如表1所示。表1不同VGG模型的準確度及損失模型名稱Accuracy(準確度)Loss(損失)VGG_80.44772.1467VGG_100.47212.0703VGG_140.47982.0338VGG_160.39432.4466VGG_200.31092.7480VGG_220.01004.6054根據準確度數據變化可以發現VGG模型卷積層層數從8層增加到14層時,其準確度增加,VGG_14準確度最高,為0.4798;再繼續增加卷積層層數時,準確度開始降低,至22層時其準確度已約等于0。可以得出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論