冒頭でクイズから入ります。ニューラルネットワークがどうやって賢くなるのか、その核心にある『誤差逆伝播法 (バックプロパゲーション)』を、つむぎの迷走を救いながら理解していきましょう。意外にも、数式より『どこで間違えたか遡る』という感覚が理解の鍵です。
確認クイズ
ニューラルネットワークの学習で使われる、誤差を出力側から入力側へ伝える手法は?
- 順伝播
- 誤差逆伝播法
- 強化学習
- クラスタリング
こたえを見る
正解: 2. 誤差逆伝播法
誤差逆伝播法 (Backpropagation) は、出力層で計算した誤差を、連鎖律を使って入力層の方向へ伝えていき、各層の重みを更新する深層学習の核心アルゴリズムです。
さて、ニューラルネットワークが学習するとき、まず入力から出力へ計算を進めて予測を出します。
これを順伝播と呼ぶわ。
その予測と正解の差を損失関数で数値化して、次にその誤差を出力層から入力層に向けて逆方向に伝えていくの。
これが誤差逆伝播法。
数学的には、多変数関数の連鎖律を使って、各重みに対する誤差の勾配を効率的に計算するんですよね。
偏微分の連鎖で∂L/∂wを層ごとに分解して、ヤコビ行列を順々に掛けていって……
つむぎちゃん、ちょっと待って! チェインルールとか偏微分とかヤコビ行列とか、急に出てきてあたし全然ついていけないんだけど!
あ……そっか、ごめん。
ちょっと先走りすぎたかも。
つい数式モードに入っちゃう癖が……。
つむぎちゃん、落ち着いて〜? ましろ、もっと簡単な言葉で教えてほしいのぉ。
つむぎさん、焦らなくていいのよ。
ジャスミンちゃんが分かる言葉で説明してみましょうか。
ジャスミンちゃん、テストの答え合わせで、どこで間違えたか一個一個さかのぼること、あるじゃない? それと同じなの。
あー! マジか! 答えが違ってたら、最後の計算から、その前の計算って逆に辿っていって『ここがミスだった!』って探すやつじゃん!
まさにそれ。
ニューラルネットワークも同じで、出力の誤差を順に遡って『この層のこの重みが悪かったから、少し減らしましょう』と少しずつ調整するの。
よっしゃ、めっちゃ納得! で、その調整って具体的にどうやんの?
勾配降下法という仕組みで、学習率に勾配をかけた分だけ重みを動かすのよ。
これを何万回も繰り返すうちに、ネットワーク全体の誤差が小さくなっていくの。
1回の繰り返しをイテレーション、データ全体を1周するのをエポックと呼ぶわ。
間違いから学ぶって、ましろたち人間も同じなのぉ! 先生に『ここ違うよ』って言われたら、どこがダメだったか遡って考えるもん。
先生、助かりました……つい数式で話してしまって。
1986年にRumelhartらが発表した論文で広まったのがこの手法ですよね。
それまで多層パーセプトロンは『どう学習させるか』が分からなかったけれど、これで道が開けたと。
つむぎさんの厳密さは大切よ。
ジャスミンちゃんとましろさんの素朴さも大切。
両方あるから学習が深まるの。
じゃあ全部の重みに対して『どれくらい動かすか』を一気に計算できちゃうのが、この逆伝播のスゴさってわけじゃん!
確認クイズ
誤差逆伝播法で使われる数学的な原理はどれか?
- ベイズの定理
- 連鎖律 (チェインルール)
- フーリエ変換
- 最小二乗法
こたえを見る
正解: 2. 連鎖律 (チェインルール)
誤差逆伝播法は微分の連鎖律 (合成関数の微分則) を用いて、出力層の損失から各層の重みに対する勾配を効率的に計算します。この勾配を使って勾配降下法で重みを更新します。