AI系统之【计算图】系列第三篇:计算图跟微分什么关系?怎么用计算图表示自动微分?AI框架自动微分如何通过计算图来实现?
神经网络主要包含前向计算,反向计算,更新可学习参数三个最主要的计算阶段。当用户构造完成一个深度神经网络时,在数学上这个网络对应了一个复杂的带参数的高度非凸函数,求解其中的可学习参数依赖于基于一阶梯度的迭代更新法。手工计算复杂函数的一阶梯度非常容易出错,自动微分(Automatic Differentiation,简称AD)系统就正为了解决这一问题而设计的一种自动化方法。自动微分关注给定一个由原子操作构成的复杂前向计算程序,如何自动生成出高效的反向计算程序。自动微分按照工作模式可分为前向自动微分和反向自动微分,按照实现方式,自动微分又可为:基于对偶数(dual number)的前向微分,基于Tape的反向微分,和基于源代码变换的反向微分。