誤差逆伝播法
読み: ごさぎゃくでんぱほう
ニューラルネットワークの出力誤差を出力層から入力層へ逆方向に伝播させ、各パラメータの勾配を効率的に計算するアルゴリズム。
誤差逆伝播法 (Backpropagation) は、損失関数の値をネットワークの各重みパラメータで偏微分した勾配を、連鎖律 (Chain Rule) を用いて出力層から入力層へ逆順に計算するアルゴリズムである。1986 年に Rumelhart らが再発見して以来、ニューラルネットワーク学習の基盤技術として定着している。
順伝播 (Forward Pass) で入力から予測値を計算し、損失関数で誤差を算出した後、逆伝播 (Backward Pass) で各層の勾配を計算する。得られた勾配を用いて確率的勾配降下法 (SGD) や Adam などの最適化アルゴリズムがパラメータを更新する。ResNet-50 の約 2,500 万パラメータすべてがこの仕組みで同時に最適化される。
- 連鎖律: 合成関数の微分法則を利用し、各層の局所勾配を掛け合わせることで全体の勾配を効率的に求める。計算量は順伝播と同程度の O(n) で済む
- 勾配消失と勾配爆発: 層が深くなると勾配が指数的に減衰 (消失) または増大 (爆発) する問題が生じる。バッチ正規化、残差接続、勾配クリッピングで対処する
- 自動微分: PyTorch の
autogradや TensorFlow のGradientTapeは計算グラフを動的に構築し、誤差逆伝播を自動実行する。手動での勾配計算は不要
画像処理モデルの学習では、1 バッチ (例: 32 枚) の画像に対して順伝播と逆伝播を 1 セット実行し、勾配の平均でパラメータを更新する。この反復を数万回繰り返すことで、モデルは画像の特徴を学習していく。