一、前言
这是一个以误差为主的反向传播运动,旨在获得最优的全局参数矩阵,然后将多层神经网络应用于分类或回归任务。
输入信号向前传输,直到输出产生误差,误差信息向后传播以更新权重矩阵。这两句话很好的描述了信息的流向,在信息的双向流动中可以优化权重,让我想起了北京的夜景,车水马龙,车水马龙。
至于为什么提出反向传播算法,我不能直接应用梯度下降吗?想必大家都有过这样的疑惑。答案肯定是否定的,即使梯度下降很厉害,也不是万能的。梯度下降可以处理导数函数显式的情况,或者那些可以计算误差的情况,比如Logistic回归,可以看作是没有隐藏层的网络;但对于多隐含层的神经网络,输出层可以直接计算误差来更新参数,但隐含层的误差是不存在的,不能直接对其应用梯度下降。相反,误差首先传播回隐藏层,然后应用梯度下降。从最后一层传递误差的过程需要链式法则的帮助,所以反向传播算法可以说是梯度下降在链式法则中的应用。
第二,举个栗子
为了帮助更好的理解反向传播的概念,对其有一个直观的认识,我们以猜数字游戏为例。
2.1两个人猜数字
这个过程类似于无隐层的神经网络,比如logistic回归,小黄帽代表输出层的节点,左侧接收输入信号,右侧产生输出结果,小蓝猫代表误差,引导参数向更好的方向调整。因为小蓝猫可以直接把误差反馈给小黄帽,而且只有一个参数矩阵直接和小黄帽相连,可以通过误差直接优化参数,经过几次迭代误差会降到最小。
同样,节点d的输入信号为:
因为计算机擅长带循环的任务,所以我们可以用矩阵乘法来表示:
因此,非线性变换后隐藏层节点的输出表示如下:
同样,输出层的输入信号表示为权重矩阵乘以前一层的输出:
同样,非线性映射后输出层节点的最终输出表示为:
在权重矩阵的帮助下,输入信号得到每一层的输出,最后到达输出层。可见,权重矩阵在正向传递信号的过程中起到了运输兵的作用,起到了连接的作用。
3.3反向传播
由于梯度下降需要清除每个层中的错误来更新参数,下一个重点是如何将输出层中的错误传播回隐藏层。
同样,隐藏层节点d的误差为:
为了减少工作量,我们愿意用矩阵乘法的形式写:
不难发现,输出层误差是借助转置权重矩阵转移到隐藏层的,这样我们就可以利用间接误差更新与隐藏层相连的权重矩阵。可以看出,权重矩阵在反向传播过程中也起着传输者的作用,但这一次是输出误差的处理,而不是输入信号).
第四,链导数
第三部分介绍了输入信息的前向传播和输出误差的后向传播,并根据得到的误差更新参数。
推导得出以下公式:
然后,更新输入图层中w11的参数。在更新之前,我们还是从后向前推导,直到预见到第一层的w11:
推导出以下公式):
到目前为止,利用链式规则更新各层参数的任务已经完成。
V.引入delta
用链式法则更新权重,你会发现这个方法很简单,但是太冗长了。因为更新过程可以看作是从网络的输入层到输出层从前到后的更新,每次都需要重新计算节点的误差,所以会出现一些不必要的重复计算。其实我们可以直接使用计算出来的节点,这样就可以重新看这个问题,从后往前更新。首先更新后权重,然后利用更新后权重生成的中间值更新前参数。这个中间变量是下面要介绍的增量变量。首先简化了公式,其次减少了计算量,有点动态规划。
接下来用事实说话,我们仔细观察了第四部分输出层w11和隐藏层w11的部分推导和偏置的部分推导过程。你会发现三个公式中有相同的部分,隐藏层参数的部分求导过程中会用到输出层参数的部分求导,这也是引入中间变量delta的原因。
因此,输出层的误差可以表示为:
中国专业统计分析与数据挖掘咨询服务提供商:拓端数据
微信客服号:lico_9e
1.《反向传播算法 t推荐:一文搞懂反向传播算法》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《反向传播算法 t推荐:一文搞懂反向传播算法》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1801886.html