对反向传播算法(Back-Propagation)的推导与一点理解
最近在對卷積神經網絡(CNN)進行學習的過程中,發現自己之前對反向傳播算法的理解不夠透徹,所以今天專門寫篇博客記錄一下反向傳播算法的推導過程,算是一份備忘錄吧,有需要的朋友也可以看一下這篇文章,寫的挺不錯的:http://www.cnblogs.com/lancelod/p/4164231.html,本文也大量參考了這篇文章。本文在推導過程中忽略了偏置的存在,這樣做是為了更簡單明晰的闡述BP算法的操作過程,并不是說偏置不重要,希望不會引起誤會。
? ? ? ? 我們知道,神經網絡大多采取正向傳播預測,反向傳播誤差的結構。反向傳播算法是運用在神經網絡中進行網絡權重等最優值計算算法,其核心就是梯度下降 + 鏈式法則求偏導,下面就對反向傳播算法進行一下簡單的推導:
? ? ? ? 在下面的推導過程中,表示連接前一層神經元?和后一層神經元?的權值。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? 對于輸出層神經元?,它的輸入?按下式進行計算(忽略偏置):
? ??
? ? ? ? 可以看到它的輸入等于前一層所有神經元的輸出和對應連接的加權和, 如上圖,而的輸出按下式計算:
? ? ??
? ? ? ? 對于有監督訓練, 期望輸出即樣本類標簽d和實際輸出y都是已知的, 可以定義誤差或者loss function為:
? ? ??
? ? ? ? 前期的準備工作已經完成了,下面開始正式的推導過程:? ? ??
? ? ? ? 這樣,我們就可以根據最后求出的誤差來對權重進行更新,這種誤差反向傳遞的方式就是反向傳播算法的精髓所在。
? ? ? ? 處理完輸出層神經元,我們再來看一下輸出層之前的一層神經元的權值更新,我們定義表示連接前一層神經元和后一層神經元的權值。
? ? ? ? 相信大家已經看出誤差反向傳導的內涵了,每一層所產生的誤差會逐漸向之前的層次傳播,而各層的權重根據梯度下降算法不斷地優化。總之,反向傳播算法的核心就是梯度下降 + 鏈式法則求偏導,雖然看起來很繁瑣并且計算復雜度有點高,但是實際上BP算法的精確性和易用性是很難被其他算法替代的,這也是現在比如CNN等很火的深度學習算法普遍采用BP算法的原因。
原文地址:http://blog.csdn.net/qrlhl/article/details/50885527
總結
以上是生活随笔為你收集整理的对反向传播算法(Back-Propagation)的推导与一点理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 激活函数概述
- 下一篇: 反向传播算法最全解读,机器学习进阶必看!