Seq2Seq 모델에서 Teacher Forcing 이해하기
Source: Dev.to
Teacher Forcing이란?
seq2seq 신경망을 학습시킬 때, 디코더는 한 번에 하나씩 토큰을 생성하며 출력 시퀀스를 단계별로 구축합니다. 각 단계에서는 다음 토큰을 예측하기 위해 이전 토큰을 입력으로 사용해야 합니다. 이 이전 토큰의 선택은 모델이 얼마나 잘 학습되는지에 직접적인 영향을 미칩니다.
Teacher Forcing 없이
Teacher Forcing을 사용하지 않으면, 모델은 자신이 이전에 예측한 토큰을 입력으로 사용합니다.
예시 (목표 시퀀스: “I am learning”):
| 단계 | 입력 토큰 | 예측 토큰 |
|---|---|---|
| 1 | — | I ✅ |
| 2 | I | Is ❌ |
| 3 | Is | … (오류가 전파됨) |
초기의 작은 실수 하나가 이후 모든 예측을 올바른 시퀀스와 멀어지게 합니다. 오류가 단계별로 누적되어 학습이 느리고 불안정해지며, 모델이 올바른 시퀀스를 배우기 어려워집니다.
Teacher Forcing 사용 시
Teacher Forcing을 적용하면, 모델의 자체 예측을 넣는 대신 데이터셋에 있는 올바른 토큰을 매 단계마다 제공하게 됩니다. 모델이 어느 단계에서 실수를 하더라도, 다음 단계로 넘어가기 전에 올바른 토큰으로 교체합니다. 이렇게 하면 모델은 학습하는 동안 항상 올바른 문맥을 보게 됩니다.
장점
- 빠른 수렴 – 학습 전 과정에서 정확한 문맥을 제공받습니다.
- 안정적인 학습 – 오류가 시간 단계마다 누적되지 않습니다.
- 올바른 시퀀스 학습이 용이 – 디코더가 현재 은닉 상태를 다음 실제 토큰에 매핑하는 데 집중하게 되며, 자체 실수에서 회복하려 애쓰지 않아도 됩니다.