首页 > 编程语言 > 详细

《机器学习(周志华)》笔记--神经网络(4)--误差逆传播算法(BP):BP算法、BP算法推导

时间:2020-02-15 15:21:23      阅读:111      评论:0      收藏:0      [点我收藏+]

三、误差逆传播算法(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)

 

《机器学习(周志华)》笔记--神经网络(4)--误差逆传播算法(BP):BP算法、BP算法推导

原文:https://www.cnblogs.com/lsm-boke/p/12311313.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!