드롭아웃

훈련 중에 가중치를 일부러 지우면 어떻게 될까요?

걱정거리

한 단어에만 기대는 모델

훈련에 쓴 문장은 잘 맞히는데 처음 보는 문장에서는 틀리는 상태를 과대적합이라고 합니다. 한 단어에 기대어 답을 외운 셈입니다.

선의 굵기는 개념을 보여 주는 예시입니다.

처방

가중치 일부를 무작위로 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%로 두었습니다.

다음 편

가리기 두 가지를 한 부품으로 묶습니다

5편문장이 여러 개 들어오면? 5강 목록