首页
学习
活动
专区
工具
TVP
发布

每天十分钟机器学习之二十六:神经网络的反向传播过程

上一讲介绍了神经网络的前向传播,本讲开介绍反向传播理论,还是以之前的网络为例,不熟悉的同学可以翻看前一讲回顾一下。

反向传播是一个误差传递、权重更新的过程,运用的主要方法就是梯度下降,既然梯度下降需要每一层都有明确的误差才能更新参数,所以接下来的重点是如何将输出层的误差反向传播给隐藏层。

其中输出层、隐藏层节点的误差如图所示,输出层误差已知,接下来对隐藏层第一个节点c作误差分析。还是站在节点c上,不同的是这次是往前看(输出层的方向),可以看到指向c节点的两个蓝色粗箭头是从节点e和节点f开始的,因此对于节点c的误差肯定是和输出层的节点e和f有关。

不难发现,输出层的节点e有箭头分别指向了隐藏层的节点c和d,因此对于隐藏节点e的误差不能被隐藏节点c霸为己有,而是要服从按劳分配的原则(按权重分配),同理节点f的误差也需服从这样的原则,因此对于隐藏层节点c的误差为:

同理,对于隐藏层节点d的误差为:

为了减少工作量,我们还是写成矩阵相乘的形式:

你会发现这个矩阵比较繁琐,如果能够简化到前向传播那样的形式就更好了。实际上我们可以这么来做,只要不破坏它们的比例就好,因此我们可以忽略掉分母部分,所以重新成矩阵形式为:

仔细观察,你会发现这个权重矩阵,其实是前向传播时权重矩阵w的转置,因此简写形式如下:

接下来关于链式求导的问题,前面介绍了输入信息的前向传播与输出误差的后向传播,接下来就根据求得的误差来更新参数。

首先对隐藏层的w11进行参数更新,更新之前让我们从后往前推导,直到预见w11为止:

因此误差对w11求偏导如下:

求导得如下公式(所有值已知):

同理,误差对于w12的偏导如下:

同样,求导得w12的求值公式:

同理,误差对于偏置求偏导如下:

带入上述公式为:

接着对输入层的w11进行参数更新,更新之前我们依然从后往前推导,直到预见第一层的w11为止(只不过这次需要往前推的更久一些):

因此误差对输入层的w11求偏导如下:

求导得如下公式:

同理,输入层的其他三个参数按照同样的方法即可求出各自的偏导,在这不再赘述。

在每个参数偏导数明确的情况下,带入梯度下降公式即可(不在重点介绍):

至此,利用链式法则来对每层参数进行更新的任务已经完成。

祝您的机器学习之旅愉快!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181226G12OCN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券