BPTTとは

ビーピーティーティーbackpropagation through time略語 BPTT別名 通時的誤差逆伝播法、Backpropagation Through Time

1行定義

BPTTとは、RNNを時刻ごとに展開して1つの深いネットワークとみなし、誤差逆伝播法で時間をさかのぼりながら勾配を計算する学習方法のことです。

くわしく

BPTT(Backpropagation Through Time)は、RNNを学習させるための誤差逆伝播法です。日本語では通時的誤差逆伝播法とも呼ばれます。

しくみ

RNNは、前の時刻の隠れ層の状態を、次の時刻の計算に加えて使います。このような帰還のある構造には、通常の誤差逆伝播法をそのまま使えません。そこで、時刻1、時刻2、…と各時刻の計算を横に並べて書き出します。これを「時間方向に展開する」といいます。展開すると、RNNは系列の長さと同じ数の層を持つ、深いネットワークとして扱えます。

この展開したネットワークに誤差逆伝播法を使い、最後の時刻から最初の時刻へとさかのぼりながら勾配を計算するのがBPTTです。展開した各時刻の層は同じ重みを共有しています。そのため、時刻ごとに求めた勾配を足し合わせて、1つの重みを更新します。

長い系列で起きる問題

さかのぼる時刻が増えるほど、同じ重みに関わる微分を何度も掛け合わせることになります。そのため、勾配が急速に小さくなる勾配消失問題や、急激に大きくなる勾配爆発問題が起きやすくなります。結果として、遠い過去の情報が学習に反映されにくくなります。また、逆伝播のために全時刻の途中の値を保存しておく必要があり、系列が長いほど多くのメモリを使います。

主な対策

  • 打ち切り型BPTT(truncated BPTT):さかのぼる時刻の数を一定で打ち切り、計算量とメモリを抑えます。ただし、打ち切った範囲より前との関係は学習しにくくなります。
  • 勾配クリッピング:勾配の大きさに上限を設け、勾配爆発を防ぎます。
  • LSTM・GRU:ゲート機構で情報を長く保ち、勾配消失を起こしにくくします。

覚え方

「BPTTは、RNNを横に広げてから逆伝播」と覚えます。

G検定での出題

RNNを時間方向に展開して誤差逆伝播法を使う仕組みと、長い系列で勾配消失・勾配爆発が起きる理由が問われます。LSTMやGRU、勾配クリッピングなどの対策との関係も問われます。

◯×チェック

  1. BPTTでは、展開した各時刻の層が同じ重みを共有しているため、各時刻で求めた勾配を足し合わせて重みを更新する。

    答えを見る

    答え ◯ 正しい

    時刻ごとに別の重みがあるわけではありません。1つの重みが全時刻で使われるため、各時刻の寄与を合計します。

  2. BPTTでさかのぼる時刻の数を増やすほど、計算に必要なメモリは少なくなる。

    答えを見る

    答え × 誤り

    逆伝播のために各時刻の途中の値を保存しておく必要があるため、さかのぼる時刻が多いほどメモリを多く使います。

  3. 打ち切り型BPTTは、さかのぼる時刻の数を一定で区切ることで、計算量とメモリの使用量を抑える方法である。

    答えを見る

    答え ◯ 正しい

    その代わり、区切った範囲より遠い過去との関係は学習しにくくなります。

練習問題

BPTTの問題(5問)
  1. エルマン型とジョルダン型RNN
  2. BPTTの逆伝播の進め方
  3. 教師強制と推論時のずれ
  4. BPTTの打ち切りと学習範囲
  5. CECが勾配消失を防ぐ理由

AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

対応シラバス:シラバス第1.4版 技術22

改訂履歴

表示設定

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