---
title: "教師強制（Teacher Forcing）とは？正解を次の入力に使う学習手法【G検定対策】"
description: "教師強制（Teacher Forcing）は、系列モデルの学習中に前時刻の予測ではなく正解トークンを次の入力へ渡す方法です。推論時との入力条件の差、Exposure Biasとの関係、RNN・Seq2Seqの生成問題での選択肢判断を整理します。"
last_modified_at: "2026-06-24"
canonical_url: "https://stemtazoo.github.io/gk/teacher-forcing/"
section: "gk"
---

## まず結論
教師強制（Teacher Forcing）とは、**系列モデルの学習時に、モデルが前の時刻で出した予測ではなく、正解ラベルを次の入力として与える学習手法**です。

G検定では、**RNNなどの系列モデルで、学習時の誤差の蓄積を防ぎ、学習を安定させる方法**として押さえます。

ただし重要なのは、**教師強制は学習時の工夫であり、推論時には正解ラベルを使えない**という点です。

## 直感的な説明
系列モデルでは、文章や時系列データのように、順番のあるデータを扱います。

たとえば文章生成では、本来は次のように処理します。

> 前の出力 → 次の入力

しかし、学習の初期段階ではモデルの予測がまだ不安定です。

そのため、前の出力が間違っていると、次の入力もズレてしまい、その後の予測も連鎖的に崩れます。

イメージとしては、道案内の練習中に、最初の角で間違えると、その後の道順も全部ずれてしまうようなものです。

そこで教師強制では、学習中だけ、

> モデルの予測ではなく、正解を次の入力にする

ことで、モデルに**正しい流れをたどらせながら学習**させます。

## 定義・仕組み
教師強制は、主に **RNN、LSTM、GRU などの系列モデル**で使われる学習手法です。

系列モデルでは、ある時刻の出力が、次の時刻の入力に関係します。

通常の流れは次のとおりです。

| 方法 | 次の入力に使うもの | 特徴 |
|---|---|---|
| 教師強制 | 正解ラベル | 学習が安定しやすい |
| 自由生成 | モデル自身の出力 | 推論時に近い |

教師強制では、学習時に次のような流れになります。

1. ある時刻の入力をモデルに入れる
2. モデルが次の値を予測する
3. 次の時刻では、モデルの予測ではなく正解ラベルを入力する
4. この流れを繰り返して学習する

このようにすることで、前の予測ミスが次の入力に入らないため、**誤差が連鎖的に広がりにくくなります**。

## いつ使う？（得意・不得意）
教師強制は、**出力が次の入力に影響する系列予測**で使われます。

代表例は次のとおりです。

- 機械翻訳
- 文章生成
- 音声認識
- 時系列予測
- RNN / LSTM / GRU を使う系列モデル

たとえば機械翻訳では、前に生成した単語が次の単語の予測に影響します。

このとき、学習初期からモデル自身の誤った出力を使い続けると、学習が不安定になりやすくなります。

そのため、教師強制によって正解系列を使いながら、まずは安定して学習させます。

一方で、教師強制には注意点もあります。

学習時は正解ラベルを使えますが、実際に文章を生成するときや予測するときには、正解ラベルは分かりません。

そのため推論時には、モデル自身の出力を次の入力として使う必要があります。

つまり、

> 学習時：正解を次の入力に使える  
> 推論時：モデルの出力を次の入力に使う

という違いが生まれます。

この違いによって、学習時はうまく見えても、推論時に予測が崩れることがあります。

この問題は **exposure bias** と呼ばれます。

## G検定ひっかけポイント
G検定では、教師強制そのものを細かい数式で問うよりも、**何を次の入力に使うのか**が問われやすいです。

### よくある誤解
- ❌ 教師強制は、モデルの出力を次の入力に使う方法
- ❌ 教師強制は、推論時にも正解ラベルを使う方法
- ❌ 教師強制は、誤差をあえて蓄積させる方法
- ❌ 教師強制は、強化学習でQ値を更新する方法

### 正しい理解
- ⭕ 教師強制は、学習時に正解ラベルを次の入力に使う
- ⭕ 系列モデルの学習を安定させる
- ⭕ 前の予測ミスが次に伝わることを防ぎやすい
- ⭕ 推論時には正解ラベルを使えない

### 切り分けの判断基準
問題文に次のような表現があれば、教師強制を考えます。

- 「正解ラベルを次の入力として与える」
- 「系列モデルの学習を安定させる」
- 「前時刻の誤った予測が次時刻に影響することを防ぐ」
- 「学習時に正解系列を使う」

逆に、

- 「モデル自身の出力を次の入力にする」
- 「実際に生成を行う」
- 「推論時の挙動」

が中心なら、教師強制ではなく、自由生成や推論時の処理を考えます。

## まとめ（試験直前用）
教師強制は、**系列モデルの学習時に、正解ラベルを次の入力として与える手法**です。

試験直前は、次の3点で整理します。

- **正解ラベルを次の入力に使う**
- **RNNなどの系列モデルの学習を安定させる**
- **学習時のみ使える。推論時は使えない**

特に、

> モデルの出力ではなく、正解を入れる

と判断できれば、教師強制を選びやすくなります。
