0. この記事の要点
Section titled “0. この記事の要点”- ニューラルネットワークとは、アフィン変換 と成分ごとの非線形関数 を交互に合成しただけの関数です。損失もその先に合成されるので、全体は 1 つの合成関数になります。
- 合成関数の微分は、ヤコビ行列の積 です。逆伝播とは、この積を左から掛けるという、ただそれだけの計算順序の指定です。
- 出力がスカラーのとき、左端は行ベクトルです。行ベクトルに行列を掛け続ければ計算はずっと「ベクトル×行列」で済み、右から掛ける場合の「行列×行列」より 1 桁安くなります。
- 一般の計算グラフに対して、随伴変数 の漸化式 が本当に偏微分を与えることを証明します(定理 4.3)。多層ネットワークの逆伝播はその特別な場合です。
- 逆伝播 1 回の計算量は順伝播 1 回の定数倍です。パラメータ数が のとき、数値微分なら に比例する回数の順伝播が要るので、実用規模では 10 万倍以上の差がつきます。
1. 動機:連鎖律を「知っている」ことと「安く計算できる」ことは別
Section titled “1. 動機:連鎖律を「知っている」ことと「安く計算できる」ことは別”勾配降下法では、パラメータ を で更新しました(定義 4.1[勾配降下法])。この式は勾配 が手に入ることを前提にしています。線形回帰やロジスティック回帰では、勾配を紙の上で 1 行に書き下せました(定理 5.1[ロジスティック回帰])。ところが層を重ねたニューラルネットワークでは、 を の式として展開すると人間が読めない大きさになります。しかもパラメータ数 は、小さなモデルでも 、現代の大規模モデルでは を超えます。
一番素朴な手は差分近似です。 番目のパラメータについて
と計算すれば、微分の公式を一切知らなくても勾配が得られます。しかしこれには の評価が 回必要です。 でも 20 万回、 なら話になりません。さらに、差分近似には打ち切り誤差と丸め誤差のせめぎ合いがあり、精度も限られます(演習 9.4)。
一方、ニューラルネットワークは合成関数です。合成関数の微分法(連鎖律)を使えば、微分は原理的には求まります。ではなぜ「逆伝播」という名前のアルゴリズムがわざわざ必要なのでしょうか。答えは計算の順序にあります。層が 個あるとき、連鎖律は
というヤコビ行列の積を与えます( は損失のヤコビ行列で 、 は第 層のヤコビ行列で )。行列の積は結合法則を満たすので、どの順で掛けても答えは同じです。しかしコストは同じではありません。すべての層幅を とすると、
| 掛ける順序 | 途中の形 | 1 回の積のコスト | 全体 |
|---|---|---|---|
| 右から( から) | 行列 | ||
| 左から( から) | 行ベクトル |
逆伝播とは、この表の下の行、すなわち左から掛けるという選択のことです。出力がスカラー(損失は 1 つの実数)だから左端が行ベクトルになり、行ベクトルのまま右へ右へと押し込んでいける。この非対称性が、深層学習を計算可能にしている唯一といってよい仕掛けです。
歴史的には、この「逆向きの微分」は 1970 年に Linnainmaa が丸め誤差の解析のために定式化し([1])、1974 年に Werbos が学習アルゴリズムとして提案し、1986 年の Rumelhart・Hinton・Williams の論文([2])で機械学習の標準手法として広まりました。計算量の一般論としては、Baur と Strassen が 1983 年に「勾配の計算コストは関数値の計算コストの定数倍で抑えられる」ことを証明しています([3])。
この記事の誤りを報告する ・運営: 夢現技研合同会社 ・料金プラン ・利用条件 ・特定商取引法に基づく表記
© 2026 夢現技研合同会社 ・本文の LLM への入力は自由です。コード例は MIT ライセンスです。