誤差逆伝播法(シラバス 技術15)

1行の定義と◯×チェックは用語『誤差逆伝播法』の解説にあります。

学習目標

出力の誤差を出力層から入力層へさかのぼらせ、連鎖律を使ってすべての重みの勾配を効率よく求める誤差逆伝播法の仕組みを理解し、それが信用割当問題にどう答えたか、層を深くしたときに起きる勾配消失問題・勾配爆発問題の原因と対策を説明できるようにします。

要点

何をする方法か

ニューラルネットワークの学習では、すべての重みについて「少し動かすと誤差がどれだけ増減するか」(勾配)を知る必要があります。重みが数百万個あるモデルで、1つずつ動かして誤差を測り直すのは現実的ではありません。誤差逆伝播法は、出力側から入力側へ1回さかのぼる計算で、すべての重みの勾配をまとめて求める方法です。1986年にラメルハートらが多層のネットワークの学習に使えることを示し、広く使われるようになりました。

学習の1サイクルは次のとおりです。

  1. 順伝播:入力層から出力層へ計算を進め、予測を出します。
  2. 誤差の計算:誤差関数で、予測と正解のずれを求めます。
  3. 逆伝播:出力層から入力層へ向かって、各層の重みの勾配を順に求めます。
  4. 更新:勾配をもとに、最適化手法が重みを動かします。

誤差逆伝播法が担うのは3の部分です。4と混同しないようにします。

連鎖律

ニューラルネットワークは、層ごとの計算を何重にも組み合わせた合成関数です。合成関数の微分は、各段階の微分の掛け算で求められます。これが連鎖律です。

y = f(u)、u = g(x)のとき、dy/dx = (dy/du) × (du/dx)

たとえば、Aが1増えるとBが2増え、Bが1増えるとCが3増えるなら、Aが1増えたときCは2 × 3 = 6増えます。誤差逆伝播法は、出力層の近くで計算した微分を使い回しながら入力層側へ進むので、同じ計算を繰り返す無駄がありません。

信用割当問題

出力の誤差に対して、ネットワーク内のどの重みにどれだけ責任があるかを決める問題を、信用割当問題と呼びます。ミンスキーが1961年の論文で取り上げた問題です。出力層の重みは誤差と直接つながっているので責任をつかみやすい一方、隠れ層の重みの責任は直接にはわかりません。誤差逆伝播法は、連鎖律で各重みの勾配、つまり誤差への影響の大きさを求めることで、多層のネットワークでこの問題に答えを与えました。

勾配消失問題と勾配爆発問題

逆伝播では、各層の微分を次々に掛け合わせます。層が深いほど掛け算の回数が増え、次の問題が起きやすくなります。

勾配消失問題勾配爆発問題
起きる仕組み1より小さい値を何度も掛け、勾配がほぼ0になる1より大きい値を何度も掛け、勾配が極端に大きくなる
症状入力層に近い層の重みがほとんど更新されない重みが大きく跳ね、学習が発散する
主な対策ReLU関数、重みの初期値の工夫、バッチ正規化、スキップ結合、LSTM・GRU勾配クリッピング、重みの初期値の工夫

シグモイド関数の微分は最大でも0.25です。重みの影響を除き、この最大値を10層分掛けるだけでも0.25の10乗 ≈ 0.00000095となり、約100万分の1まで小さくなります。どちらの問題も、時間方向に展開すると深いネットワークになるRNNで特に起きやすいことが知られています。

G検定で問われる深さ

偏微分を手で計算する必要はありません。連鎖律で各層の微分を掛け合わせて勾配を求めること、計算の向きが出力層から入力層であること、勾配消失・勾配爆発が起きる理由と代表的な対策、信用割当問題の意味を説明できれば十分です。

つまずきやすい点

  • 誤差逆伝播法は各重みの勾配を求める方法で、その勾配を使って重みをどれだけ動かすかは勾配降下法などの最適化手法が決める、という役割分担
  • 勾配消失問題で更新されにくくなるのは、出力層から遠い入力層側の重みである点
  • 勾配消失問題は1より小さい値、勾配爆発問題は1より大きい値を何度も掛けることで起き、勾配爆発には勾配の大きさに上限を設ける勾配クリッピングが代表的な対策である点
  • 信用割当問題は、出力の誤差に対してどの重みにどれだけ責任があるかを決める問題で、誤差逆伝播法は隠れ層の重みについてこれを勾配として計算する点

シラバスのキーワード

勾配消失問題、勾配爆発問題、信用割当問題、連鎖律

練習問題

  1. 誤差逆伝播法の仕組み
  2. 勾配爆発の症状と対策
  3. 連鎖律による勾配の計算
  4. 誤差逆伝播法と最適化手法の役割
  5. 信用割当問題の現れ方

混同しやすい用語

この項目の関連用語

ディープラーニングの概要の中項目
  1. ニューラルネットワークとディープラーニング
  2. 活性化関数
  3. 誤差関数
  4. 正則化
  5. 誤差逆伝播法
  6. 最適化手法

表示設定

テーマ
文字の大きさ
問題演習