Web教科書

BPTT

Back Propagation Through Time (BPTT)

解説:時間を「巻き戻して」犯人を探す

BPTT(時間方向の誤差逆伝播法)は、RNNを学習させるための専用アルゴリズムです。名前の通り、「時間の流れを遡って(Back Through Time)、誤差を伝えていく」手法です。

通常のニューラルネットワークと違い、RNNは「ループ構造(自分への戻り)」を持っています。このままでは計算ができないため、以下のような工夫を行います。

🎞️ BPTTの3ステップ

  1. 展開(Unroll):
    ループ構造を無理やり引き伸ばし、「過去から現在へと続く、一直線の長いネットワーク」に見立てます。
    (例:10秒間のデータなら、10個の層が横に並んでいるとみなす)
  2. 逆伝播(Backprop):
    現在発生した誤差(予測ミス)を、現在(t) → 1秒前(t-1) → 2秒前(t-2)… と、過去に向かって順番に伝えていきます。
  3. 更新:
    「あの時の判断が今のミスにつながったんだな」と特定し、重みを修正します。

長すぎる過去は「忘れる」問題

BPTTには致命的な弱点があります。遡る時間が長くなればなるほど、掛け算の回数が増え、誤差の情報が途中で消えてしまう勾配消失問題が起きやすいのです。

これに対処するため、ある程度の長さ(例:10ステップ分)で過去への遡りをバッサリ打ち切る手法を「Truncated BPTT(打ち切りBPTT)」と呼びます。

手法 特徴
通常の誤差逆伝播法
(Backpropagation)
層の「深さ」方向に遡る。
画像認識(CNN)などで使用。
BPTT 層の「時間」方向に遡る。
時系列データ(RNN)で使用。
※計算コストが高く、勾配消失しやすい。
BPTTによる時間展開のイメージ図

G検定対策

出題ポイント

  • キーワード:RNNの学習には、ネットワークを時間方向に「展開(Unroll)」して計算するBPTTが使われる。
  • 問題点:層が深くなるのと同じ状態になるため、勾配消失勾配爆発が起きやすい。
  • 対策:計算を途中で区切る「Truncated BPTT」が実用的によく使われる。

ひっかけ対策

  • × BPTTを使えば、どんなに長い文脈も学習できる
    (解説)理論上は可能ですが、実際には勾配消失により、遠い過去の記憶は失われます。それを防ぐにはLSTMなどの構造が必要です。
  • × CNNの学習に使われる
    (解説)CNNは「画像(空間)」なので通常のバックプロパゲーションです。BPTTは「RNN(時間)」です。
タイトルとURLをコピーしました