没有合适的资源?快使用搜索试试~ 我知道了~
首页BP神经网络计算过程详解
BP神经网络计算过程详解
需积分: 43 4.3k 浏览量
更新于2023-05-30
评论 2
收藏 1002KB DOCX 举报
1、输入层的每个节点,都要与的隐藏层每个节点做点对点的计算,计算的方法是加权求和+激活 2、利用隐藏层计算出的每个值,再用相同的方法,和输出层进行计算。 3、隐藏层用都是用Sigmoid作激活函数,而输出层用的是Purelin。这是因为Purelin可以保持之前任意范围的数值缩放,便于和样本值作比较,而Sigmoid的数值范围只能在0~1之间。 4、起初输入层的数值通过网络计算分别传播到隐藏层,再以相同的方式传播到输出层,最终的输出值和样本值作比较,计算出误差,这个过程叫前向传播(Forward Propagation)。 误差信号反向传递过程
资源详情
资源评论
资源推荐

BP 神经网络计算过程详解,
神经网络结构主要包括:输入层、隐藏层和输出层
BP(Back Propagaon)神经网络分为两个过程
(1)工作信号正向传递过程
(2)误差信号反向传递过程
1
2
工作信号正向传递过程(前向传播):
四个步骤:
1、输入层的每个节点,都要与的隐藏层每个节点做点对点的计算,计算的方法是加权求和+激活
2、利用隐藏层计算出的每个值,再用相同的方法,和输出层进行计算。
3、隐藏层用都是用 Sigmoid 作激活函数,而输出层用的是 Purelin。这是因为 Purelin 可以保持之前任意
范围的数值缩放,便于和样本值作比较,而 Sigmoid 的数值范围只能在 0~1 之间。
4、起初输入层的数值通过网络计算分别传播到隐藏层,再以相同的方式传播到输出层,最终的输出值
和样本值作比较,计算出误差,这个过程叫前向传播(Forward Propagaon)。
误差信号反向传递过程
两个步骤
BP 算法是一种计算偏导数的有效方法,它的基本原理是:
5、利用前向传播最后输出的结果来计算误差的偏导数(前向传播后求偏导),
6、再用这个偏导数和前面的隐藏层进行加权求和
7、如此一层一层的向后传下去(隐藏层间偏导加权求和)
8、直到输入层(不计算输入层)(也就是第一隐藏层到输入层的偏导加权求和)
9、最后利用每个节点求出的偏导数来更新权重。
为了便于理解,后面一律用“残差(error term)”这个词来表示误差的偏导数。
输出层→隐藏层:残差 = -(输出值-样本值) * 激活函数的导数
隐藏层→隐藏层:残差 = (右层每个节点的残差加权求和)* 激活函数的导数
如果用 Sigmoid(logsig)作激活函数,那么:Sigmoid 导数 = Sigmoid*(1-Sigmoid)
输出层→隐藏层:残差 = -(Sigmoid 输出值-样本值) * Sigmoid*(1-Sigmoid) = -(输出值-样本值)
输出值
(1-输
出值)
隐藏层→隐藏层:残差 = (右层每个节点的残差加权求和)* 当前节点的 Sigmoid*(1-当前节点的 Sigmoid)

残差全部计算好后,就可以更新权重了:
输入层:权重增加 = 输入值 * 右层对应节点的残差 * 学习率
隐藏层:权重增加 = 当前节点的 Sigmoid * 右层对应节点的残差 * 学习率
偏移值的权重增加 = 右层对应节点的残差 * 学习率
学习率是一个预先设置好的参数,用于控制每次更新的幅度。
此后,对全部数据都反复进行这样的计算,直到输出的误差达到一个很小的值为止。
以上介绍的是目前最常见的神经网络类型,称为前馈神经网络 (FeedForward Neural Network),由于它一
般是要向后传递误差的,所以也叫 BP 神经网络(Back Propagaon Neural Network)。
文字的公式看上去有点绕,下面是一个详细的计算过程(非机器封包直接计算):
1、问题描述+随机生成初始权重
问题描述中,x1、x2 是神经网络的两个输入值,而 y 就是实际输出值
初始权重(层与层之间边的值),是一个(-1,1) 的随机数
可以通过 Python 的 random 库获取
import random
print random.random()

print random.random()
print random.random()
print random.random()
print random.random()
print random.random()
1
2
3
4
5
6
7
#结果
0.543717672492
0.0976781735159
0.373970033901
0.596229996543
0.741053525016
0.0915456485905
[Finished in 0.2s]
1
2
3
4
5
6
7
8
2、对输入层 ->隐藏层节点进行加权求和
剩余10页未读,继续阅读



















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0