如果我尝试使用 Reverse-Mode Auto-Diff 计算导出一个函数,我可以导出一个函数 wrt。一次完成许多变量。
我现在的问题是,如果我输入这个函数会发生什么(只是一个非常简单的问题示例):
现在,显然,手动处理这个很简单,只需导出最顶层的两个子表达式然后添加它们。
但是在反向模式 AD 中,每个推导的最终结果位于每个分支的底部(如果您将函数设想为表达式树)。现在,您如何处理这些情况,因为大多数算法都处理通过仅拆分和递归处理子树。但是对于推导wrt。到为了我明白了和取决于我在哪个子树中。
我想我错过了反向模式 AD 的一个关键部分(主要可能是在实现部分),但我不知道是哪个。