4.人工神经网络(BP神经网络)

1.概述:Rumelhart,McClelland于1985年提出了BP网络的误差反向后传BP(Back Propagation)学习算法。原理是利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。将误差分摊给各层的所有单元的误差信号进而修正各单元的权值,迭代直到到达可接受的误差或达到指定的次数。

是一种有导师的学习算法,是梯度下降法在多层前馈网中的应用。可看成是线性自适应神经元学习算法的进一步推广。

BP学习算法=前向计算过程+误差反向传播过程

2.模型:
BP网络的神经元模型是改进了感知器神经元模型得到的。
在这里插入图片描述
输入层:Wij=1,f(x)=x;隐层:f(x)=1/(1+e^(-x)) f(x)=(1-e(-x))/(1+e(-x));输出层:f(x)=(1-e(-x))/(1+e(-x)) f(x)=1/(1+e^(-x)) f(x)=kx

若输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元
定义如下
输入向量; x=(x1,x2,…xn)
隐含层输入向量; hi=(hi1,hi2,…hip)
隐含层输出向量; ho=(ho1,ho2,…,hop)
输出层输入向量; yi=(yi1,yi2,…,yiq)
输出层输出向量; yo=(yo1,yo2,…,yoq)
期望输出向量; d=(d1,d2,…,dq)
输入层与中间层的连接权值: Wih
隐含层与输出层的连接权值: Who
隐含层各神经元的阈值: bh
输出层各神经元的阈值: bo
样本数据个数: k=1,2…,m
激活函数: f(·)
误差函数: e=0.5*∑(d(k)-yo(k))^2 从1到q求和

3.算法描述:
(1)网络初始化
给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值 和最大学习次数M。
(2)随机选取第 k个输入样本及对应期望输出
x(k)=(x1(k),x2(k),…,xn(k)) ;
d(k)=(d1(k),d2(k),…,dq(k))
(3)计算隐含层各神经元的输入和输出
在这里插入图片描述
(4)利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值