誤差逆伝播法 (Backpropagation)
人工ニューロンを何層にも重ねたマルチレイヤーのネットワークにおいて、「途中の隠れ層にあるパラメータ」がどれだけ最終出力の誤差に影響を与えているかを計算することは容易ではありません。微分の連鎖律(チェインルール)を用いて、出力層から入力層に向けて誤差の責任(勾配)を巻き戻すように計算し、すべての重みを一度に効率よく更新するアルゴリズム「誤差逆伝播法」の数理を学びます。
1. 隠れ層のパラメータ調整問題
出力層に近い重みパラメータであれば、「予測値と正解の誤差」を直接反映して調整できます。しかし、入力層と出力層の間に挟まれた「隠れ層(Hidden Layer)」のニューロンの重みについては、それが最終的な出力のズレにどれだけ寄与したのかを直接測定できません。
この課題をクリアし、多層のニューラルネットワークの学習を可能にしたのが、1980年代にデビッド・ラメルハートらによって普及した誤差逆伝播法(バックプロパゲーション)です。
2. 合成関数の微分とチェインルール(連鎖律)
誤差逆伝播法の数学的根拠は、微積分におけるチェインルール(Chain Rule / 連鎖律)です。 チェインルールとは、「複数の関数が合成されているとき、合成関数の微分は、それぞれの関数の微分の掛け算として求められる」という性質です。
例えば、変数 $x$ から中間変数 $y$ が決まり、$y$ から最終変数 $z$ が決まる合成関数があるとします($z = g(y), y = f(x)$)。 このとき、$x$ の微小な変化が最終的な $z$ に与える影響度(微分 dz/dx)は、次のように掛け算の形で表せます。
dz / dx = (dz / dy) * (dy / dx)
この原理をニューラルネットワークに適用します。 ネットワークは、各層のニューロンが計算した結果を次の層へ渡す「巨大な合成関数の連鎖」とみなせます。 したがって、最終出力の誤差(Loss)に対する、最も手前(入力層側)にある重み $w$ の寄与度(偏微分 ∂Loss / ∂w)は、出力側から各ノードでの局所的な微分係数を逆向きに順次掛け算していくことで算出できます。
3. アルゴリズムとしての効率的な逆伝播計算
誤差逆伝播法のアルゴリズムは、以下の2つのステップを繰り返すことで、効率的なパラメータ調整を実現しています。
- 順伝播(Forward Propagation)フェーズ:
入力をネットワークに通し、各ニューロンの出力値を計算してメモリに保存しながら、最終出力と目的関数による「誤差(Loss)」を算出します。 - 逆伝播(Backward Propagation)フェーズ:
算出された誤差を出発点として、各ノードの出力値を用いて局所的な微分(偏微分)を計算し、それを掛け合わせながら逆方向に伝播します。この過程で、すべての重み・バイアスに対する勾配(調整すべき方向)が決定されます。
この手法の最大の利点は「計算コストの低さ」にあります。 もし、数値微分(各パラメータを個別に少しだけ増やして誤差がどう変わるか調べる手法)を行っていた場合、パラメータ数が1億個あれば、1回更新するために1億回以上の順伝播計算が必要になります。 しかし、誤差逆伝播法を使えば、わずか1回の順伝播と1回の逆伝播(順伝播とほぼ同じ計算コスト)だけで、1億個すべてのパラメータの勾配を厳密かつ同時に計算することができます。
次節では、この効率的な誤差逆伝播法をベースに、層を極限まで深くした「深層学習(ディープラーニング)」と、現代のChatGPTなどに代表される大規模言語モデル(LLM)の核心的アーキテクチャについて学びます。