反向传播算法

对于方向传播的理解记录

简单易懂的理解:
1.机器学习:一步步教你理解反向传播方法
2.一文弄懂神经网络中的反向传播法——BackPropagation


上面两个的例子:

反向传播算法_第1张图片
Paste_Image.png

在反向传播的过程中,就是根据输出层的误差来跟新前面的权重

1.隐含层---->输出层的权值更新:

对于图中,我们可以根据计算出的误差和来计算每个前置项的影响程度,也就是通过偏导数的运算
因此,例如例子中,我们想知道每个权重对于最终误差和的影响,即通过链式法则来求得偏导数。

反向传播算法_第2张图片
Paste_Image.png

但是,在得到计算结果的时候,我们为什么定义delta为


反向传播算法_第3张图片
Paste_Image.png

我自己的理解是,定义delta为输出层的加权输入影响总误差的程度
(但是为什么要这样定义。不明白)
因此,下一系列推导中,可以得隐含层出到输出层权重w的更新公式


2.隐含层---->隐含层的权值更新

反向传播算法_第4张图片

其中的一个 作者说的很明白,

方法其实与上面说的差不多,但是有个地方需要变一下,在上文计算总误差对w5的偏导时,是从out(o1)---->net(o1)---->w5,但是在隐含层之间的权值更新时,是out(h1)---->net(h1)---->w1,而out(h1)会接受E(o1)和E(o2)两个地方传来的误差,所以这个地方两个都要计算。

因此,隐含层的权重收到下游节点的影响,我们要计算下游节点的相关
,最后的到隐含层到隐含层的权重跟新公式。

我门定义delta为隐含层的加权输入影响总误差的程度,

反向传播算法_第5张图片
Paste_Image.png

可以得到此层delta和下游节点delta的关系

此图地址:
零基础入门深度学习(3) - 神经网络和反向传播算法


总结

为什么在之前的理解感到困难?我因为在之前的过程中,我没有理解到神经网络中,除了输入层,其他每一层都有激活函数,因为他们都是 神经元。每一个神经元都有一个输入和输出,也就是特征响应的过程。

你可能感兴趣的:(反向传播算法)