【通俗讲解】BP神经网络
參考文章:http://www.jianshu.com/p/3d96dbf3f764
David Rumelhart 和 J.McClelland 于1985年提出了BP網絡的誤差反向后傳BP(Back propagation)學習算法
BP算法基本原理
利用輸出后的誤差來估計輸出層的直接前導層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層的反傳下去,就獲得了所有其他各層的誤差估計。
一個三層BP網絡
激活函數
- 必須處處可導(一般都使用S型函數)
使用S型激活函數時,BP網絡輸入與輸出關系
輸入:
輸出:
輸出的導數:
使用S型激活函數時,BP網絡的輸出及其導數圖形:
根據S激活函數的圖形:
- net在 -5~0 的時候導數的值為正,且導數的值逐漸增大,說明此時f(x)在逐漸變大 且 變大的速度越來越快
- net在 0~5 的時候導數的值為正,且導數的值逐漸減小,說明此時f(x)在逐漸變大 但是 變大的速度越來越慢
對神經網絡進行訓練,我們應該盡量將net的值盡量控制在收斂比較快的范圍內。
BP網絡的標準學習算法
學習的過程:
- 神經網絡在外界輸入樣本的刺激下不斷改變網絡的連接權值,以使網絡的輸出不斷地接近期望的輸出。
學習的本質:
- 對各連接權值的動態調整
學習規則:
- 權值調整規則,即在學習過程中網絡各神經元的連接權值變化所依據的一定的調整規則
BP網絡的標準學習算法-算法思想
學習的類型: 有導師學習
核心思想: 將輸出誤差以某種形式通過隱層向輸入層逐層反傳(即,將誤差分攤給各層的所有單元——各層單元的誤差信號,以此來修正各單元權值) 個人理解 : 就如同之前的梯度下降函數每次更新Θ值一樣,每次來一個樣本,就更新Θ值,使得代價函數變得越來越小。這個類似,先給他們的權值賦個隨機初值,然后計算到最后一層(輸出層),若輸出結果與實際值有誤差(這個正常情況下是肯定有的),那么就進行誤差的反向傳播算法,來優化各層的Θ值(權重值)
學習的過程: 信號的正向傳播——》誤差的反向傳播
BP網絡的標準學習算法-學習過程
-
正向傳播 輸入樣本-----輸入層------各隱層--------輸出層
-
判斷是否轉入反向傳播階段 若輸入層的實際輸出(h(x))與期望的輸出(y)不符。
-
誤差反傳 誤差以某種形式在各層表示-----修正各層單元的權值(w或者Θ)
-
最終結果 網絡輸出的誤差減少到了可以接受的程度(或 進行到預先設定的學習次數為止)
BP網絡的標準學習算法
-
網絡結構輸入層有n個神經元,隱含層有p個神經元,輸出層有q個神經元
-
變量定義
第一步,網絡初始化
給各連接權值分別賦一個區間(-1,1)內的隨機數,設定誤差函數e,給定計算精度值ε和最大學習次數M。
第二步,隨機選取第k個輸入樣本以及對應的期望輸出
第三步,計算隱含層各神經元的輸入和輸出
第四步,利用網絡期望輸出和實際輸出,計算誤差函數對輸出層的各神經元的偏導數
可以列出如下等式:
第五步,利用隱含層到輸出層的連接權值、輸出層的和隱含層的輸出計算誤差函數對隱含層各神經元的偏導數
可以列出如下等式:
第六步,利用輸出層各神經元的和隱含層各神經元的輸出來修正連接權值
第七步,利用隱含層各神經元的和輸入層各神經元的輸入參數修正連接權值。
第八步,計算全局誤差
第九步,判斷網絡誤差是否滿足要求,判斷網絡誤差是否滿足要求。當誤差達到預設精度或學習次數大于設定的最大次數,則結束算法。否則,選取下一個學習樣本及對應的期望輸出,返回到第三步,進入下一輪學習。
BP算法直觀解釋
當誤差對權值的偏導數大于零時,權值調整量為負,實際輸出大于期望輸出,權值向減少方向調整,使得實際輸出與期望輸出的差減少。
情況1直觀表達當誤差對權值的偏導數小于零時,權值調整量為正,實際輸出少于期望輸出,權值向增大方向調整,使得實際輸出與期望輸出的差減少。
情況二直觀表達作者:東皇Amrzs 鏈接:http://www.jianshu.com/p/3d96dbf3f764 來源:簡書 著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。總結
以上是生活随笔為你收集整理的【通俗讲解】BP神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【实例讲解】JS中形参、实参可以不一致
- 下一篇: 【通俗理解】锁存器,触发器,寄存器和缓冲