bp演算法簡單的來說就是根據神經網路實際的輸出和目標輸出(也就是輸入樣本對應的標記)之間的誤差計算神經網路各個權值的過程。
下面的推導過程參考了《神經網路設計》 martin t. hagan等著 戴葵等譯。
採用bp演算法從輸出層、經過隱層再到輸入層進行層層計算的原因是如果直接計算誤差函式相對於各權值的偏導很難得到顯式的表達函式(最小均方演算法或widrow-hoff學習演算法),採用從後向前遞推的方式大幅度的利用了前期的計算值,也使得網路具備了更多的靈活性。
使用均方誤差作為效能指數,那麼優化演算法的目標就是調整網路的引數使得均方誤差最小化。那麼根據最速下降演算法的原理,第k次迭代計算得到的權值和偏移如下:
其中,m是層序號,i是神經元在層中序號,j則是乙個神經元的輸入的序號,
前面就提到了,求這兩個偏導是很困難的事情,因此可以使用鏈式法則從最後一層向前計算。根據鏈式法則,可以將偏導分解如下:
其中乘號後面的偏導數很容易求得,
因此,採用矩陣的表示方法來表示神經元的計算,如下面這個圖所示。
經過一系列推導可以得到,敏感性(《神經網路設計》這本書中的例子)
的表示式(注意這是個向量),應該是
對於bp演算法來說,最後一層的計算(第m層)是所有計算的開始。其矩陣形式的表示式為
因此如果用矩陣形式表示,那麼權值和偏置值更新的表示式是:
因此,總的說來,反向傳播演算法需要用到的資料是:
1. 學習率
2. 啟用函式相對於其輸入的導數,用於計算
3. 上一層神經元的輸出
4. 每次迭代的權值和偏移
BP反向傳播演算法
本來想把自己報告的ppt寫成部落格,後來公式打起來太麻煩了,不想再敲第二遍了。寫一篇深入淺出,並茂的部落格好難。可以看斯坦福cs231n的課程,因為我發現很多人的部落格的圖和公式直接是截的那邊的圖。bp反向傳播演算法明白了之後其實是比較簡單,現在想想一開始阻礙自己明白的就是向量化的那種表達形式。組會...
反向傳播演算法(BP演算法)
bp演算法 即反向傳播演算法 適合於多層神經元網路的一種學習演算法,它建立在梯度下降法的基礎上。bp網路的輸入輸出關係實質上是一種對映關係 乙個n輸入m輸出的bp神經網路所完成的功能是從n維歐氏空間向m維歐氏空間中一有限域的連續對映,這一對映具有高度非線性。它的資訊處理能力 於簡單非線性函式的多次復...
BP誤差反向傳播演算法
bp演算法通過將輸出誤差反向傳播,將誤差分配到每個權值上,利用梯度更新對所有引數進行調整以達到輸出累計誤差最小 來自andrew ng的machine learning課程 為了簡化概念,先不加上偏置單元 符號介紹 zl i 第 l 層第 i節點的誤差zl i 第 l 層第i節點的輸入值al i 第...