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

2023.1.14

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

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

一,计算图:

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

用两个例子帮助理解:

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

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

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

 问题2:

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

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

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

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

1,构建计算图;

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

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

二、局部计算:

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

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

 

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

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

 计算图的优点:

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

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

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

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

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

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

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

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

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

你可能感兴趣的:(深度学习,学习,人工智能)