比较高维、高阶导数的公式

我刚刚重读了杰森·福茨的帖子Haskell中的高阶多元自动微分,因为我又在思考这个话题。我喜欢他用国际地图保持偏导数和(递归地)这些偏导数的偏导数等。

一些想法:

  • 我打赌可以消除常数(C类)Jason代表的案例,因此有3/4的案例需要处理,性能没有太大损失。他已经有了一个相当有效的常数表示,这是一个D类有一个空的国际地图.

  • 我想还有一个很好的通用代码,用于组合他在第三个乘法案例中使用的两个有限映射。代码的含义和正确性来源于这些映射的模型,即总函数,缺少的元素表示默认值(在本例中为零)。

  • Jason的数据类型让我想起了稀疏矩阵表示,但它的无限嵌套方式更酷。也许是深度n个(以零开头)是稀疏的n维的矩阵。

  • 最后,我怀疑Jason的国际地图-基于实现和我的线性贴图-中描述的基于实现高维、高阶导数,函数和中更简单、更高效、功能性更强的线性映射.对于n个,我的公式使用带有以下项的trien个基本元素,而Jason使用国际地图(这也是一个trie)n个条目(计算任何隐式零)。

我怀疑Jason的公式更有效(因为它优化了常量的情况),而我的公式更静态类型,更灵活(因为它处理的比n个).

为了优化常量,我想我更喜欢使用带有也许 吧对于派生,消除代码重复。

我仍在努力理解报纸惰性多元高阶转发模式AD管理各种ε。

最后一句话:我更喜欢术语“高维”,而不是传统的“多元”。我在后者中听到了经典的语法/语义混淆。

留下评论