自动微分背景

什么是自动区别?

自动分化(也被称为autodiff广告, 要么算法分化)是深度学习一种广泛使用的工具。看到在自动微分书籍。它是用于创建和训练复杂深刻的学习模式,而无需人工计算衍生工具的优化尤其有用。对于示例来说明如何创建和自定义深度学习模式,培训环路,损失函数,见定义定制培训循环,损失函数,与网络

自动分化是一组用于评估数值衍生物(梯度)技术。该方法使用用于区分符号规则,这比有限差分近似更准确。不同于纯粹的象征性的方法,自动微分计算表达式的计算数值早,而不是进行大符号计算。换句话说,自动微分计算在特定数值衍生物;它不构造符号表达式为衍生物。

  • 转发模式评估通过与评价函数本身的操作同时执行的基本操作衍生物的数值衍生物。如在下一节中所详述,该软件执行上的计算图表这些计算。

  • 反向模式自动微分使用正向模式计算图形的延伸通过该图的反向遍历以使梯度的计算。由于软件运行的代码来计算函数及其导数,它在数据结构称为记录操作跟踪

正如许多研究者已经注意到(例如,Baydin,Pearlmutter,拉杜尔和西斯金德[1]),对于许多变量的标量函数,反向模式比正向模式更高效地计算出梯度。由于深学习损失函数是所有的权重的标量函数,深度学习工具箱™自动分化采用反向模式。

转发模式

考虑评估该函数及其梯度的问题:

F X = X 1 EXP - 1 2 X 1 2 + X 2 2

自动分化工作在特定的点。在这种情况下,采取X1= 2,X2= 1/2。

以下计算图形编码函数的计算FX)。

为了计算的梯度FX使用正向模式),则计算在同一方向同一图形,但修改基于差异化的基本规则计算。为了进一步简化计算,则在各衍生物的子表达式的值填ü一世当你去时。计算整个梯度,必须为相对于每个独立变量的偏导数遍历图形两次,一次。链中的规则中的每个子表达式具有一个数字值,所以整个表达具有相同的排序评价图表作为函数本身。

计算是链式法则的重复应用。在这个例子中,所述衍生物的F关于X1扩展为以下表达式:

d F d X 1 = d ü 6 d X 1 = ü 6 ü - 1 + ü 6 ü ü X 1 = ü 6 ü - 1 + ü 6 ü ü ü 4 ü 4 X 1 = ü 6 ü - 1 + ü 6 ü ü ü 4 ü 4 ü 3 ü 3 X 1 = ü 6 ü - 1 + ü 6 ü ü ü 4 ü 4 ü 3 ü 3 ü 1 ü 1 X 1

ü ˙ 一世 表示表达式的衍生物ü一世关于X1。使用的评价值ü一世从功能评价,则计算的偏导数F关于X1如示于下图。请注意的所有值 ü ˙ 一世 当你从顶部穿过图表底部变得可用。

为了计算相对于该偏导数X2,你穿越了类似的计算图表。因此,当计算函数的梯度,图遍历的数量是相同的变量数。这个过程是典型的深学习应用程序,其中有变数成千上万太慢。

反向模式

反向模式使用的计算图表的一个向前遍历设置跟踪。然后,它计算该函数的整个渐变中在相反方向上的曲线图的一个遍历。对于深学习应用,这种模式更为高效。

后面反向模式的理论也基于链式法则,与上划线表示相关联的伴随变量一起。对于伴随变量ü一世

ü ¯ 一世 = F ü 一世

在所述计算图中,从一个可变有助于对应伴随变量通过其在链中规则术语每个传出箭头的条款。例如,可变ü-1具有出射箭头两个变量ü1ü6。该图有关联的方程

F ü - 1 = F ü 1 ü 1 ü - 1 + F ü 6 ü 6 ü - 1 = ü ¯ 1 ü 1 ü - 1 + ü ¯ 6 ü 6 ü - 1

在这个计算中,回顾说, ü 1 = ü - 1 2 ü6=üü-1,您将获得

ü ¯ - 1 = ü ¯ 1 2 ü - 1 + ü ¯ 6 ü

在图的遍历向前,软件计算中间变量ü一世。在反向遍历,从种子值开始 ü ¯ 6 = F F = 1 ,反向模式计算得到的所有变量的伴随值。因此,反向模式,计算在短短一个计算梯度,节约了大量时间相比,转发模式。

下图显示了梯度的在反向模式的功能的计算

F X = X 1 EXP - 1 2 X 1 2 + X 2 2

再次,计算需要X1= 2,X2= 1/2。反向模式中的计算依赖于ü一世被该函数的原始计算图形的计算过程中获得的值。在该图的右侧部分,伴随变量的计算的值旁边显示的伴随变量名,使用该公式从该图的左侧部分。

最终梯度值如出现 ü ¯ 0 = F ü 0 = F X 2 ü ¯ - 1 = F ü - 1 = F X 1

有关更多细节,参见Baydin,Pearlmutter,拉杜尔,和西斯金德[1]或自动分化[2]的维基百科文章。

参考

[1] Baydin,A. G.,B. A. Pearlmutter,A.A拉杜尔,和J. M.西斯金德。“自动分化机器学习状况的调查研究。”该杂志的机器学习研究的,18(153),2018,第1-43。可在https://arxiv.org/abs/1502.05767

[2]自动分化。维基百科。可在https://en.wikipedia.org/wiki/Automatic_differentiation

也可以看看

|||

相关话题