世界を動かす技術を、日本語で。

バックプロパゲーションを発明したのは誰か?

概要

  • バックプロパゲーション(BP) は、現代のニューラルネットワーク(NN)とディープラーニングの中心技術
  • 1970年にSeppo Linnainmaa が現代的なBP(自動微分の逆モード)を初めて発表
  • BPの前身は1960年にHenry J. Kelley が発表し、以降多くの研究者が発展に寄与
  • ディープNNの効率的な訓練法としてBPが広く普及 したのは2010年代以降
  • 歴史的経緯や誤解の訂正、主要な研究者や論文 についての要点整理

バックプロパゲーション(BP)の発明と発展

  • BPの現代的手法 は1970年、フィンランドの大学院生Seppo Linnainmaaによる発表
    • 自動微分の逆モードとしても知られる
    • 当初はNNに直接関連付けられていなかった
  • BPの前身 は1960年、Henry J. Kelleyによる最適飛行経路の勾配理論
    • 1960年代から1970年代にかけてBryson、Pontryagin、Dreyfus、Amariらが関連研究を展開
  • 勾配降下法 の歴史は19世紀に遡るが、NNへの応用は1960年代から
    • 初期は変分法や動的計画法を基盤とした解析
  • 効率的なBP は1970年のLinnainmaa論文・FORTRANコードで初めて明示
    • 1971年Ostrovskiiらによる学術誌での初公開
    • 2020年時点でTensorflow等全てのNNソフトウェアがLinnainmaa法を基礎に構築

ニューラルネットワークへの応用

  • コスト関数最小化へのBP応用 は1973年Dreyfusが明示
  • NN特化のBP は1982年Werbosによる初報告
    • 1974年の彼の博士論文には未記載
  • Amari(1967) は多層パーセプトロン(MLP)をSGDでエンドツーエンド訓練する手法を提案
    • 5層MLPで内部表現の獲得を実証
  • GMDHネットワーク(Ivakhnenko, 1965〜) は階層的な内部表現を学習する最初のディープNN
    • 層ごとに回帰分析で訓練

BPの普及とその後

  • 1985年頃 にはLeCunやParkerもBPの研究を発表
    • 計算コストの低下とPC普及で実験が容易に
  • Rumelhartら(1986) の実験でBPがNNの隠れ層内部表現を有効に学習することを実証
  • 2010年以前 は「ディープNNはBPだけで訓練できない」との誤解が一般的
    • 無教師事前学習(Schmidhuber, 1991)が必要とされていた
  • 2010年、Schmidhuberらの研究 でディープFNNが単純なBPのみで有用な結果を出せると示され、BPの重要性が再認識

よくある誤解と正しい理解

  • BP=単なる連鎖律 という誤解
    • 実際は「大規模ネットワークへの効率的な連鎖律適用法」
    • 非効率な方法も多く存在し、BPの効率性が鍵
  • BPの発表は1970年
    • それ以前の研究もあるが、「効率的なBP」の明示はLinnainmaaが初

参考文献・主要人物

  • Seppo Linnainmaa (1970年):現代BPの発明
  • Henry J. Kelley (1960年):BPの前駆研究
  • Amari, Saito, Bryson, Dreyfus, Werbos, Ivakhnenko, LeCun, Parker, Rumelhart :関連分野の主要研究者
  • Schmidhuber :ディープラーニング史の整理とBP普及の功績

ライセンス・連絡先

  • 教育・非商用利用 を推奨(CC BY-NC-SA 4.0)
  • 誤り指摘やフィードバック はjuergen@idsia.chまで

このまとめは、Jürgen Schmidhuberの2014年~2025年にわたるBP史の解説をもとに、要点を日本語で簡潔に整理したものです。

Hackerたちの意見

BPの現代版(自動微分の逆モードとも呼ばれる)ってことは…自動積分?比例、積分、微分。PIDループって、まさに彼らが話してることみたいだね。

逆モードの自動微分は積分じゃないよ。まだ微分だけど、手でやるのとは違う方法で導関数を計算してる。基本的には、直感とは逆の順序で連鎖律を適用してるだけ。関数を実行して値をキャッシュして、逆順で参照する必要があるから、通常の順方向モードの自動微分よりもオーバーヘッドが多いけど、入力がめちゃくちゃ多くて出力が少ない関数(例えば、高次元空間でスカラー関数の勾配を計算する場合)には、アルゴリズム的に効率的で、原始関数を一回通過するだけで済むのが利点だよ。一方、従来の順方向モードの導関数は、入力が少なくて出力が多い関数に対して最も効率的なんだ。要するに、双対関係みたいなもんだね。

順方向モードの自動微分は、各スカラー導関数のための式を作るんだ。もしパラメータが10億あったら、各導関数をゼロから計算しなきゃならない。名前の通り、計算は前に進む形で行われる。逆モードの自動微分は、記号表現の根元から始めて、各サブ表現の導関数を同時に計算する。二つの違いは、メモ化なしでフィボナッチ数列を再帰的に計算するのと、反復的に計算するのとの違いみたいなもんだ。無駄な作業を何度も繰り返さずに済むんだよ。

状態空間制御理論の最適化に関する研究がたくさんあって、AIとのクロスオーバーがあるんじゃないかと強く疑ってる。数学的構造もかなり似てるし。例えば、状態空間制御係数の最適化はLLMマトリックスのトレーニングに似てる感じがする…

そう言われてみると、いつもオイラー・ラグランジュの手法みたいな、微分幾何学の数値計算で使われる定式化から来てると思ってた。実際、アルゴリズムを再現したとき、運動学の勾配降下法を思い出したし、各層のヤコビ行列の計算が一般座標での反復的なポーズ計算に似てた。これが「新しい」ものだとは思わなかったな。

ずっと気になってる質問があるんだけど。2018年にマイケル・ジョーダン(UCバークレー)が面白いエッセイを書いてて - https://medium.com/@mijordan3/artificial-intelligence-the-re...(人工知能 — 革命はまだ起きていない)その中で彼はこう言ってた:> 確かに、1980年代初頭にデイビッド・ルメルハートによって再発見された有名な「バックプロパゲーション」アルゴリズムは、現在「AI革命」の核心と見なされていますが、1950年代と60年代の制御理論の分野で最初に生まれました。その初期の応用の一つは、アポロ宇宙船が月に向かう際の推力を最適化することでした。彼が言及していた論文や研究を知っている人がいたら教えてほしい。シュミットフーバーの作品には多くの引用があって、以前の試みでは論文に迷ってしまったんだ。

これを見つけたけど、役に立つかも: https://gwern.net/doc/ai/nn/1986-rumelhart-2.pdf

これかもね:ヘンリー・J・ケリー(1960年)。最適飛行経路の勾配理論。[1] https://claude.ai/public/artifacts/8e1dfe2b-69b0-4f2c-88f5-0...

多分、カルマンフィルタ(1961年)とLMSフィルタ(1960年)のことを言ってるんじゃないかな。

... 1950年代と1960年代に制御理論の分野で初めて登場しました。その初期の応用の一つは、アポロ宇宙船が月に向かう際の推力を最適化することでした。「それ」はバックプロパゲーションではなく、制御理論を指していると思います。

ウィドナルの概要をここで見てみて。バックプロパゲーションと関係がある部分について話してるよ。「アポロ月面モジュールの自動操縦装置における最小時間推力ベクトル制御法」(1970年)

これはブライソンとホーの「応用最適制御」(1969年)に載ってるよ。ヤン・ルカンは、彼の1989年のバックプロパゲーションに関する論文でこれを認めてるんだ。> 「このテーマに関する最初の研究以来、著者はA. ブライソンとY.-C. ホー [ブライソンとホー、1969] がラグランジュ形式を使ってバックプロパゲーションアルゴリズムを説明していることを発見した。彼らの説明は、もちろん機械学習ではなく最適制御の枠組みの中にあったが、結果として得られる手続きはバックプロパゲーションと同じである。」

ラメルハートらは「パラレル分散処理」という本を書いていて、その中にバックプロパゲーションアルゴリズムが「調和」を最大化することを証明する章があるんだ。それは単に誤差最小化の別の定式化に過ぎない。90年代中頃にこの本をワクワクしながら読んだのを覚えてる。証明に苦労した記憶はないな、かなり簡単だったし。(その時は高校3年生だった。)

誰もがそう思うよね?「バックプロパゲーションを発明する」という概念をどう解釈するかによって、発明されたり忘れられたり、再発明されたり、また忘れられたり、再々発明されたり、ってのが7回か8回くらいあるんじゃないかな。具体的な引用は手元にないけど、ニューラルネットワーク(バックプロパゲーションを含む)の発展の歴史についての面白い話は、「Talking Nets: An Oral History of Neural Networks」という本にたくさん載ってるよ。[1] [1]: https://www.amazon.com/Talking-Nets-History-Neural-Networks/...

大学の適応フィルタってカウントされないの? https://en.wikipedia.org/wiki/Adaptive_filter 前方項の微分はいらないけど、よく見ると結構似てるよね。

GPUベースのコンピューティングへの移行の方が、たぶんもっと重要だと思う。GPUプログラミングによって課せられる制約(分岐しないとか、テンソルをその場で更新しないようにするとか)が、微分可能プログラミングの制約と一致するんだよね。人々が微分可能なコードを書く十分な理由を見つけたとき、微分可能プログラミングのフレームワーク(Theano、TensorFlow、Torch、JAX)が一気に盛り上がったんだ。

どうして引用文献が目の前にないの?全部記事に載ってるじゃん?バックプロパゲーションの関連する(再)発明が欠けてるとは思えないけど。もし本当にここに載ってないバックプロパゲーションの再発明を知ってるなら、ユルゲン・シュミットフーバーに教えてあげて。彼は他の知らない事例についてすごく興味を持ってるから。

事実はどうあれ、OPはちょっとひねくれた印象を受けるね。著者のユルゲン・シュミットフーバーは、ホップフィールドとヒントンがノーベル物理学賞を受賞するに値しないと思ってるし、ヒントン、ベンジオ、ルクンもチューリング賞に値しないって言ってる。明らかに、他の多くの科学者はそう思ってないみたいで、両方の賞は科学コミュニティと相談して授与されたからね。シュミットフーバー自身の研究も、実際に2024年のノーベル賞委員会によって背景情報として引用されてる。[a] 将来の世代の科学者たちが、もっと客観的に過去を見て、これらの論争を解決できるんじゃないかな。[a] https://www.nobelprize.org/uploads/2024/11/advanced-physicsp...

記事はクリックしなかったけど、コメント欄に直行した。「シュミットフーバーがイライラしてるんだろうな」と思ってた。変わらないことってあるよね。

ここでの暗黙の主張は、北米の科学界が他のソースからの功績を横取りして、真の革新者を見落としている特定の人物を持ち上げているってことだと思う。この考えに対して科学界が同意しないって議論するのは、ちょっと無意味だよね。

物理学コミュニティでは、ヒントンがノーベル賞を受賞するほどの業績は全くなかったっていうのが、かなり一般的な意見だよ。彼の仕事は、物理学コミュニティに全く影響を与えなかったからね。

確かに、これはノーベル賞よりずっと前の話で、上のトリオに限った話じゃないよ。JSは、ニューラルネットワークについて何かを発表する人に頻繁に公然と挑戦することで知られてる。2016年のNEURIPSのチュートリアルでは、イアン・グッドフェローにGANsを最初にやったのは誰かをしつこく聞いてたしね。

明らかに、他の多くの科学者は異議を唱えているようで、両方の賞は科学コミュニティと相談の上で授与されたんだよね。それはあまり良い論拠じゃない。実際、時々「科学コミュニティ」が反対するような賞も授与されることがあるし。シュミットハーバーは、チューリング賞の公式な理由にかなりの誤りが含まれているって、具体的な理由を挙げて説明してたよ。

チェーンルールの実装を「発明」と呼ぶのが、ここでの問題の大部分だね。

チェーンルールは17世紀にゴットフリート・ウィルヘルム・ライプニッツとアイザック・ニュートンによって探求されたんだ。どちらかが瞬時にバックプロパゲーションを「発明」してたと思うよ。明らかだよね。

面白いことに、私の場合は逆だった。チェーンルールを計算する方法はずっと知ってたけど、バックプロパゲーションについて調べて初めてチェーンルールが何を意味するのか理解したんだ。

全く明らかじゃないよ。記事が指摘しているように、バックプロパゲーションがニューラルネットワークの訓練に効率的なアプローチではないと40年間も思われていたんだから。

バックプロパゲーションと人工ニューラルネットワークの力が、AI研究者たちに長い間疑われていたのは本当に驚きだよ。実際、2010年代初頭から研究者たちがこの分野を真剣に受け止め始めたんだ。コアアルゴリズム(バックプロパゲーション)が数十年も知られていたにもかかわらずね。2000年代後半に大学で人工ニューラルネットワークについて学んだとき、教授たちは本当に懐疑的で、隠れ層を増やすと訓練が難しくなるって正しく説明してた。バックプロパゲーションと人工ニューラルネットワークが機能するのは、バックプロパゲーションの上に追加された小さな最適化やアルゴリズムの改善のおかげなんだ。これらの改善がなければ、計算効率が悪すぎて実用的じゃないし、勾配爆発みたいな問題に直面しなきゃいけない。ジェフリー・ヒントンも、人工ニューラルネットワークに何年も取り組んできた人たちにとって、今日のニューラルネットワークが普通に動くのは驚きだって何度か言ってるよ。バックプロパゲーションは基礎的なアルゴリズムだけど、それだけじゃ不十分なんだ。バックプロパゲーションの上に行われた多くの改善が、実際に人工ニューラルネットワークを機能させて、2010年代に現代のニューラルネットワークのコアコンポーネントが整ったときに飛躍的に進展したんだ。最初にニューラルネットワークについて学んだとき、進化的アプローチと組み合わせるのが必要かもって思ったこともあったけど、もちろん何をしているのか全く分からなかった。でも、ニューラルネットワークで実験するために何度も夜を徹して過ごしたんだ。人工の「ニューラルネットワーク」が新しい問題を学んで答えを出すっていうアイデアが大好きだった。大学を卒業してウェブ開発に進んだのが人生最大の後悔だよ。当時はAIの仕事がほとんどなかったし、AIスタートアップなんて存在しなかったからね。AIをやりたければ、基本的に研究者になるしかなかったけど、その頃の自分には興味がなかったんだ。

最初にニューラルネットワークについて学んだとき、進化的アプローチと組み合わせるのが必要かもって思ったんだ。人工生命シミュレーションでそれをやってみたんだけど、クリーチャーが完全にランダムに動き回るのから、食べ物を取ったり、食べられそうなものから逃げたりする動きに変わっていくのを見るのがすごく楽しかった。俺の単純なビジョンは、獲物のために角を隠れたりするような高度な動きだったけど、そんな感じには全然近づかなかった。進化のパラメータを調整していくうちに、特定の高度な特性を進化させるプロセスには、たくさんの時間と(多分)環境の複雑さ、クリーチャーのグループの区分が必要だってことに気づいていった。生存を助けるためのシンプルで単純な能力はたくさんあって、それらは他のクリーチャーに気づいて、その動きを障害物の向こう側で追跡するようなもっと高度な能力よりもずっと簡単に身につけられるんだ。

バックプロパゲーション以外での最大の改善点は、ネットワークアーキテクチャの変更だったと思う。標準的なフィードフォワードMPCはかなり非効率的だし。その後、CNNやLSTM、トランスフォーマーのようなアーキテクチャが登場した。活性化関数や勾配降下法(AdamW)にも改善があったけど、CNNやトランスフォーマーのような大きな影響があったかは分からないな。もう一つの要因は、GPUでのトレーニングだね。

これについての私のお気に入りの見解は、実際にはただの連鎖律だってこと。通常の議論では、自動微分と記号微分は根本的に異なるから、特に古いもの(コンピュータ以前のものなど)はバックプロパゲーションの発明としてカウントされないって言われてる。でも、ADと記号微分の等価性についての私のお気に入りの見解はこれだよ [0]。こういうことに対して誰が発明したかにそんなに重要性が置かれるのは残念だな。明らかに、バックプロパゲーションを定義した人はMLの進展においてボトルネックではなかったんだから、なんでそんなに注目されるんだろう? [0] https://emilien.ca/Notes/Notes/notes/1904.02990v4.pdf

この記事の本質は、ライプニッツがシュミットハーバーをやっていなかったってことだね [0] セッポ・リナインマ(多分、当時は死んでたから)。実際、いい内容で、最後まで読んで期待が満たされてすごく嬉しかったよ。

まじで、彼が今ウィキペディアに載ってるの?!