《機器學習(周志華)》筆記--神經網絡(4)--誤差逆傳播算法(BP):BP算法、BP算法推導


三、誤差逆傳播算法(BP)

   1、BP算法

  多層網絡的學習能力比單層感知機強得多。欲訓練多層網絡,簡單感知學習規則顯然不夠了,需要更強大的學習算法。誤差逆傳播(errorBackPropagation,簡稱BP)算法就是其中最傑出的代表。BP算法是迄今最成功的神經網絡學習算法。

  BP網絡:用BP算法訓練的多層前饋神經網絡。

    

  需通過學習確定的參數數目:(d+1)*q+(q+1)*l 。

  2、BP算法推導

  可利用梯度下降法修改權值向量和閾值,需通過學習確定的參數:

    (1)輸入層與隱層之間的權值

    (2)隱層神經元的閾值

    (3)隱層與輸出層之間的權值

    (4)輸出層的閾值

      

                  

推算過程:

           

           

          

總結:

         

 代碼實現:

#BP神經網絡
import numpy as np
X=np.array([[0,0,-1],[0,1,-1],[1,0,-1],[1,1,-1]])
Y=np.array([[0],[1],[1],[0]])

V = (np.random.rand(3,2)-0.5)*2/np.sqrt(2)
W = (np.random.rand(3,1)-0.5)*2/np.sqrt(2)
i=1

while i<2000:
    B=1/(1+np.exp(-np.dot(X,V)))
    ones=-np.ones((4,1))
    B=np.hstack((B,ones))
    Y_h=1/(1+np.exp(-np.dot(B,W)))
    G= (Y-Y_h)*Y_h*(1-Y_h)
    E=B*(1-B)*np.dot(G,W.T)
    W=W+np.dot(B.T,G)
    V=V+np.dot(X.T,E[:,:-1])
    i=i+1
print(Y_h)

 


免責聲明!

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



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