自动微分

08 Jun 2020

automatic differential

四种微分方法

1.1 手动求解

手动求解其实就对应我们传统的backprop算法,我们求解出梯度公式,然后编写代码,代入实际数值,得出真实的梯度。在这样的方式下,每一次我们修改算法模型,都要修改对应的梯度求解算法,因此没有很好的办法解脱用户手动编写梯度求解的代码,这也是为什么我们需要自动微分技术的原因。

1.2 数值微分

比如有限差分

1.3 符号微分

类似与matlab中符号微分方法,求出微分的形式,再带入求解。

1.4 自动微分

介于符号微分和数值微分的方法:将符号微分应用于基本的算子,比如:常熟、幂函数、指数函数等,然后代入数值,保留中间结果,最后再应用与整个函数。

实际上是一种图(graph)计算。??

当输出的维度大于输入的时候,适宜使用前向模式微分;当输出维度远远小于输入的时候,适宜使用反向模式微分。

参考:自动微分简介