teacher forcing 기법
decoder의 예측 수행은 이전 예측 단어를 다음 예측을 위한 input으로 넣어준다.
문제가 무엇이냐? 예측이라는 것이 항상 정확할까? 특히 학습 초반에는 예측이 정확할 경우가 거의 없다.
그러면서 정확히 예측하지 못한 단어가 다음 단어 예측을 위한 input으로 들어가면서 이런 오류가 누적된다는 것. 그래서 보통 학습이 더디다.
이런 결과를 피하고싶어서 이전 단어 예측값과는 무관하게 decoder의 다음 단어 예측을 위한 input으로 무조건 정답을 넣어주는 것을 teacher forcing 기법이라고 한다.
첫 단어의 정답은 the인데 예측결과 a가 나왔다. 이것을 넣지 않고 그냥 무조건 the를 넣어주는 것이다.
위와 같은 방법은 당연하겠지만 학습속도를 올릴수 있다. 정답으로 예측하니까
당연하지만 teacher forcing으로 학습을 하더라도 최종 test의 inference 과정에는 정석적인 진행을 한다.
이전 단어의 예측값을 다음 단어의 예측을 위해 넣는다. 정답을 모르니까 당연한거지만
그렇기 때문에 teacher forcing으로 학습하는 것이 올바른 방법인지 의문이 든다.
하지만 그렇지 않으면 속도가 너무 느리다.
차선책으로 teacher forcing과 그렇지 않은 방법의 절충안을 사용한다.
학습초반에는 teacher forcing을 사용하고 어느정도 꽤 맞추는듯하면 teacher forcing을 쓰지 않고 학습을 진행하는 것이다.
'딥러닝 > NLP' 카테고리의 다른 글
greedy decoding(greedy search)은 왜 최적이 아닐까? (0) | 2022.04.17 |
---|---|
attention 구조는 NLP를 어떻게 바꾸었는가 (0) | 2022.04.15 |
예시로 이해하는 attention의 기본 아이디어 (0) | 2022.04.14 |
attention 구조는 왜 등장했을까? -attention의 근본 아이디어- (0) | 2022.04.09 |
seq2seq model이란? (0) | 2022.04.05 |
TAGS.