主要内容

自动差异化背景

什么是自动差异化?

自动分化(也称为Autodiff.广告, 或者算法分化)是一个广泛使用的深度学习工具。看关于自动分化的书籍。它特别适用于创建和培训复杂的深度学习模型,而无需计算衍生物以便优化。有关如何显示如何创建和自定义深度学习模型,培训循环和丢失功能的示例,请参阅定义自定义培训循环,丢失功能和网络

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

  • 前进模式通过与评估函数本身的操作同时执行基本衍生操作来评估数值衍生物。如下一节所述,该软件对计算图进行这些计算。

  • 反向模式自动差异使用前向模式计算图的扩展,以通过曲线图的反向遍历来实现梯度的计算。由于软件运行代码来计算函数及其导数,它将其记录在称为a的数据结构中的操作痕迹

正如许多研究人员所指出的那样(例如,Baydin,Pearlmutter,乌贼和Xiskind[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. 5. 5. X 1 = 6. - 1 + 6. 5. 5. 4. 4. X 1 = 6. - 1 + 6. 5. 5. 4. 4. 3. 3. X 1 = 6. - 1 + 6. 5. 5. 4. 4. 3. 3. 1 1 X 1

˙ 一世 代表表达的衍生物一世关于X1。使用评估的值一世从函数评估中,您将计算部分导数F关于X1如下图所示。请注意,所有的价值观 ˙ 一世 从顶部到底部遍历图形时可用。

与偏重计算部分导数X2,您遍历类似的计算图表。因此,当计算函数的梯度时,图形遍历的数量与变量的数量相同。对于典型的深度学习应用程序来说,此过程太慢,具有数千或数百万个变量。

反向模式

反向模式使用一个向前遍历计算图来设置跟踪。然后它在相反方向上计算在图形的一个遍历中的功能的整个梯度。对于深度学习应用,这种模式更有效。

反向模式背后的理论也是基于链规则,以及相关的伴随变量用螺栓表示。伴随变量一世

¯ 一世 = F 一世

就计算图而言,来自变量的每个传出箭头通过其在链规则中的术语有助于相应的伴随变量。例如,变量-1向两个变量传出箭头,16.。该图具有相关的等式

F - 1 = F 1 1 - 1 + F 6. 6. - 1 = ¯ 1 1 - 1 + ¯ 6. 6. - 1

在这个计算中,回顾一下 1 = - 1 2 6.=5.-1,你获得

¯ - 1 = ¯ 1 2 - 1 + ¯ 6. 5.

在图形的前向遍历期间,软件计算中间变量一世。在反向遍历期间,从种子值开始 ¯ 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,Radul和Siskind [1]或Wikipedia关于自动分化的文章[2]。

参考

[1] Baydin,A.G.,B. A. Pearlmutter,A。A.乌贼和J.M. Siskind。“机器学习中自动分化:调查”。机器学习研究杂志,18(153),2018,PP。1-43。可用AT.https://arxiv.org/abs/1502.05767

[2]自动差异化。维基百科。可用AT.https://en.wikipedia.org/wiki/automatic_differential.

也可以看看

|||

相关话题