1. 前言
反向传播算法的简单计算过程
2. 反向传播算法
2.1 示例及初始数据
图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步:前向传播(计算出输出值 )
计算出隐藏层单元h1的输出值 同理,计算出隐藏层单元h2的输出值 根据h1, h2的值,依次计算出输出层单元o1, o2的输出值[前向传播的计算公式]
Logistic Sigmoid函数:
假设(hypothesis):
[前向传播的输出结果]
a(h1) = 0.593269992 a(h2) = 0.596884378
a(o1) = 0.75136507 a(o2) = 0.77292847
第2步:反向传播(更新权重)
由各输出单元误差计算总误差 以权重W5为例,使用链式法则求W5对总误差产生的影响 链式法则示意图 求 求 求 将以上3个式子结果相乘,得到[反向传播的计算公式]
神经网络在()上的均方误差:
(为输出单元数, 为输出单元值, 为期望输出值,是为后续求导的方便)
链式法则:
结合链式法则求导过程中的公式:
使用表示输出层的误差:
==
因此,可表达为如下形式:
设学习率为0.5,更新W5的值:
同理,更新W6, W7, W8的值:
网友评论