“深度学习”学习日记。误差反向传播法--计算图

2023.1.14

在昨天的神经网络学习算法的实现中,遇到使用数值微分法连续计算梯度运行速度慢的问题,然后使用了误差反向传播法去连续计算梯度而大幅提高运行速度。

今天就开始学习 误差反向传播法 这一个章节。

一,计算图:

计算图是用图形(数据结构图)去表示计算过程, 

用两个例子帮助理解:

问题1:我使用九折优惠卷去购买2个单价为100元的篮球,求应付金额? 用计算图去求解:

 这里将 “× 2”,“× 0.9 ”,作为一个整体用⚪括起来了,只用一个⚪表示运算“×”也是可行的。

 问题2:

在问题1的基础上我再买3个单价为200的足球,应付金额多少?

这问题里我们只需要增加一个节点就可以计算金额了。

总结一下计算图解题的流程:

1,构建计算图;

2,在计算图上,从左向右进行计算;

这里从左向右计算是一种正方向传播,就像数值微分法一样,称为正向传播,而从上图来看,从右向左传播称为反向传播。

二、局部计算:

这再通过一个问题去理解他,在问题1、问题2的基础上,我还购买了一些原价价值为1000元的商品:

 

这里可以观察到计算图可以通过局部计算而获得结果。局部运算值,无论发生了什么都只能根据与自己有关的信息输出接下来的结果,而这里的各个节点就是局部运算,就意味着我们可以并不关心这1000是怎么来的,只要相加在一起就好。

所以,计算图以集中精力于局部计算,无论全局计算是多么的复杂,只有结点传递他的计算结果,就可以获得全局的复杂计算结果。

 计算图的优点:

1,无论全局运算多么复杂,我们都可以通过节点(局部计算)去简化问题;

2,他可以将过程计算的结果全部储存起来;

3,计算图可以通过反向传播高效传递计算导数;

关于如何反向传播,再通过一个问题去理解。

问题3,在问题1的基础上,如果应付金额增加1元,会有什么变化?

如图所示,这意味着,如果应付金额增加1元,即反映篮球涨价2.2元。

如果我们只是求解了应付金额的导数,那么“应付金额关于优惠卷的导数”、“应付金额关于篮球个数的导数”,通过中间的局部计算都可以以同样的方式算出来。并且,计算中途的导数结果也可以“共享”。

综上所述,我们使用计算图的根本目的是,可以通过正向传播、反向传播高效率的计算各个函数的导数值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值