드롭아웃
훈련 중에 가중치를 일부러 지우면 어떻게 될까요?
걱정거리
한 단어에만 기대는 모델
훈련에 쓴 문장은 잘 맞히는데 처음 보는 문장에서는 틀리는 상태를 과대적합이라고 합니다. 한 단어에 기대어 답을 외운 셈입니다.
선의 굵기는 개념을 보여 주는 예시입니다.
처방
가중치 일부를 무작위로 0으로 만듭니다
기대던 단어가 지워지면 틀립니다. 틀리지 않으려면 다른 단어도 함께 써야 합니다. 이 방법이 드롭아웃입니다.
지울 자리는 계산할 때마다 새로 뽑습니다. 선의 굵기는 예시입니다.
실습
절반을 지우면 남은 값은 2배가 됩니다
지울 확률을 50%로 두었습니다. 36칸 중 15칸이 0이 되고, 남은 21칸은 1에서 2로 커졌습니다.
50%는 여러 번 했을 때의 평균입니다. 매번 정확히 절반이 지워지지는 않습니다.
왜 2배인가
전체 크기를 그대로 두려는 것입니다
앞 장 표의 넷째 줄입니다. 지우기만 하면 합이 6에서 3으로 줄고, 남은 값을 2배로 키우면 다시 6입니다. 드롭아웃을 끄고 쓸 때와 크기가 맞습니다.
어텐션에 적용
코잘 가중치를 한 번 더 지웁니다
starts 줄은 0.38, 0.31, 0.31이 2배가 됐고 journey 줄은 둘 다 지워졌습니다. 지울 때마다 줄의 합은 1에서 벗어나지만, 여러 번 되풀이한 평균은 원래 크기와 같습니다.
드롭아웃은 훈련할 때만 켜고 실제로 쓸 때는 끕니다. 그래서 쓸 때는 줄의 합이 다시 1입니다. 지워지는 자리는 컴퓨터 환경에 따라 달라질 수 있습니다.
두 가지 가리기
코잘 마스크와 드롭아웃은 다릅니다
코잘 마스크는 정답이 새는 것을 막고, 드롭아웃은 한 단어에 기대는 것을 막습니다.
실제 GPT 훈련에서는 지울 비율로 10%나 20%를 씁니다. 실습은 차이가 잘 보이도록 50%로 두었습니다.
다음 편