神經網路中前向傳播和反向傳播解析
阿新 • • 發佈:2019-01-31
雖然學深度學習有一段時間了,但是對於一些演算法的具體實現還是模糊不清,用了很久也不是很瞭解,最近在看去年LeCun和Hinton在Nature上發表的deep learning的review,有兩張圖分別是講得網路的前向傳播和反向傳播,下面記錄一下。
前向傳播
如圖所示,這裡講得已經很清楚了,前向傳播的思想比較簡單。
舉個例子,假設上一層結點i,j,k,…等一些結點與本層的結點w有連線,那麼結點w的值怎麼算呢?就是通過上一層的i,j,k等結點以及對應的連線權值進行加權和運算,最終結果再加上一個偏置項(圖中為了簡單省略了),最後在通過一個非線性函式(即啟用函式),如ReLu,sigmoid等函式,最後得到的結果就是本層結點w的輸出。
最終不斷的通過這種方法一層層的運算,得到輸出層結果。
反向傳播
反向傳播的方法其實也比較簡單,但是因為需要求偏導,而我的數學又不怎麼好,所以一直理解上有困難。下面上圖:
由於我們前向傳播最終得到的結果,以分類為例,最終總是有誤差的,那麼怎麼減少誤差呢,當前應用廣泛的一個演算法就是梯度下降演算法,但是求梯度就要求偏導數,下面以圖中字母為例講解一下。
設最終總誤差為 E∂xi=∂E∂yj∂yj∂zj
然後調整這些過程中的權值,再不斷進行前向傳播和反向傳播的過程,最終得到一個比較好的結果