그레이디언트 소실
층을 많이 쌓으면 무조건 좋아질까요?
훈련의 순서
고칠 곳은 뒤에서 앞으로 알려 줍니다
출력을 정답과 비교해 틀린 정도를 구합니다. 그 신호를 맨 뒤 층부터 앞 층으로 전하면, 층마다 그것을 보고 자기 파라미터를 고칩니다.
파라미터는 모델 안에 든 숫자입니다. 틀린 정도를 손실, 뒤에서 앞으로 전하는 과정을 역전파라고 부릅니다.
신호의 이름
이 신호가 그레이디언트입니다
파라미터를 조금 바꿨을 때 틀린 정도가 얼마나 변하는지를 나타내는 숫자입니다. 크면 어느 쪽으로 고칠지 분명하고, 0에 가까우면 알 수 없습니다.
문제
층을 지날 때마다 신호가 줄어듭니다
앞 층으로 한 칸 갈 때마다 그 층의 값이 한 번씩 곱해집니다. 곱해지는 수가 1보다 작은 일이 흔해서, 그림처럼 0.6을 네 번 곱하면 0.13만 남습니다. 층이 많을수록 맨 앞 층에는 거의 닿지 않습니다.
막대는 설명용 예시입니다. 다음 장에서 실제로 잰 값을 봅니다.
실험
5층짜리로 재 보면
맨 뒤 5층은 0.00505인데 맨 앞 1층은 0.00020입니다. 약 25분의 1입니다.
숫자 3개를 받는 층 다섯 개를 이은 작은 모델로 한 실습입니다. 2층이 1층보다 작듯이 꼭 차례대로 줄지는 않지만, 앞쪽이 훨씬 작다는 점은 같습니다.
그 결과
앞쪽 층이 배우지 못합니다
신호가 거의 닿지 않는 앞쪽 층은 훈련해도 처음 상태에 머뭅니다. 이 현상을 그레이디언트 소실이라고 합니다. 층이 많은 GPT에서는 큰 문제입니다.
다음 편