文章目錄
- 什么是教師強制?
- 教師強制(Teacher Forcing)的定義
- 原比例(Original Proportion)
- 教師強制的舉例說明(一)
- 教師強制的舉例說明(二)
- 優點和缺點
- 解決曝光偏差的方法
什么是教師強制?
教師強制(Teacher Forcing)的定義
教師強制是一種在訓練循環神經網絡(RNN)或序列到序列(Seq2Seq)模型時常用的技巧。其核心思想是:在訓練過程中,不使用模型自身在上一個時間步的預測輸出作為下一個時間步的輸入,而是直接使用真實的標簽(ground truth)作為輸入。這種方法可以加速模型的收斂速度并提高訓練的穩定性。
原比例(Original Proportion)
“原比例”并不是一個與“教師強制”直接相關的術語。在教師強制的上下文中,可能提到的是“教師強制的比例”,即在訓練過程中使用真實標簽作為輸入的比例。例如,在計劃采樣(Scheduled Sampling)中,會逐漸減少使用真實標簽的比例,增加使用模型自身預測的比例。
教師強制的舉例說明(一)
假設我們正在訓練一個機器翻譯模型,將英語翻譯成法語。輸入序列是英語句子,目標序列是對應的法語句子。以下是教師強制的具體應用過程:
訓練階段
- 輸入序列:假設輸入的英語句子是“Mary had a little lamb”。
- 目標序列:對應的法語句子是“Marie avait un petit agneau”。
- 教師強制的訓練過程:
- 在時間步1,模型的輸入是“Mary”,目標輸出是“Marie”。
- 在時間步2,不使用模型在時間步1生成的輸出,而是直接將“Marie”作為輸入,目標輸出是“avait”。
- 在時間步3,將“avait”作為輸入,目標輸出是“un”,依此類推。
- 每個時間步的損失是通過計算模型輸出與真實目標之間的交叉熵來計算的,然后通過反向傳播更新模型參數。
推理階段
在推理階段(即實際使用模型進行翻譯時),模型無法獲取真實的目標序列,因此需要使用自身生成的輸出作為下一個時間步的輸入:
- 輸入序列:仍然是“Mary had a little lamb”。
- 生成過程:
- 在時間步1,模型的輸入是“Mary”,生成的輸出可能是“Marie”。
- 在時間步2,將“Marie”作為輸入,生成的輸出可能是“avait”。
- 在時間步3,將“avait”作為輸入,生成的輸出可能是“un”,依此類推,直到生成結束標記或達到最大長度。
教師強制的舉例說明(二)
場景:機器翻譯(英譯中)
輸入序列(英文): “I love cats”
目標序列(中文): “我 愛 貓”
訓練步驟:
-
編碼器將 “I love cats” 編碼為上下文向量 H_enc。
-
解碼器輸入右移后的真實標簽:[, “我”, “愛”](對應預測目標 [“我”, “愛”, “貓”])。
-
在預測第3個詞 “貓” 時,解碼器的輸入是 + “我” + “愛”(而非模型自己可能預測錯的中間結果)。
若不用教師強制:
假設模型第一步錯誤預測為 “你” 而非 “我”,則后續輸入變為 [, “你”],錯誤會持續放大,導致訓練困難。
優點和缺點
- 優點:
- 加速訓練:使用真實標簽可以減少模型在早期訓練階段因錯誤預測而導致的連鎖反應,從而加速收斂。
- 提高穩定性:避免了模型在訓練初期可能產生的錯誤預測的累積效應,使得訓練過程更加穩定。
- 缺點:
- 曝光偏差(Exposure Bias):模型在訓練時只接觸到真實的數據分布,而在實際推理時,模型需要根據自身的預測進行下一步的生成,這兩種情況存在差異,可能導致模型在推理時表現下降。
解決曝光偏差的方法
為了解決曝光偏差,研究者們提出了一些改進方法,例如:
-
計劃采樣(Scheduled Sampling):在訓練過程中,逐漸增加使用模型自身預測作為輸入的概率,從完全教師強制逐漸過渡到部分依賴模型自身預測。
-
Mixer-Seq:結合教師強制和自由運行(free-running)的訓練方式,讓模型在訓練時同時接觸到真實數據和自身生成的序列。
-
課程學習(Curriculum Learning):
從簡單樣本開始,逐步增加難度。 -
強化學習微調:
在訓練后期使用強化學習(如RLHF)優化生成結果。
通過這些方法,可以在訓練階段更好地模擬推理階段的條件,從而提高模型在實際應用中的性能。