Higher Order Automatic Differentiation of Higher Order Functions
本文通过将前向模式自动微分刻画为一种保持结构的唯一宏,并在微分空间上通过泰勒近似推广至高阶导数的粘合构造来确立其有效性,从而在具有代数数据类型的高阶语言中证明了前向模式自动微分的语义正确性。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象你有一份复杂的蛋糕食谱。这份食谱不仅列出了食材,还包含了其他食谱的指令(例如“先制作糖霜”,然后“在此处使用该糖霜”)。在计算机科学中,这被称为高阶函数:一种将其他函数作为输入(食材)或生成新函数作为结果的函数。
现在,想象你想知道改变一种微小食材(例如多加一撮糖)会如何精确地影响蛋糕的最终口味。在数学中,这被称为求导数。在机器学习和人工智能领域,这一过程被称为自动微分(AD)。它是让计算机通过调整内部设置以最小化误差从而学会学习的引擎。
本文解决了一个非常棘手的问题:当食谱本身由其他食谱构成时,我们如何从数学上证明用于计算这些“口味变化”的计算机代码是正确的?
以下是他们解决方案的分解,使用简单的类比:
1. 问题:高阶函数的“黑箱”
通常,如果你有一个简单的函数(如 ),微积分会给我们一个清晰的规则来找到它的斜率(导数)。但是,当你拥有一个将另一个函数作为输入的函数(如一个“食谱生成器”)时,标准微积分就会陷入困惑。这就像试图测量一台制造其他机器的机器的斜率。在传统几何学中,并没有一个单一、公认数学规则来处理这种情况。
作者问道:如果我们编写一个程序来自动计算这些复杂的斜率,我们如何知道它没有欺骗我们?
2. 解决方案:一种新类型的地图(微分空间)
为了解决这个问题,作者需要一种新的方式来可视化这些程序所在的“空间”。
- 旧地图(流形): 将其想象成一张标准的地球地图。它非常适合描绘平滑的山丘和山谷,但如果你试图绘制“所有可能地图的空间”,它就会失效。它无法处理“函数是你可以持有并操作的对象”这一概念。
- 新地图(微分空间): 作者使用了一个称为微分空间(diffeological spaces)的概念。想象这是一张“超级地图”,它不仅观察表面上的点,还观察你可以在该表面上绘制的所有可能的路径(曲线)。
- 如果你能在一个形状上画出平滑的路径,那么该形状就是“平滑”的。
- 这种方法足够灵活,不仅能处理简单的数字,还能处理列表、选择(例如“如果是这样,那么那样”),甚至是将其他函数作为参数的函数。
3. 方法:“对偶数”翻译器
本文描述了一种称为**宏(macro)**的特定工具。可以将这个宏想象成一个翻译器,它接收你的原始程序并将其重写。
- 原始程序: “计算这个神经网络的代价。”
- 翻译后的程序: “计算代价,以及如果你轻微扰动每一个数字,代价会如何变化。”
作者使用一种称为**逻辑关系(Logical Relations)**的技术来证明该翻译器是正确工作的。
- 类比: 想象你有一个“影子世界”(原始程序)和一个“双重影子世界”(带有导数的程序)。作者创建了一本规则手册(一种关系),规定:“你在影子世界中做出的每一个动作,在双重影子世界中都必须有一个对应的、数学上正确的动作。”
- 他们证明,无论函数的嵌套变得多么复杂,翻译器始终能保持影子对齐。如果原始程序是平滑的,那么翻译后的程序就能正确计算平滑的变化。
4. “粘合”技巧
为了使证明严谨,他们使用了一种称为**粘合(Gluing)**的数学构造。
- 类比: 想象你正在用扁平的纸片构建一个 3D 模型。你有“原始”纸片和“导数”纸片。“粘合”就是将它们固定在一起的胶带,确保导数纸片始终以正确的方式附着在原始纸片上。
- 这种“粘合”后的空间允许他们将原始函数及其导数视为一个单一的、统一的对象。他们表明,他们的翻译器是构建这种胶水的唯一方式,能够保留语言的内部结构。
5. 意外发现:导数并不总是唯一的
最有趣的发现之一是,对于这些复杂的“函数构建”机器,并不总是只有一个正确的导数。
- 类比: 想象你在开车。“导数”就是你的速度。如果你在直路上行驶,你的速度是清晰的。但是,如果你驾驶一辆制造其他汽车的汽车,可能会有两种不同的方式来定义“速度”,这两种方式对于最终结果都完全有效,即使它们在仪表盘上的显示看起来不同。
- 作者表明,他们的方法选择了一个特定的、简单的、高效的导数版本。只要它能正确计算最终在现实世界中实际使用的简单数字(一阶函数)的变化,选择哪个“有效”版本并不重要。
总结
简而言之,本文为高级自动微分构建了一个数学安全网。
- 他们创建了一种新型数学空间(微分空间),能够容纳复杂的、嵌套的函数。
- 他们证明了他们的代码翻译器(宏)通过展示其与该新空间的规则完美对齐,从而正确计算了这些复杂函数的导数。
- 他们证明,虽然对于“函数生成器”可能存在多种定义导数的方式,但他们的方法是一个有效、一致且正确的选择,确保了人工智能和机器学习的最终计算是准确的。
他们并没有发明一种训练人工智能的新方法,但他们提供了证明,表明当前使用这些复杂工具训练人工智能的方法在数学上是稳健的。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。