BP神經網絡講解以及優缺點


轉載於:https://www.jianshu.com/p/3d96dbf3f764

            http://blog.csdn.net/jiajunlee/article/details/50456921

BP算法基本原理

利用輸出后的誤差來估計輸出層的直接前導層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層的反傳下去,就獲得了所有其他各層的誤差估計。

一個三層BP網絡

 
 

激活函數

  • 必須處處可導(一般都使用S型函數)

使用S型激活函數時,BP網絡輸入與輸出關系

輸入:


 
 

輸出:


 
 

輸出的導數:


 
 

使用S型激活函數時,BP網絡的輸出及其導數圖形:


 
 

根據S激活函數的圖形:

  • net在 -5~0 的時候導數的值為正,且導數的值逐漸增大,說明此時f(x)在逐漸變大 且 變大的速度越來越快
  • net在 0~5 的時候導數的值為正,且導數的值逐漸減小,說明此時f(x)在逐漸變大 但是 變大的速度越來越慢

對神經網絡進行訓練,我們應該盡量將net的值盡量控制在收斂比較快的范圍內。

BP網絡的標准學習算法

學習的過程:

  • 神經網絡在外界輸入樣本的刺激下不斷改變網絡的連接權值,以使網絡的輸出不斷地接近期望的輸出。

學習的本質:

  • 對各連接權值的動態調整

學習規則:

  • 權值調整規則,即在學習過程中網絡各神經元的連接權值變化所依據的一定的調整規則

BP網絡的標准學習算法-算法思想

  1. 學習的類型: 有導師學習

  2. 核心思想將輸出誤差以某種形式通過隱層向輸入層逐層反傳(即,將誤差分攤給各層的所有單元——各層單元的誤差信號,以此來修正各單元權值)
    個人理解 : ** 就如同之前的梯度下降函數每次更新Θ值一樣,每次來一個樣本,就更新Θ值,使得代價函數變得越來越小。這個類似,先給他們的權值賦個隨機初值,然后計算到最后一層(輸出層),若輸出結果與實際值有誤差(這個正常情況下是肯定有的),那么就進行誤差的反向傳播算法,來優化各層的Θ值(權重值)**

  3. 學習的過程: 信號的正向傳播——》誤差的反向傳播

BP網絡的標准學習算法-學習過程

  • 正向傳播
    輸入樣本-----輸入層------各隱層--------輸出層

  • 判斷是否轉入反向傳播階段
    若輸入層的實際輸出(h(x))與期望的輸出(y)不符。

  • 誤差反傳
    誤差以某種形式在各層表示-----修正各層單元的權值(w或者Θ)

  • 最終結果
    網絡輸出的誤差減少到了可以接受的程度(或 進行到預先設定的學習次數為止)

BP網絡的標准學習算法

  • 網絡結構
    輸入層有n個神經元,隱含層有p個神經元,輸出層有q個神經元

  • 變量定義


     
     

     
     

第一步,網絡初始化

給各連接權值分別賦一個區間(-1,1)內的隨機數,設定誤差函數e,給定計算精度值ε和最大學習次數M

第二步,隨機選取第k個輸入樣本以及對應的期望輸出

 
 

第三步,計算隱含層各神經元的輸入和輸出

 
 

第四步,利用網絡期望輸出和實際輸出,計算誤差函數對輸出層的各神經元的偏導數

 
 

可以列出如下等式:

  1.  
     
  2.  
     
  3.  
     

第五步,利用隱含層到輸出層的連接權值、輸出層的

 
 

和隱含層的輸出計算誤差函數對隱含層各神經元的偏導數

 
 

可以列出如下等式:

  1.  
     
  2.  
     
  3.  
     
  4.  
    最下面那個方框是’=‘號

第六步,利用輸出層各神經元的

 
 

和隱含層各神經元的輸出來修正連接權值

 
 
  1.  
     
  2.  
     

第七步,利用隱含層各神經元的

 
 

和輸入層各神經元的輸入參數修正連接權值。

 
 
 
 

第八步,計算全局誤差

 
 

第九步,判斷網絡誤差是否滿足要求,判斷網絡誤差是否滿足要求。當誤差達到預設精度或學習次數大於設定的最大次數,則結束算法。否則,選取下一個學習樣本及對應的期望輸出,返回到第三步,進入下一輪學習。

BP算法直觀解釋

當誤差對權值的偏導數大於零時,權值調整量為負,實際輸出大於期望輸出,權值向減少方向調整,使得實際輸出與期望輸出的差減少。


 
情況1直觀表達

當誤差對權值的偏導數小於零時,權值調整量為正,實際輸出少於期望輸出,權值向增大方向調整,使得實際輸出與期望輸出的差減少。

 
情況二直觀表達

BP神經網絡優缺點:
  1. 多層前向BP網絡的優點:

    • 網絡實質上實現了一個從輸入到輸出的映射功能,而數學理論已證明它具有實現任何復雜非線性映射的功能。這使得它特別適合於求解內部機制復雜的問題;
    • 網絡能通過學習帶正確答案的實例集自動提取“合理的”求解規則,即具有自學習能力;
    • 網絡具有一定的推廣、概括能力。
  2. 多層前向BP網絡的問題:

    • BP算法的學習速度很慢,其原因主要有:

      • 由於BP算法本質上為梯度下降法,而它所要優化的目標函數又非常復雜,因此,必然會出現“鋸齒形現象”,這使得BP算法低效;
      • 存在麻痹現象,由於優化的目標函數很復雜,它必然會在神經元輸出接近0或1的情況下,出現一些平坦區,在這些區域內,權值誤差改變很小,使訓練過程幾乎停頓;
      • 為了使網絡執行BP算法,不能用傳統的一維搜索法求每次迭代的步長,而必須把步長的更新規則預先賦予網絡,這種方法將引起算法低效。
    • 網絡訓練失敗的可能性較大,其原因有:

      • 從數學角度看,BP算法為一種局部搜索的優化方法,但它要解決的問題為求解復雜非線性函數的全局極值,因此,算法很有可能陷入局部極值,使訓練失敗;
      • 網絡的逼近、推廣能力同學習樣本的典型性密切相關,而從問題中選取典型樣本實例組成訓練集是一個很困難的問題。
      • 難以解決應用問題的實例規模和網絡規模間的矛盾。這涉及到網絡容量的可能性與可行性的關系問題,即學習復雜性問題;
      • 網絡結構的選擇尚無一種統一而完整的理論指導,一般只能由經驗選定。為此,有人稱神經網絡的結構選擇為一種藝術。而網絡的結構直接影響網絡的逼近能力及推廣性質。因此,應用中如何選擇合適的網絡結構是一個重要的問題;
      • 新加入的樣本要影響已學習成功的網絡,而且刻畫每個輸入樣本的特征的數目也必須相同;
      • 網絡的預測能力(也稱泛化能力、推廣能力)與訓練能力(也稱逼近能力、學習能力)的矛盾。一般情況下,訓練能力差時,預測能力也差,並且一定程度上,隨訓練能力地提高,預測能力也提高。但這種趨勢有一個極限,當達到此極限時,隨訓練能力的提高,預測能力反而下降,即出現所謂“過擬合”現象。此時,網絡學習了過多的樣本細節,而不能反映樣本內含的規律


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM