Hacker News 中文摘要

RSS订阅

反向传播算法是谁发明的? -- Who Invented Backpropagation?

文章摘要

反向传播算法(Backpropagation, BP)是现代神经网络和深度学习的核心技术。其现代版本最早由芬兰学生Seppo Linnainmaa于1970年发表,而Henry J. Kelley在1960年提出了其前身。2020年,BP迎来了50周年纪念。

文章总结

谁发明了反向传播?

反向传播(Backpropagation,简称BP)是现代神经网络(Neural Networks, NN)和深度学习(Deep Learning)的核心技术。那么,究竟是谁发明了反向传播呢?

反向传播的现代版本,也被称为自动微分的反向模式,最早由芬兰硕士生Seppo Linnainmaa在1970年发表。2020年,我们庆祝了反向传播的50周年纪念。而反向传播的前身则可以追溯到1960年,由Henry J. Kelley提出,2020年也是其60周年纪念。

在1960年代和1970年代,许多研究者讨论了通过梯度下降法在复杂、非线性、可微分的多阶段系统中最小化误差的方法。例如,Kelley(1960)、Bryson(1961)、Pontryagin等人(1961)、Dreyfus(1962)等人都对此有所贡献。这些系统已经具备了动态规划(Dynamic Programming, DP)的效率,但当时并未明确处理跨多层的直接连接或网络稀疏性带来的额外效率提升。

1970年,Linnainmaa在其硕士论文中首次描述了在任意离散、可能稀疏连接的神经网络中进行显式、高效的误差反向传播,尽管当时并未提及神经网络。这种反向传播也被称为自动微分的反向模式,其前向激活传播的成本与后向导数计算的成本基本相等。1971年,Ostrovskii等人发表了与反向传播密切相关的论文,这可能是反向传播的第一篇期刊论文。

到了2020年,所有现代神经网络软件包(如Google的TensorFlow)都基于Linnainmaa在1970年提出的方法。反向传播很快被用于通过调整控制参数(权重)来最小化成本函数(Dreyfus, 1973),随后在神经网络领域得到了初步讨论(Werbos, 1974),并在1980年由Speelpenning开发了自动推导和实现反向传播的计算机程序。

1982年,Werbos首次描述了反向传播在神经网络中的具体应用。然而,早在1967年,Amari就提出了通过随机梯度下降(SGD)从头开始训练多层感知机(MLP)的方法,并在五层MLP中学习了内部表示。

1985年,计算成本比1970年降低了约1000倍,桌面计算机开始在富裕的学术实验室中普及。Rumelhart等人通过实验分析证明了反向传播可以在神经网络的隐藏层中产生有用的内部表示。

尽管反向传播的核心思想可以追溯到莱布尼茨(1676)和洛必达(1696)的链式法则,但直到1970年,Linnainmaa才首次将其应用于大型网络中的高效计算。反向传播方法在1970年提出后,经过了40年才被广泛接受为深度神经网络的训练方法。

在2010年之前,许多人认为训练多层神经网络需要无监督预训练,这一方法由Schmidhuber在1991年提出。然而,2010年,Schmidhuber的团队通过实验证明,深度前馈神经网络可以通过纯反向传播进行训练,而不需要无监督预训练。

总的来说,反向传播的发明和发展经历了多个阶段,Linnainmaa在1970年的工作被认为是现代反向传播的起点,而后续的研究者在此基础上不断推进了其在神经网络中的应用。

评论总结

评论主要围绕“反向传播算法”的发明和争议展开,观点多样且存在争议。以下是总结:

  1. 反向传播算法的起源与争议

    • 有人认为反向传播算法并非全新发明,而是基于链式法则的自然延伸,甚至早在17世纪就被莱布尼茨和牛顿探索过。
      • "It’s just an application of the chain rule. It’s not interesting to ask who invented it."(这只是链式法则的应用,讨论谁发明它并不有趣。)
      • "The chain rule was explored by Gottfried Wilhelm Leibniz and Isaac Newton in the 17th century."(链式法则在17世纪就被莱布尼茨和牛顿探索过。)
    • 也有人指出,反向传播算法在历史上多次被发明、遗忘和重新发明,尤其是在控制理论中早有应用。
      • "Depending on exactly how you interpret the notion of 'inventing backpropagation' it’s been invented, forgotten, re-invented, forgotten again, re-re-invented, etc, about 7 or 8 times."(根据对“发明反向传播”的理解,它已经被发明、遗忘、重新发明了大约7到8次。)
      • "One of its early applications was to optimize the thrusts of the Apollo spaceships as they headed towards the moon."(它的早期应用之一是优化阿波罗飞船在飞向月球时的推力。)
  2. 对Jürgen Schmidhuber的批评

    • 有评论认为Schmidhuber的观点带有“酸葡萄心理”,他质疑Hopfield、Hinton等人的诺贝尔奖和图灵奖的合理性,但科学界对此并不认同。
      • "The author, Jürgen Schmidhuber, believes Hopfield and Hinton did not deserve their Nobel Prize in Physics, and that Hinton, Bengio, and LeCun did not deserve their Turing Award."(作者Jürgen Schmidhuber认为Hopfield和Hinton不配获得诺贝尔物理学奖,Hinton、Bengio和LeCun也不配获得图灵奖。)
      • "Evidently, many other scientists disagree, because both awards were granted in consultation with the scientific community."(显然,许多其他科学家不同意,因为这两个奖项都是在科学界的咨询下授予的。)
  3. 对反向传播算法重要性的讨论

    • 有人认为反向传播算法的核心是链式法则,其发明并不值得过多讨论,而更应关注其应用。
      • "Calling the implementation of chain rule 'inventing' is most of the problem here."(将链式法则的实现称为“发明”是这里的主要问题。)
      • "Isn’t it just kinda a natural thing once you have the chain rule?"(一旦有了链式法则,这不就是自然而然的事情吗?)
  4. 对历史背景的补充

    • 有评论提到Shun'ichi Amari在信息几何和梯度下降方面的早期贡献,以及反向传播算法在控制理论中的应用。
      • "TIL that the same Shun'ichi Amari who founded information geometry also made early advances to gradient descent."(今天了解到,创立信息几何的Shun'ichi Amari也在梯度下降方面做出了早期贡献。)
      • "In fact when I recreated the algorithm as an exercise it immediately reminded me of gradient descent for kinematics."(事实上,当我重新创建这个算法时,它立刻让我想起了运动学中的梯度下降。)

总结:评论中对反向传播算法的发明和重要性存在不同看法,有人认为其基于链式法则,不值得过多讨论,也有人指出其在历史上的多次重新发明。同时,对Schmidhuber的批评和对算法历史背景的补充也是讨论的焦点。