考慮步長為1、輸入影象的深度為1、filter的個數為1的最簡單的情況。
假設 我們輸入的大小為3x3、filter大小為2x2,按步長為1來進行卷積,可知我們將得到的是乙個2x2的feature map。如下圖:(後面的步驟一定要結合圖看才容易懂一點)
在上圖中:
通過推導,我們不難發現,計算
對應成卷積公式表達出來就是:
上面的 wl 表示的是第l層filter的權重陣列。展開的話,公式為:
接下來我們就求第二項:
由於比較簡單我就簡單敲了。
由於:所以我們僅求啟用函式的導數就行了:
最後我們將一二項結合起來得到終公式就為:
簡化一下為卷積形式就是:
其中圓圈符號表示,將矩陣中的每個對應元素相乘。
以上就是在誤差傳遞中步長為1、輸入的深度為1、filter個數為1最簡單的情況。
接下來我們逐一的討論一般情況。
利用類推思想我們來看一下當步長不為1的情況。我們設步長為s。
之前我們也了解了步長的概念,所以步長為1和步長為s的區別我們就不難想到:
我們可以看出,因為步長為2,得到的feature map跳過了步長為1時相應的部分。因此,當我們反向計算誤差項時,我們可以對步長為s的sensitivity map相應的位置進行補0,將其還原成步長為1時的sensitivity map,最後再用公式進行求解。
當輸入深度為d時,filter的深度也必須為d,l-1層的di通道只與filter的di通道的權重進行計算。因此,反向計算誤差項時,我們可以使用公式,用filter的第di通道權重對第l層sensitivity map進行卷積,得到第l-1層di通道的sensitivity map。如下圖所示:
filter數量為n時,輸出層的深度也為n,第i個filter卷積產生輸出層的第i個feature map。由於第l-1層每個加權輸入netl−1d,i,j都同時影響了第l層所有feature map的輸出值,因此,反向計算誤差項時,需要使用全導數公式。也就是,我們先使用第d個filter對第l層相應的第d個sensitivity map進行卷積,得到一組n個l-1層的偏sensitivity map。依次用每個filter做這種卷積,就得到d組偏sensitivity map。最後在各組之間將n個偏sensitivity map按元素相加,得到最終的n個l-1層的sensitivity map:
由於上面的bp演算法已經詳細複習介紹了,這裡權重的更新就不再贅述了。
根據池化層的概念和性質,無論是 max pooling 還是 mean pooling,都沒有我們需要學習的引數。因此,在卷積神經網路的訓練中,pooling層需要做的僅僅就是將誤差項傳遞到上一層,從而沒用梯度的計算。
這裡我們以max pooing為例子。
max pooling的誤差傳遞
如下圖:
我們假設第l-1層大小為44,pooling filter大小為22,步長為2,這樣,max pooling之後,第l層大小為2*2。假設第l層的δ值都已經計算完了,我們現在的要做的就是計算第l-1層的δ值。
根據性質,只有區塊中最大的值才會對相應其他值產生影響。
也就是說上面的圖可以簡化成:
同理,根據mean pooling的性質,我們不難知道,下一層的誤差項的值會平均分配到上一層對應區塊的所有神經元當中。
卷積神經網路 有趣的卷積神經網路
一 前言 最近一直在研究深度學習,聯想起之前所學,感嘆數學是一門樸素而神奇的科學。f g m1 m2 r 萬有引力描述了宇宙星河運轉的規律,e mc 描述了恆星發光的奧秘,v h d哈勃定律描述了宇宙膨脹的奧秘,自然界的大部分現象和規律都可以用數學函式來描述,也就是可以求得乙個函式。神經網路 簡單又...
神經網路 卷積神經網路
這篇卷積神經網路是前面介紹的多層神經網路的進一步深入,它將深度學習的思想引入到了神經網路當中,通過卷積運算來由淺入深的提取影象的不同層次的特徵,而利用神經網路的訓練過程讓整個網路自動調節卷積核的引數,從而無監督的產生了最適合的分類特徵。這個概括可能有點抽象,我盡量在下面描述細緻一些,但如果要更深入了...
神經網路 卷積神經網路
1.卷積神經網路概覽 來自吳恩達課上一張,通過對應位置相乘求和,我們從左邊矩陣得到了右邊矩陣,邊緣是白色寬條,當畫素大一些時候,邊緣就會變細。觀察卷積核,左邊一列權重高,右邊一列權重低。輸入,左邊的部分明亮,右邊的部分灰暗。這個學到的邊緣是權重大的寬條 都是30 表示是由亮向暗過渡,下面這個圖左邊暗...