自动微分

自动微分#

内容介绍#

这一节里面主要是围绕 AI 框架、或者训练平台的自动微分功能。AI 框架中关于自动微分的一个重要性不言而喻,实际上自动微分是贯穿整个 AI 框架的全流程。没有了自动微分,也就没有了 AI 框架最核心的功能。为什么这么说呢?可以想象一下,假设在实现一个神经网络模型的时候,一般开发者只会使用 Pytorch 的 API 实现一个正向的网络表达式,可是网络模型的反向怎么表示呢?

实际上除了正向的表示是用户手工的地去构建,反向的表示、自动微分的实现、正反向的链接关系都是由 AI 框架,里面的自动微分功能去实现的。因此说自动微分这个功能在 AI 框架里面是非常的重要。

在接下来的内容,主要是了解计算机实现微分的基本概念,其实微分的实现方式分为很多种,有数字微分,符号微分,自动微分。函数的微分是指对函数的局部变化的一种线性描述。微分可以近似地描述当函数自变量的取值作足够小的改变时,函数的值是怎样改变的。

微分在数学中的定义:由 \(y\)\(x\) 的函数 \((y=f(x))\)。从简单的 \(x-y\) 座标系来看,自变数 \(x\) 有微小的变化量时 \((d/dx)\),应变数 \(y\) 也会跟着变动,但 \(x\)\(y\) 的变化量都是极小的。当 \(x\) 有极小的变化量时,我们称对 \(x\) 微分。微分主要用于线性函数的改变量,这是微积分的基本概念之一。

在具体实现自动微分的过程中,主要有 2 种实现模式,前向和向后微分。前向微分和后向微分为了在数学上方便表达,会引入一个亚克比原理,或者叫做亚克比矩阵。

对微分进行表示,不过这仅限于数学表示,实际上实现的过程中更多的是通过以下三种方法实现:

1)表达式或者图的方式;2)操作符重载(object-oriented);3)源码转换 AST。

最后来去畅想自动微分的未来和挑战,来去回答我们到底要不要学一个 AI 框架呢?学模型算法和原理才是核心?AI 框架未来的核心点机制将会如何演进?

小结与思考#

  • 了解 AI 框架实现中最重要的自动微分原理

  • 知道业界主流的 AI 框架的具体实现方式

  • 自动微分的技术未来发展动向与面临的挑战

本节视频#