1. 前言
反向传播算法的简单计算过程
2. 反向传播算法
2.1 示例及初始数据
举例说明反向传播算法的计算流程
偏置单元(Bias): b1 = b2 = 1
输入单元(Input): i1 = 0.05 i2 = 0.10
隐藏单元(Hidden): h1, h2
输出单元(Output): o1, o2
权重(Weight):W(b1) = 0.35 W(b2) = 0.60
W1 = 0.15 W2 = 0.20 W3 = 0.25 W4 = 0.30
W5 = 0.40 W6 = 0.45 W7 = 0.50 W8 = 0.55
期望输出(Target Output):T(o1) = 0.01 T(o2) = 0.99
[ 目标 ] 输入值 i1, i2 ,经过反向传播,使得输出值o1, o2与期望输出T(o1), T(o2)接近
2.2 算法流程
第1步:前向传播(计算出输出值 )
[前向传播的计算公式]
Logistic Sigmoid函数:
假设(hypothesis):
[前向传播的输出结果]
a(h1) = 0.593269992 a(h2) = 0.596884378
a(o1) = 0.75136507 a(o2) = 0.77292847
第2步:反向传播(更新权重)
[反向传播的计算公式]
神经网络在(
)上的均方误差:
![]()
(
为输出单元数,
为输出单元值,
为期望输出值,
是为后续求导的方便)
链式法则:
结合链式法则求导过程中的公式:
使用
表示输出层的误差:
=
=
因此,
可表达为如下形式:
设学习率
为0.5,更新W5的值:
同理,更新W6, W7, W8的值: