自动微分
automatic differential
四种微分方法
1.1 手动求解
手动求解其实就对应我们传统的backprop算法,我们求解出梯度公式,然后编写代码,代入实际数值,得出真实的梯度。在这样的方式下,每一次我们修改算法模型,都要修改对应的梯度求解算法,因此没有很好的办法解脱用户手动编写梯度求解的代码,这也是为什么我们需要自动微分技术的原因。
1.2 数值微分
比如有限差分
1.3 符号微分
类似与matlab中符号微分方法,求出微分的形式,再带入求解。
1.4 自动微分
介于符号微分和数值微分的方法:将符号微分应用于基本的算子,比如:常熟、幂函数、指数函数等,然后代入数值,保留中间结果,最后再应用与整个函数。
实际上是一种图(graph)计算。??
当输出的维度大于输入的时候,适宜使用前向模式微分;当输出维度远远小于输入的时候,适宜使用反向模式微分。
参考:自动微分简介