G検定(ジェネラリスト検定)
きょうしきょうせい
教師強制
Teacher Forcing
出力から次の時刻の隠れ状態への結合を持つRNNで、訓練時に正解の出力y(t)を次の時刻の入力として与える訓練手法。推論時はモデル自身の出力で代用する。
詳しい説明
何をする手法か
教師強制(Teacher Forcing)は、ある時刻の出力から次の時刻の隠れ状態への結合を持つRNN(再帰型ニューラルネットワーク)に適用できる訓練手法です。訓練時には、時刻tの正解の出力y(t)を訓練セットから取り出し、次の時刻の隠れ状態h(t+1)への入力として与えます。モデルが自分で出した出力ではなく、正解そのものを次の時刻へ渡す点が特徴です。
訓練時と推論時の違い
訓練を終えたモデルを実際に動かすとき(推論時)には、正解の出力は一般に分かりません。そこで、正解y(t)をモデル自身の出力o(t)で近似し、その出力をモデルに戻して次の時刻の計算に使います。次の時刻へ渡す値は、訓練時には正解、推論時にはモデル自身の出力であり、両者で入り方が異なります。
BPTTとの関係
教師強制は、もともと隠れ層どうしの結合を持たないモデルで、BPTT(誤差逆伝播法を時間方向へ拡張したもの)を避ける方法として考えられました。隠れ層どうしの結合を持つモデルにも、ある時刻の出力が次の時刻に計算される値へ結合している限り、教師強制を適用できます。
ただし、隠れユニットが以前の時刻の関数になった時点で、BPTTが必要になります。そのため、教師強制とBPTTの両方を使って訓練するモデルもあります。教師強制を使えば常にBPTTが不要になる、というわけではありません。
弱点と緩和策
厳密な教師強制の弱点は、モデルを後で閉ループのモードで使う場合に現れます。閉ループのモードとは、モデルの出力(または出力分布から得たサンプル)を入力として戻しながら動かす使い方です。この場合、訓練中にモデルが見る戻り入力と、テスト時に見る入力とが大きく異なりうります。訓練中は正解が入ってくるのに対し、テスト時にはモデル自身の出力が入ってくるためです。
この問題を和らげる方法の一つは、教師強制による入力と、自由実行(モデル自身の出力を使う)による入力の両方で訓練することです。例えば、何ステップか先までは教師強制を使って正解の目標を予測し、残りのステップではモデル自身の出力を使う自由実行のモードで生成させる、というやり方があります。
学習の整理
教師強制はシラバス2024のキーワードに含まれる語です。訓練時に正解を渡すという定義、推論時にはモデル自身の出力で代用するという違い、閉ループで使うときの弱点とその緩和策、の3点を組にして押さえると整理しやすくなります。
試験で問われること
G検定
- 教師強制は、ある時刻の出力から次の時刻の隠れ状態への結合を持つRNNに適用できる訓練手法で、訓練時には訓練セットの正解の出力y(t)を、次の時刻の隠れ状態h(t+1)への入力として与える。
- 推論時には正解の出力が一般に分からないため、正解y(t)をモデル自身の出力o(t)で近似し、その出力をモデルに戻して次の時刻の計算に使う。訓練時と推論時で次の時刻へ渡す値が異なる点を押さえる。
- 教師強制は、もともと隠れ層どうしの結合を持たないモデルでBPTTを避ける方法として考えられた。隠れ層どうしの結合を持つモデルでも、ある時刻の出力が次の時刻の値に結合していれば適用できる。
- 隠れユニットが以前の時刻の関数になった時点でBPTTが必要になるため、教師強制とBPTTの両方を使って訓練するモデルもある。教師強制を使えば常にBPTTが不要になるわけではない点に注意する。
- 厳密な教師強制では、出力を入力に戻す閉ループのモードで使うと、訓練時とテスト時の入力が大きく異なりうる。緩和策として、教師強制による入力と自由実行による入力の両方で訓練する方法がある。
最終更新日: 2026/09/23