あら、本日のお題は 逆伝播 ですって? 私、13年Excelで 毎日やってますわよ。「数式エラーの参照元トレース」、Ctrl + [ で 上流のセル に飛んで、犯人をどんどん遡るアレですわ。
大蔵さん…まさかと思って聞きますけど、それ 本気で逆伝播と同じ です。出力(エラー)から各セル(=重み)に 「誰のせいか」 を遡って配分する作業、概念的にはまったく同じ構造。
ということは、私は 1980年代の Rumelhart 先生 と同じ作業を、毎月の セル参照エラー潰し で繰り返してきたわけですわね。…これは 名誉教授級 ではなくて?
……(沈黙、また Excel に持っていかれた)

- 逆伝播とは、AIが出した答えの ズレ を、出力側から入力側へ逆向きにたどって、つまみ一つひとつ(=重み(#009))に 「お前はどれだけ悪い」 と責任を割り振っていく計算。
- これがあるから AI は学習できる。無いと膨大なつまみをどう直せばいいか分からず、GPT も生まれなかった(連鎖律の計算は本文で)。
- イメージは ミスの原因を上流の担当へ遡って配分する作業。最終結果のズレを末端から一気にさかのぼり、どの工程がどれだけ悪かったかを機械が高速で振り分けている。
勾配降下(#015) 記事で「各重み(#009)の勾配の逆方向に動く」と書いた。その 「各重みの勾配」 を実際にどう計算するか が本記事のテーマ。逆伝播(英: backpropagation、略: backprop)。
これは深層学習史で最も革命的な技術のひとつ。1986年に確立されてから、ニューラルネットワークが訓練可能になり、現在の AI ブーム全体がこの上に乗っている。「これが無ければ GPT は生まれなかった」 と言って良い基幹アルゴリズム。
本質はシンプル。「結果のズレを、上流の犯人に配分する作業」。これを末端の出力から入力方向に向かって遡る形で、全重みに対して一気にやる。連鎖律という数学テクニックを使うことで、計算量が劇的に節約される。
「責任配分」を全重みに対して一気にやる
NN は層が積み重なった構造。入力 → 第1層 → 第2層 → … → 第96層 → 出力 と、データが流れる(これが 順伝播 / forward pass)。
出力と正解を比べて 損失(#014) が計算される。ここで疑問が出る:
各重み(#009)(GPT-3 で1,750億個)について、それぞれ 「この重みを微妙に動かしたら、損失はどっち向きにどれだけ変わるか」 を計算したい。これが 勾配降下(#015) に必要。
素朴にやろうとすると、重み1個ごとに NN 全体を再計算 しないといけない。GPT-3 で1,750億回 NN を回す = 計算量が天文学的になって不可能。
逆伝播はこれを 「NN を1回だけ逆向きに走らせる」 ことで全重みの勾配を一気に計算する。計算量は 順伝播の1〜2倍程度 に抑えられる。これが効率の魔法。
本質は「偏微分の再利用」 — 同じ計算を何度もしない
「責任配分」「逆向きに辿る」というアナロジーは挙動の説明としては分かりやすい。だが 本質はもう一段奥にある。
逆伝播の本質は、順伝播で得た中間結果を、逆伝播で全部使い回せる こと。だから計算量が爆発しない。
これを 3層 NN(重みが w₁, w₂, w₃)の例で具体的に見る。やりたいのは、各重みについて「損失 L を w_i で微分した値(=偏微分)」を計算すること。
素朴に計算したら何が起きるか
3つの重みそれぞれについて、損失への偏微分を別個に計算するとどうなるか。
- ∂L/∂w₃(層3 の重み)を計算: 損失 → 出力層 → 第3層 の経路を辿る
- ∂L/∂w₂(層2 の重み)を計算: 損失 → 出力層 → 第3層 → 第2層 の経路を辿る
- ∂L/∂w₁(層1 の重み)を計算: 損失 → 出力層 → 第3層 → 第2層 → 第1層 の経路を辿る
気づくのは、「損失 → 出力層 → 第3層」の部分が全 3回で共通 していること。「→ 第2層」までは ∂L/∂w₂ と ∂L/∂w₁ で共通。素朴にやると 同じ計算を何度も何度も繰り返す ことになる。
これを GPT-3 の 96層・1,750億重みでやろうとすると、計算量は天文学的に爆発する。重み1個増えるたびに、最後の層まで辿り直す必要がある。パラメーター数の二乗に近いオーダー。事実上、計算不可能。
連鎖律+キャッシュで「再利用」する
逆伝播は、出力側から 1回だけ計算した中間値を保存しておき、それを使って全重みの偏微分を一筆書きで完了させる。
- まず 出力層での 「損失への影響度」 を計算 → キャッシュ
- これを使って第3層に 「影響度」 を伝播 → キャッシュ + ∂L/∂w₃ も完了
- 第3層の影響度を使って第2層に伝播 → キャッシュ + ∂L/∂w₂ も完了
- 同様に第1層まで → ∂L/∂w₁ も完了
つまり、NN を 1回だけ逆向きに走らせる 中で、各層に到達した時点で その層の重みの偏微分が 「ついでに」 計算される。共通部分の計算は1回だけ、それを全層で使い回す。
これは 動的計画法(Dynamic Programming) と本質的に同じ発想。「同じ部分問題の解を、二度と再計算しない」というアルゴリズム設計の王道。
結果として計算量が 「パラメーター数の二乗」 → 「パラメーター数の1倍」 まで落ちる。これがあるから 1,750億パラメーターの GPT-3 を、現実的な時間で訓練できる。
整理: 逆伝播の本質は3つに分解できる。
- 連鎖律: 微分を掛け算で繋ぐ数学テクニック(これは高校数学の範囲)
- 逆向きの計算順序: 出力側から始める、これが計算順序を決める手段
- 中間値の再利用(キャッシュ): ここが効率の核心、これが無いと計算量が爆発する
このうち (3) 中間値の再利用が本質。「責任配分」アナロジーは (2) の挙動の言い換えで、入口としては分かりやすいが、なぜ計算可能なのかは説明しない。「なぜ」 を理解したければ (3) を抑える必要がある。
連鎖律 — 「Aが動くとBが動き、Bが動くとCが動く」
逆伝播の数学的な土台は 連鎖律(chain rule) という、微分の基本テクニック。高校数学で出てくる「合成関数の微分」のあれ。
直感的に言うと:
原因 A が動くと結果 C にどれだけ影響するか を知りたい時、「A → B の影響度」 × 「B → C の影響度」 を掛け算するだけで分かる。
これを NN の層に当てはめる。「重み w が変わると → 第k層の出力が変わり → 第k+1層の出力が変わり → … → 損失が変わる」。各層での 「影響度」 を掛け算で繋ぐと、全体の影響度 = w に対する勾配が分かる。
この計算を 「末端(損失)から始めて逆向きに辿る」 ことが効率の鍵。なぜなら:
- 順伝播の途中で計算した値を キャッシュ しておけば、逆向きに辿るときに再計算不要
- 各層に来た 「影響度」 を その層の重みと前の層に分配 していけば、一筆書きで全部終わる
- 結果として、重み1個ずつ別々に計算するより 1,750億倍速い(GPT-3 級なら)
これが Rumelhart らが発見した革命的なポイント。連鎖律自体は数百年前から知られていたが、「NN の構造で連鎖律を逆向きに適用すれば全勾配が爆速で取れる」 という気づきが、深層学習の歴史を始めた。
1986年の革命 — Rumelhart, Hinton, Williams
NN は1950年代から研究されていたが、1970-80年代は 「冬の時代」(#012) に陥っていた(XOR 問題、当時の計算機性能不足、訓練法不在など)。
復活の決定打のひとつが、1986年に Rumelhart, Hinton, Williams が Nature 誌に発表した論文 「Learning representations by back-propagating errors」。
- 逆伝播そのものは1970年代から研究者の一部に知られていたが、Rumelhart らが 「NN の隠れ層を学習させる実用的アルゴリズム」 として整理・実証
- これ以前は隠れ層 1層の 「パーセプトロン」 (1958)から進めなかった。逆伝播で 多層 NN が訓練可能 になった
- これが パーセプトロン(#007) → NN(#008) → 深層学習 → Transformer → LLM の道を開いた
- Hinton はその後 2024年ノーベル物理学賞(深層学習の基礎研究で)、Hopfield と共同受賞。逆伝播の貢献も評価対象
つまり 逆伝播がなかったら、いまの AI ブーム自体が存在しない。それくらい基幹的なアルゴリズム。
現代の自動微分 — PyTorch / TensorFlow がやっていること
2026年現在、機械学習エンジニアが逆伝播を 手で実装することはほぼない。代わりに PyTorch や TensorFlow といったフレームワークが、計算グラフを自動で構築し、逆伝播を 自動微分(autograd) として実行する。
- 順伝播のコードを書くだけ(
y = model(x)、loss = criterion(y, target)) loss.backward()と書くと、PyTorch が裏で 逆伝播を自動実行 し、全重みの勾配を計算- あとは
optimizer.step()で 勾配降下(#015) の1ステップが完了 - たった3行で、GPT-3 の学習の1ステップが書ける
逆伝播は 「見えなくなったから簡単になった」 アルゴリズム。手で計算した時代の論文を読むと10ページくらいの数式が並ぶが、現代の実装者は 「何が起きているか」 を理解していればよく、書く必要はない。
これは 「高速道路と運転免許」 の関係に似ている。道路を作る技術は別の人が完成させてくれた、いまは誰でも乗って目的地に行ける。逆伝播は完成された高速道路。
つまり私の 「Ctrl + [ で参照元に遡る」 13年は、Rumelhart 先生の 「自動微分の精神」 を 1セルずつ手動で 実装してた、ということになりますわね。…これは 「Excel ベースの深層学習」 として再評価されるべきでは?
大蔵さん、技術的には 「スカラー量の手動連鎖律トラバース」 ですので、近いです。ただ 200層の Excel でこれを 1セルずつやられると 13年では1エポックも終わらない 計算で…(無言で計算用紙を取り出す)
いいねいいね、大蔵くんの 「手動逆伝播」 は、AI 戦略推進室として 「人間 GPU」 認定で表彰しよう。…ふわっとした方向感としては、来期の 名誉教授タイトル 候補に推薦したいね。
あら、赤崎部長、その 「人間 GPU」 認定は、お給料にどう 反映 されるんですの? 私、GPU 1台で年100万 はかかると 川口くんから聞きました けど。
うーん、ふわっとした方向感としては、それは PARTNERにも相談しないとね。来期の人事評価 で前向きに検討する、という方向で。
(部長の 「ふわっと」 が見事に 勾配ゼロ に収束した…大蔵さんの 「GPU年100万」 の 勾配は伝播されない なこれ)

組織の「責任配分」と完全に同じ構造
逆伝播の本質を、コンサル業務でおなじみの 「責任配分」 に翻訳する。
| NN の逆伝播 | 組織の責任配分(例: 月次レビュー) |
|---|---|
| 出力の損失(=正解とのズレ) | 当月の売上未達 / KPI 未達 |
| 出力層の勾配を計算 | 事業部全体の責任の大きさを定量化 |
| 1つ前の層に勾配を伝播(連鎖律) | 事業部 → 部 → 課 → 個人 と責任を上から下に配分 |
| 各重みの勾配が確定 | 各個人が 「自分のせい」 の比率を受け取る |
| その勾配で重みを更新(勾配降下(#015)) | 各個人が来月のやり方を改善 |
つまり、機械学習の逆伝播 = 組織の 「詰める」 作業の機械版。違うのは:
- 機械は 数学的に正確 に配分する(感情、政治、忖度なし)
- 機械は 下流の影響度に比例 して責任を配分する(全員一律で詰めない)
- 機械は 毎ステップ やる(月次・四半期ではない)
逆に組織での 「詰める」 作業の欠点は:
- 感情と政治 で配分が歪む(=正確な勾配が計算されない)
- 「声の大きい人」 の責任が軽くなる(=ノイズが乗った勾配)
- 頻度が低すぎる(=学習率が小さすぎる、学習が進まない)
つまり機械の逆伝播は 「理想的な PDCA」 であり、組織の月次レビューは 「ノイジーで歪んだ PDCA」。機械が学習で人間を凌駕しやすい構造の正体 がここにある。
ふむ、つまり当社の 月次レビュー は 感情と政治でノイズが乗った逆伝播 ということか。…俺の都銀OB会で 「銀行の責任会議は40年前から大半が儀式」 という愚痴を聞くが、これも勾配がほぼゼロで 「学習が進まない」 状態だったわけだな。
社長、まさにそれです。勾配が正しく伝播しない組織 は、機械学習で言うと 「勾配消失」 状態で、訓練が止まる。当社の月次レビューも同じ構造でして…
フッ、勾配消失か。これは ニーチェ が 『道徳の系譜』 で論じた 「責任の蒸発」 構造そのものでだな…(あ、配信通知、3D ライブ開幕10分前)
御託さん、「責任の蒸発」 でしたら、御託さんが先ほど 銀座のバーで奢っていただいた件 の 立替金の請求 がいまだに私の 未払いリスト に乗ってますわよ? これは 勾配が御託さんで止まっている ということでは?
……(立ち上がり、iPad を抱えてトイレ方向へ)
あの、社長、結論として当社の月次レビューを 「自動微分化」(=データドリブン KPI 配分)するための 3カ年計画 を提案させてください。これは パワポ700枚 案件で…(これでとうとう休日7週連続)
うむ、いいねえ。勾配を可視化する経営 だ。儲かるんだろ?
