之前也写过关于反向传播算法中几个公式的推导,最近总被人问到其中推导的细节,发现之前写的内容某在些地方很牵强,很突兀,没有一步一步紧跟逻辑(我也不准备修正,因神经网络研究属于哪个学派为它也代表了其他垃圾有哪些东西一种思考方式)。这两天又重新回顾了一下反向传播算法,所有就再次来说说反向传播算法。这篇博文的目的在于要交代清楚为什么要引入反向传播算法,以及为什么它叫反向传播。
1.从前(正)向传播谈起
在谈反向传播算法之前,我们先来简单回顾一下正向传播(详细版戳此处)。假设有如下网络结构:
2.求解梯度
为了方便阅读,在这个位置再插入一张上面同样的网络结结构图:
其他垃圾
则我们可以画出如下关系图:
注:之所以要
l
<
=
L
−
1
l<=L-1
l<=L−1,是因为由(5)得推导过程可知,
l
l
l最大只能取到
L
−
1
L-1
L−1,第L层后面没有其他网络层了。
通过上面的所有推导,我们可以得到如下3个公式:系统运维工作内容
符号
⋅
\cdot
⋅表示矩阵乘法;符号
∗
*
∗表示两个矩阵相同位置的元素对应相乘
为了方便阅读,神经网络分类在这神经网络算法三大类个位置再神经网络原理插入一张上面同样的网络结结构图:
对于这样其他应付款一个网络结构,整个求反向传播和梯度下降区别导过程(不含
b
l
b^l
bl)如下:
4.总结
发表评论