1. DNN反向傳播圖解
轉載自:https://www.cnblogs.com/MatrixPlayer/p/7661232.html
其實反向傳播算法從公式上來看,損失C對W的權重有兩部分,
1)激活函數Z對W的偏導數 ,此項其實就是前向傳播(a當前這個神經元的輸入)
2)C對激活函數Z的偏導數,此項就是反向傳播。
總結反向傳播的計算:
爲什麼權值矩陣在反向傳播是是乘以W的轉置?
數學推導部分
正向傳播:
反向傳播:求梯度
2. 整個神經網絡的公式推導
反向傳播需要用到鏈式法則,所以定義一箇中間變量:
求單個神經元的梯度
根據鏈式求導法則,第 層的第 個神經元的梯度爲:
因爲正向傳播時,第層的神經元(共個)會接收第層所有神經元的輸出值作爲輸入,所以反向傳播時
第層的每個神經元的梯度都有第層的所有結點的梯度累積求和得到。
第層個神經元的反向傳播公式爲:
簡寫成矩陣乘法的形式爲:
,其中表示向量的對應元素相乘(點乘)
求權重W的梯度
第層權重矩陣中某個權重 的梯度:
寫成矩陣的形式爲:
簡寫爲:
對偏置b的梯度
寫成矩陣形式:
簡寫爲:
論nn.Conv2d中的反向傳播實現過程:https://blog.csdn.net/g11d111/article/details/83021651