花書+吳恩達深度學習(十三)卷積神經網絡 CNN 之運算過程(前向傳播、反向傳播)

目錄

0. 前言

1. 單層卷積網絡

2. 各參數維度

3. CNN 前向傳播反向傳播


如果這篇文章對你有一點小小的幫助,請給個關注,點個贊喔~我會非常開心的~

花書+吳恩達深度學習(十)卷積神經網絡 CNN 之卷積層

花書+吳恩達深度學習(十一)卷積神經網絡 CNN 之池化層

花書+吳恩達深度學習(十二)卷積神經網絡 CNN 之全連接層

花書+吳恩達深度學習(十三)卷積神經網絡 CNN 之運算過程(前向傳播、反向傳播)

花書+吳恩達深度學習(十四)卷積神經網絡 CNN 之經典案例(LetNet-5, AlexNet, VGG-16, ResNet, Inception Network)

0. 前言

本篇文章主要介紹卷積神經網絡的運算過程。

整體卷積神經網絡的運算趨勢,是行和列逐漸減小,通道數逐漸增加。

1. 單層卷積網絡

此處以單個樣本爲例子。

  1. 原始圖像(上一層輸出)作爲 x 。
  2. 每一個過濾器的參數疊加在一起,組成這一層的權重 W 。
  3. 爲每個過濾器加上偏差,組成偏差 B ,在卷積之後的 2D 圖像的每一個像素上加上偏差。
  4. 通過激活函數 A ,激活函數同樣針對 2D 圖像的每一個像素。
  5. 則,每一個過濾器計算出來爲 2D 圖像,多個過濾器組合起來作爲 3D 圖像,下一層的輸入。

2. 各參數維度

\begin{align*} & f^{[l]}=filter\ size \\ & p^{[l]}=padding \\ & s^{[l]}=stride \\ & n_c^{[l]}=number\ of\ filters\ in\ layer\ l \\ \end{align*}

\begin{align*} & Input:\ n^{[l-1]}_H\times n^{[l-1]}_W\times n_c^{[l-1]} \\ & output:\ n^{[l]}_H\times n^{[l]}_W\times n_c^{[l]} \\ & n^{[l]}_{H/W}=\lfloor \frac{n^{[l-1]}_{H/W}+2p^{[l]}-f^{[l]}}{s^{[l]}}+1 \rfloor \\ \end{align*}

\begin{align*} & each\ filter:\ f^{[l]}\times f^{[l]}\times n_c^{[l-1]} \\ & weights:\ f^{[l]}\times f^{[l]}\times n_c^{[l-1]}\times n_c^{[l]} \\ & bias:\ 1\times 1\times 1\times n_c^{[l]} \\ \end{align*}

3. CNN 前向傳播反向傳播

對於每一個 3D 圖像,可以看成是,行(長),列(寬),通道(高)。

定義一個 4 維張量 K (也就是每一層的權重 W ),K_{i,j,k,l} 表示位於,輸出通道 i (這層第 i 個過濾器,輸出的第 i 個通道),輸入通道 j (每個過濾器的第 j 個通道),k 行,l 列的值。

定義一個 3 維張量 V (也就是輸入數據 x ),V_{i,j,k} 表示位於,通道 i (上層的第 i 個過濾器,輸入的第 i 個通道),j 行, k 列的值。

定義一個 3 維張量 Z (也就是輸出的 3D 數據),Z_{i,j,k} 表示位於,通道 i (這層的第 i 個過濾器,輸出的第 i 個通道),j 行, k 列的值。

則前向傳播的卷積運算表示爲:

Z_{i,j,k}=\sum_{l,m,n}V_{l,j+m-1,k+n-1}K_{i,l,m,n}

在反向傳播中,對 Z_{i,j,k} 的求梯度爲:

G_{i,j,k}=\frac{\partial }{\partial Z_{i,j,k}}J(V,K)

使用梯度下降,對權重 K_{i,j,k,l} 求梯度爲:

g(G,V,s)_{i,j,k,l}=\frac{\partial }{\partial K_{i,j,k,l}}J(V,K)=\sum_{m,n}G_{i,m,n}V_{j,(m-1)\times s+k,(n-1)\times s+l}

如果不是神經網絡的第一層,則需要對輸入 V_{i,j,k} 求梯度:

\begin{align*} h(K,G,s)_{i,j,k}&=\frac{\partial }{\partial V_{i,j,k}}J(V,K)\\ &=\sum_{l,m\ s.t.\ (l-1)\times s+m=j}\sum_{n,p\ s.t.\ (n-1)\times s+p=k}\sum_{q}K_{q,i,m,p}G_{q,l,n} \end{align*}


如果這篇文章對你有一點小小的幫助,請給個關注,點個贊喔~我會非常開心的~

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章