深度学习之卷积神经网络(6)梯度传播
深度學習之卷積神經網絡(6)梯度傳播
?在完成手寫數字圖片識別實戰后,我們對卷積神經網絡的使用有了初步的了解?,F在我們來解決一個關鍵問題,卷積層通過移動感受野的方式實現離散卷積操作,那么它的梯度傳播是怎樣進行的呢?
?考慮一簡單的情形,輸入3×33×33×3的單通道矩陣,與一個2×22×22×2的卷積核,進行卷積運算,輸出結果打平后直接與虛構的標注計算誤差,如下圖所示。我們來討論這種情況下的梯度更新方式。
?首先推導出張量O\boldsymbol OO的表達形式:
o00=x00w00+x01w01+x10w10+x11w11+bo01=x01w00+x02w01+x11w10+x12w11+bo10=x10w00+x11w01+x20w10+x21w11+bo11=x11w00+x12w01+x21w10+x22w11+bo_{00}=x_{00} w_{00}+x_{01} w_{01}+x_{10} w_{10}+x_{11} w_{11}+b\\ o_{01}=x_{01} w_{00}+x_{02} w_{01}+x_{11} w_{10}+x_{12} w_{11}+b\\ o_{10}=x_{10} w_{00}+x_{11} w_{01}+x_{20} w_{10}+x_{21} w_{11}+b\\ o_{11}=x_{11} w_{00}+x_{12} w_{01}+x_{21} w_{10}+x_{22} w_{11}+bo00?=x00?w00?+x01?w01?+x10?w10?+x11?w11?+bo01?=x01?w00?+x02?w01?+x11?w10?+x12?w11?+bo10?=x10?w00?+x11?w01?+x20?w10?+x21?w11?+bo11?=x11?w00?+x12?w01?+x21?w10?+x22?w11?+b
以w00w_{00}w00?的梯度計算為例,通過鏈式法則分解:
?L?w00=∑i∈{00,01,10,11}?L?oi?oi?w00\frac{?\mathcal{L}}{?w_{00}}=\sum_{i\in\{00,01,10,11\}}{\frac{?\mathcal{L}}{?o_i}\frac{?o_i}{?w_{00}}}?w00??L?=i∈{00,01,10,11}∑??oi??L??w00??oi??
其中?L?oi\frac{?\mathcal{L}}{?o_i}?oi??L?可直接由誤差函數推導出來,我們直接來考慮?oi?w00\frac{?o_i}{?w_{00}}?w00??oi??,例如:
?o00?w00=?(x00w00+x01w01+x10w10+x11w11+bw00=x00\begin{aligned}\frac{?o_{00}}{?w_{00}}&=\frac{?(x_{00} w_{00}+x_{01} w_{01}+x_{10} w_{10}+x_{11} w_{11}+b}{w_{00}} \\&=x_{00}\end{aligned}?w00??o00???=w00??(x00?w00?+x01?w01?+x10?w10?+x11?w11?+b?=x00??
同理:
?o01?w00=?(x01w00+x02w01+x11w10+x12w11+bw00=x01\begin{aligned}\frac{?o_{01}}{?w_{00}}&=\frac{?(x_{01} w_{00}+x_{02} w_{01}+x_{11} w_{10}+x_{12} w_{11}+b}{w_{00}} \\&=x_{01}\end{aligned}?w00??o01???=w00??(x01?w00?+x02?w01?+x11?w10?+x12?w11?+b?=x01??
?o10?w00=?(x10w00+x11w01+x10w10+x21w11+bw00=x10\begin{aligned}\frac{?o_{10}}{?w_{00}}&=\frac{?(x_{10} w_{00}+x_{11} w_{01}+x_{10} w_{10}+x_{21} w_{11}+b}{w_{00}} \\&=x_{10}\end{aligned}?w00??o10???=w00??(x10?w00?+x11?w01?+x10?w10?+x21?w11?+b?=x10??
?o11?w00=?(x11w00+x12w01+x21w10+x22w11+bw00=x11\begin{aligned}\frac{?o_{11}}{?w_{00}}&=\frac{?(x_{11} w_{00}+x_{12} w_{01}+x_{21} w_{10}+x_{22} w_{11}+b}{w_{00}} \\&=x_{11}\end{aligned}?w00??o11???=w00??(x11?w00?+x12?w01?+x21?w10?+x22?w11?+b?=x11??
?可以觀察到,通過循環移動感受野的方式并沒有改變網絡層的可導性,同時梯度的推導也并不復雜,知識當網絡層數增大以后,人工梯度推導將變得十分繁瑣。不過不需要擔心,深度學習框架可以幫我們自動完成所有參數的梯度計算與更新,我們只需要設計好網絡結構即可。
總結
以上是生活随笔為你收集整理的深度学习之卷积神经网络(6)梯度传播的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ListNode
- 下一篇: CENTER OS7关闭防火墙