1. 程式人生 > 其它 >深度卷積網路:例項探究

深度卷積網路:例項探究

經典網路

我們需要了解幾個經典的神經網路結構,分別是LeNet-5網路、AlexNet和VGGNet

首先我們來看LeNet-5網路

假設你有一張32*32*1的圖片,LeNet-5可以識別圖片中的手寫數字,比如7,此網路是針對灰度影象訓練的。

此網路,第一層使用6個5*5的過濾器,步幅為1,padding為0,輸出結果為28*28*6。影象尺寸從32*32縮小到28*28,然後進行池化操作,過濾器寬度為2,步幅為2。影象的尺寸高度和寬度都縮小了2倍,輸出結果是一個14*14*6的影象;接下來是卷積層,我們用一組16個5*5的過濾器,新的輸出結果有16個通道,影象再次縮小。然後又是池化層,高度和寬度再縮小一半,然後乘積是400,下一層是全連線層,在全連線層有400個節點,每個節點有120個神經元,最後一步就是利用這84個特徵得到最後的輸出。這裡使用softmax函式輸出 十種分類結果。

下面第二種神經網路是AlexNet

首先用一張227*227*3的圖片作為輸入,第一層我們使用96個11*11的過濾器,步幅為4,然後尺寸縮小到55*55,然後利用一個3*3的過濾器構建最大池化層,f=3,步幅為2。總面積尺寸縮小為27*27*96。接著再執行一個5*5的卷積,然後再次進行最大池化,尺寸縮小到13*13,再次執行一次與上一步相同的卷積,相同的padding得到的結果是13*13。384個過濾器。再做一次3*3的相同卷積,再做一次同樣的操作,最後進行一次最大池化尺寸縮小到6*6*256=9216,將其展開為9216個單元,然後是一些全連線層,最後使用softmax函式輸出識別的結果。

最後一個網路,VGG-16網路

值得注意的一點是,此網路沒有那麼多超參,這是一種只需要專注於構建卷積層的簡單網路。

首先用3*3 步幅為1的過濾器構建卷積層,padding引數為same。然後用一個2*2,步幅為2的過濾器構建最大池化層,因此VGG網路的一大優點是簡化了神經網路結構

假設要識別這樣一個影象,在最開始的2層,用64個3*3的過濾器對輸入的影象進行卷積,輸出結果是224*224,因為進行了相同的卷積,通道數量也一樣,進行第一個卷積之後得到224*224的特徵圖,接著還有一層224*224*64。這意味著我們用64個過濾器進行了兩次卷積。接下來建立一個池化層,將輸入的影象進行壓縮,減少到112*112*64。然後又是若干個卷積層,然後又是若干個卷積層,使用120個過濾器做一些相同的卷積操作,輸出結果為112*112*128。然後進行池化,可以推匯出池化後的結果,接著再用256個同樣的過濾器進行三次卷積操作,然後再池化,再卷積三次,再池化。將最後得到的7*7*512的特徵圖進行全連線操作,得到4096個單元,然後進行softmax啟用,輸出從1000個物件中識別的結果

殘差網路

ResNets是由殘差塊構建的,什麼是殘差塊

這是一個兩層神經網路,在L層進行啟用得到a[l+1]再次進行啟用,之後得到a[l+2],計算過程是從a[l]開始首先進行線性啟用,根據這個等式通過a[l]算出z[l+1],然後通過ReLU非線性啟用得到a[l+1],接著再次進行線性啟用,最後根據這個等式再次進行ReLU非線性啟用。

換句話說,資訊流從a[l]到a[l+2]需要經過這組網路層的主路徑

谷歌Inception網路簡介

構建卷積層時,你要決定過濾器的大小究竟是1*3,3*3還是5*5或者要不要新增池化層,而Inception網路的作用就是代替你來做決定。所以Inception網路或者Inception層就是代替人工來確定卷積層中的過濾器型別或者確定是否需要建立卷積層或池化層