深度学习入门(6)误差反向传播基础---计算图与链式法则

在我的第三篇博文《深度学习入门(3)神经网络参数梯度的计算方式》中详细介绍了通过微分方式计算神经网络权重参数的梯度。但是数值微分的方式计算梯度效率较低。后续博文会介绍另外一种更加高效的梯度计算方式---误差的反向传播。

这篇文章介绍的是误差反向传播基础---计算图与链式法则相关的一些内容。

理解误差反向传播的两种方式:

1,基于数学式

2,基于计算图(computational graph)

本文主要介绍计算图的方式,误差是如何进行反向传播的。

1.计算图

计算图将计算过程用图形表示出来。这里的图形是数据结构图。

1.1用计算图进行计算

 

 构建了计算图后,从左向右进行计算。就像电路中的电流流动一样,计算结果从左
向右传递。到达最右边的计算结果后,计算过程就结束了。

计算图计算流程:

1.构建计算图。
2.在计算图上,从左向右进行计算。

2从左向右进行计算是一种正方向上的传播,简称为正向传播 forward propagation)。正向传播是从计算图出发点到结束点的传播。既然有正向传播这个名称,当然也可以考虑反向(从图上看的话,就是从右向左)的传播。实际上,这种传播称为反向传播 backward propagation)。

1.2 局部计算

计算图的特征是可以通过传递“局部计算”获得最终结果。“局部”这个词的意思是“与自己相关的某个小范围”。局部计算是指,无论全局发生了什么,都能只根据与自己相关的信息输出接下来的结果。

计算图可以集中精力于局部计算。无论全局的计算有多么复杂,各个步骤所要做的就是对象节点的局部计算。虽然局部计算非常简单,但是通过传递它的计算结果,可以获得全局的复杂计算的结果。

1.3计算图优势

1. 通过局部计算,简化问题

2. 利用计算图可以将中间的计算结果全部保存起来(比如,计算进行到2个苹
果时的金额是200日元、加上消费税之前的金额650日元等)

3. 通过反向传播高效计算导数

上述问题中,我们计算了购买2个苹果时加上消费税最终需要支付的金额。这里,假设我们
想知道苹果价格的上涨会在多大程度上影响最终的支付金额,即求“支付金额关于苹果的价格的导数”。设苹果的价格为x,支付金额为L,则相当于求αL/αx。这个导数的值表示当苹果的价格稍微上涨时,支付金额会增加多少?

如图所示,反向传播使用与正方向相反的箭头(粗线)表示。反向传播传递“局部导数”,将导数的值写在箭头的下方。在这个例子中,反向传播从右向左传递导数的值(1 1.1 2.2)。从这个结果中可知,“支付金额关于苹果的价格的导数”的值是2.2。这意味着,如果苹果的价格上涨1日元,最终的支付金额会增加2.2日元(严格地讲,如果苹果的价格增加某个微小值,则最终的支付金额将增加那个微小值的2.2倍)。

2链式法则

反向传播是将局部导数向正方向的反方向(从右到左)传递, 传递这个局部导数的原理,是基于链式法则( chain rule)的。

2.1计算图的反向传播

假设存在y = f(x)的计算,这个计算的反向传播如图所示。

2.2什么是链式法则

介绍链式法则时,我们需要先从复合函数说起。复合函数是由多个函数构成的函数。

 

2.3链式法则和计算图

 

总结

1.介绍了计算图的基本概念与计算方式;
2.链式法则相关概念;

如果内容对你有帮助,感谢点赞+关注哦!

更多干货内容持续更新中…

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿_旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值