🫑Python | C++漂移扩散方程和无风险套利公式算法微分
Python | C++ | 漂移扩散 | 方程 | 公式 | 期权 | 套利 | 定价权 | 算法 | 正向累积 | 反向累积 | 回归 | 分类 | 生成对抗网络 | 几何 | 网格
🎯要点
🎯漂移扩散方程计算微分 | 🎯期权无风险套利公式计算微分 | 🎯实现图结构算法微分 | 🎯实现简单正向和反向计算微分 | 🎯实现简单回归分类和生成对抗网络计算微分 | 🎯几何网格计算微分
🍇Python和C++计算微分正反向累积
算法微分在机器学习领域尤为重要。例如,它允许人们在神经网络中实现反向传播,而无需手动计算导数。
计算微分的基础是复合函数偏导数链式法则提供的微分分解。简单结构如:
由链式法则得出:
通常,存在两种不同的计算微分模式:正向累积和反向累积。
正向累积指定从内到外遍历链式法则(即首先计算 ,然后计算 ,最后计算,而反向累积是从外到内的遍历(首先计算 ,然后计算 ,最后计算 。更简洁地说,
正向累积计算递归关系: 且
反向累积计算递归关系:且
正向累积在一次传递中计算函数和导数(但每个仅针对一个独立变量)。相关方法调用期望表达式 Z 相对于变量 V 导出。该方法返回一对已求值的函数及其导数。该方法递归遍历表达式树,直到到达变量。如果请求相对于此变量的导数,则其导数为 1,否则为 0。然后求偏函数以及偏导数。
伪代码:
Python实现正向累积:
C++实现正向累积:
反向累积需要两次传递:在正向传递中,首先评估函数并缓存部分结果。在反向传递中,计算偏导数并反向传播先前导出的值。相应的方法调用期望表达式 Z 被导出,并以父表达式的导出值为种子。对于顶部表达式 Z 相对于 Z 导出,这是 1。该方法递归遍历表达式树,直到到达变量并将当前种子值添加到导数表达式。
伪代码:
Python实现反向累积:
C++实现反向累积:
Last updated
Was this helpful?
