购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2.6 计算图

大多数的神经网络参数训练、模型更新的过程都离不开前向传播和反向传播,其中涉及大量的运算,如果仅使用公式来描述的话会很复杂,如2.2.5节所示。因此引入计算图(Computation Graph)的概念。计算图是一种用于描述计算过程的数据结构,其基本元素包括节点(node)和边(edge),节点代表的是数据,也就是变量,包括标量、矢量、张量等;而边则表示的则是操作,也就是函数。计算图中节点之间的结构关系也被称为是拓扑结构(Topological Structure)。用计算图表示函数计算 z = f x y )及复合函数 y = f g h x ))),如图2.15所示。

图2.15 计算图示例

使用计算图进行求导操作也是比较清晰的,可以直观地表示链式法则。对于复合函数求导有两种情况。第一种情况(图2.16)为:

图2.16 链式求导情况一

第二种情况(图2.17)是:

图2.17 链式求导情况二

常见的函数计算都是由上述两种方式互相结合形成,需要灵活应用链式法则求导以便计算梯度,式(2.41)给出了利用计算图对常见复合函数的求导过程。

式中, a =1, b =2,简单计算后可知 c =3, d =3, e =9,对式(2.41)所示计算求导可得:

利用计算图表示上述计算过程及求导结果如图2.18所示。

图2.18 计算图运算示例

计算图的主要目的是以图形化的方式来表示数学运算过程,以更清晰明了地说明复杂的运算逻辑以及数据的流动轨迹,并且使得深度学习中的反向传播和梯度计算能够更加方便快捷。一般来讲构建计算图主要分为以下几个步骤:

1)定义输入数据及其初始值。

2)根据定义的运算逻辑创建响应的节点以及节点之间的边连接关系。

3)从输入节点到输出节点按照计算顺序完成各节点的数据运算。

4)利用计算图前向传播(Forward Propagation)获得输出。

5)根据反向传播(Backward Propagation)利用计算图计算梯度进行参数优化。

鉴于计算图拥有包括易于理解及可视化、反向传播方便等优点,计算图被广泛应用于机器学习,尤其是在涉及梯度计算、优化算法和自动求导等方面,在PyTorch、TensorFlow、PaddlePaddle等深度学习框架中都广泛采用了计算图来支持其复杂的运算。 BNOq/gsAc6wSlOhAVd6hyGTn+ub93jy6eXkhavuPmRZtEaWzoz5f8mKGx4Aykl0r

点击中间区域
呼出菜单
上一章
目录
下一章
×