计算图
计算图是一种图形化表示计算过程的方法,通常用于机器学习和深度学习中。在计算图中,节点代表操作(例如加法、乘法等),边代表数据流动(即操作的输入和输出)。通过计算图,可以清晰地展示计算过程中各个操作之间的依赖关系
结点
:操作
边
:数据
计算图中各个结点只需要处理和自己有关的计算,也就是计算图可以集中精力于局部计算。
链式法则
链式法则是微积分中的一个基本定理,用于求解复合函数的导数。它描述了如果一个函数由另一个函数所组成,而这两个函数都是可微的,那么复合函数的导数可以通过这两个函数的导数的乘积来计算。
d y d x = d y d u d u d x \frac{dy}{dx}=\frac{dy}{du}\frac{du}{dx} dxdy=dudydxdu
图5-7的过程:
正向传播
- 首先输出x、y
- 通过第一个结点+输出t=x+y
- 通过第二个结点 2 ^2 2输出 z = t 2 = ( x + y ) 2 z=t^2=(x+y)^2 z=t2=(x+y)2
反向传播
- 首先输出 ∂ z ∂ z \frac{\partial z}{\partial z} ∂z∂z
- 通过第一个结点 * 上 ∂ z ∂ t \frac{\partial z}{\partial t} ∂t∂z
- 然后会有两个方向通往x的方向* ∂ t ∂ z \frac{\partial t}{\partial z} ∂z∂t,通往y的方向* ∂ t ∂ y \frac{\partial t}{\partial y} ∂y∂t
之所以能够这样反向传播,基础就是链式法则
反向传播
加法结点的反向传播
z = x + y z=x+y z=x+y
正常传播的计算图
反向传播的计算图