专栏首页拇指笔记【动手学深度学习笔记】之正向传播与反向传播

【动手学深度学习笔记】之正向传播与反向传播

1. 正向传播与反向传播

在训练深度学习模型时,正向传播和反向传播之间相互依赖。一方面正向传播的计算可能依赖于模型参数的当前值而这些模型参数是在反向传播的梯度计算后通过优化算法迭代的。另一方面,反向传播的梯度计算可能依赖于各变量的当前值,而这些变量的当前值是通过正向传播计算得到的。

因此,在模型参数初始化完成后,我们交替地进行正向传播和反向传播,并根据反向传播计算的梯度迭代模型参数。

1.1 正向传播

正向传播是指对神经网络沿输入层到输出层的顺序,依次计算并存储模型的中间变量(每一层的输出)。

下面以一个使用权重衰减的单隐藏层的多层感知机为例,描述一下正向传播。

假设输入,隐藏层(h个隐藏单元)权重参数不考虑偏差参数的情况下,产生的中间变量为

将中间变量输入按元素运算的激活函数后,得到隐藏层的输出为

假设输出层(q个神经单元)权重参数为不考虑偏差参数的情况下,得到的输出层输出为

至此,正向传播完成,下面计算一下损失。

假设损失函数为,样本标签为,得到单个数据样本的损失项为

根据权重衰减的定义,给定超参数,惩罚项为

最终得到模型在样本上代正则化的损失为

将称为有关给定数据样本的目标函数。

1.1.1正向传播的计算图

通过计算图,我们可以可视化运算符和变量在计算中的依赖关系。其中左下角是输入,右上角是输出,箭头指向为输入,圆形为运算符号,方形为变量。

1.2 反向传播

总的来说,反向传播依据微积分中的链式法则,沿着从输出层到输入层的顺序,依次计算并存储目标函数有关神经网络各层的中间变量以及参数的梯度。

我们首先来回顾一下链式法则。对于函数和,通过链式法则,存在

反向传播就是依据链式法则的原理来计算神经网络中的参数梯度。对于上述无偏差参数的神经网络而言,它的参数是和。因此反向传播的目的就是计算和。

首先,根据目标函数,我们首先需要计算关于和的偏导数。

根据链式法则关于的梯度表达式和上式,可以得到

接下来,计算惩罚项关于和的梯度表达式

然后将沿着目标函数传播向输出层,可以计算出输出层变量与隐藏层权重参数之间的梯度表达式

现在,我们可以计算出关于的梯度表达式

沿着输出层向隐藏层继续反向传播,隐藏层变量的梯度可以这样计算

由于激活函数是按元素运算的,中间变量的梯度的计算需要使用按元素乘法符⊙

最终得到关于的梯度表达式

根据两式,我们可以计算并存储目标函数有关神经网络参数的梯度。

小结

  • 正向传播沿着从输入层到输出层的顺序,依次计算并存储神经网络的中间变量。
  • 反向传播沿着从输出层到输入层的顺序,依次计算并存储神经网络的中间变量和参数的梯度。

本文分享自微信公众号 - 拇指笔记(shuzhi990),作者:拇指笔记

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【动手学深度学习笔记】之读取和存储

    存储和读取Tensor可以分别使用save函数和load函数实现。save函数的操作对象包括模型、张量和字典等。

    树枝990
  • VSCode配置Python环境指南

    我之前一直在用jupyter notebook来写python的,但是这两天打算写个爬虫玩玩,所以配置一下VSCode用来写python。

    树枝990
  • 【动手学深度学习笔记】之线性回归

    线性回归是单层神经网络,设计的概念和技术适用于大多数深度学习模型;因此,我们以线性回归为例,学习深度学习模型的基本要素和表示方法。

    树枝990
  • caffe详解之反向传播

    在这里,我们先按照周志华《机器学习》的反向传播理解思路进行公式推导,对后面深入理解深度神经网络中的反向传播预热!

    AI异构
  • 分分钟探索HashMap的原理

    Hello大家好,我是兔君哦,好久没和大家见面了,我就在可视化系列中乱入一下吧!今天给大家带来的是HashMap的原理,希望对大家有帮助~

    萌兔IT
  • 优质产品需求文档(PRD)写作三大原则

    在上一篇文章中有介绍,产品经理的两项主要职责包括:对产品机会进行评估,以及对开发的产品进行评估。而定义即将开发上线的产品,则需要借助产品需求文档,来进行产品的...

    奔跑的小鹿
  • 使用Docker部署ONLYOFFICE Document Server

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

    hotqin888
  • 优质产品需求文档(PRD)写作三大原则

    在上一篇文章中有介绍,产品经理的两项主要职责包括:对产品机会进行评估,以及对开发的产品进行评估。而定义即将开发上线的产品,则需要借助产品需求文档,来进行产品的...

    奔跑的小鹿
  • 元素居中的多种实现方式!

    优点:只需在子元素child上设置css样式,不用关心父元素的 缺点:兼容性较差,如果需要兼容,更改html样式,改为table样式

    十月梦想
  • DataFrame 数据合并实现(merge,join,concat)

    merge 函数通过一个或多个键将数据集的行连接起来。 场景:针对同一个主键存在的两张包含不同特征的表,通过主键的链接,将两张表进行合并。合并之后,两张表的行...

    砸漏

扫码关注云+社区

领取腾讯云代金券