핵심 요약
- 출력층의 초기 예측이 지나치게 확신에 차면 학습 초기에 큰 손실이 발생한다. 강의의 문자 예측 모델은 첫 손실이 약 27이었지만, 27개 문자를 균등하게 예측할 때 기대되는 손실은 약 3.29였다.
- tanh 활성값이 −1이나 1에 몰리면 기울기가 작아져 앞쪽 층의 학습이 둔해진다. 출력층과 은닉층의 초기화를 조정한 실험에서 검증 손실은 약 2.17에서 2.13, 다시 2.10으로 낮아졌다.
- 층이 깊어질수록 활성값과 기울기의 크기를 유지하기가 어려워진다. 입력 연결 수의 제곱근으로 가중치를 나누는 초기화와 배치 정규화가 이를 다루는 방법이다.
- 배치 정규화는 학습을 안정시키지만, 한 예측이 같은 배치에 담긴 다른 사례의 영향을 받게 한다. 추론에는 학습 중 따로 추적한 통계가 필요하다.
초기 손실이 드러낸 출력층의 문제
카파시가 다룬 makemore는 앞선 세 글자로 다음 글자를 예측하는 다층 퍼셉트론이다. 이번 강의는 더 복잡한 신경망으로 넘어가기 전에 학습 중 활성값과 기울기가 어떻게 움직이는지 살핀다. 활성값은 각 층이 계산한 출력이고, 기울기는 손실을 줄이기 위해 매개변수를 어느 방향으로 바꿔야 하는지 나타내는 값이다.
이 모델은 다음 글자에 27가지 후보가 있다. 초기에는 어느 글자가 더 유력한지 배운 상태가 아니므로, 카파시는 거의 균등한 예측에 해당하는 손실 약 3.29를 기대했다. 실제 첫 손실은 약 27이었다. 출력층이 일부 글자에 지나치게 높은 확률을 주면서 틀린 답을 확신했기 때문이다.
출력층의 편향을 0으로 두고 가중치를 작게 만들자 초기 손실은 기대치에 가까워졌다. 손실 곡선 초반의 급격한 하락도 사라졌다. 카파시의 설명에 따르면 기존 학습은 초기에 과도하게 큰 출력 가중치를 줄이는 데 일부 단계를 쓰고 있었다.
포화된 활성값은 기울기를 막는다
출력 손실을 바로잡아도 은닉층에는 문제가 남았다. tanh 함수의 출력이 −1이나 1에 가까운 사례가 많았다. tanh는 입력을 −1과 1 사이로 압축하는 함수다. 양 끝의 평평한 구간에서는 입력을 바꿔도 출력이 거의 변하지 않아, 역전파할 때 앞쪽으로 전달되는 기울기가 작아진다.
강의는 배치의 32개 사례와 200개 은닉 뉴런을 살폈다. 포화된 활성값은 많았지만, 모든 사례에서 포화된 뉴런은 보이지 않았다. 따라서 이 실험에서는 각 뉴런에 학습 신호가 일부 남아 있었다. 카파시는 모든 입력에서 활성화되지 않는 ReLU 뉴런처럼 학습 신호를 잃는 경우도 설명했다. 이런 상태는 초기화에서 생기거나, 학습률이 너무 높을 때 학습 도중 생길 수 있다.
은닉층에 들어가는 값의 범위를 줄인 뒤 실험의 검증 손실은 약 2.10이 됐다. 카파시는 층이 하나인 이 모델은 나쁜 초기화에도 결국 학습했지만, 층이 많은 모델에서는 같은 문제가 누적돼 학습 자체가 어려워질 수 있다고 강조했다.
가중치 크기를 정하는 기준
임의의 작은 수를 찾는 대신, 강의는 fan-in을 사용한다. fan-in은 한 뉴런에 들어오는 입력의 수다. 정규분포에서 뽑은 입력과 가중치를 그대로 행렬 곱하면 출력의 퍼짐이 커질 수 있다. 가중치를 fan-in의 제곱근으로 나누면 이 퍼짐을 비슷한 수준으로 유지할 수 있다.
비선형 함수가 사이에 있으면 추가 조정이 필요하다. ReLU는 음수 입력을 0으로 만들고, tanh도 출력 범위를 압축한다. 강의는 tanh가 끼어 있는 여러 층의 실험에서 5/3의 배율이 활성값의 크기를 비교적 안정적으로 유지하는 모습을 보였다. 다만 카파시는 이 배율의 유래를 강의에서 수학적으로 설명하지 않았으며, 해당 실험에서 관찰한 효과로 제시했다.
배치 정규화의 작동 방식과 대가
배치 정규화는 층의 활성값을 현재 배치의 평균과 분산으로 조정한다. 각 뉴런의 값을 평균 0, 표준편차 1에 가깝게 만든 다음, 학습 가능한 배율과 편향을 적용해 신경망이 필요한 분포로 다시 바꿀 수 있게 한다. 강의에서는 선형층 다음, tanh 앞에 이를 배치했다.
이 방식은 층마다 가중치 배율을 정밀하게 맞춰야 하는 부담을 줄였다. 그러나 같은 입력도 배치에 함께 들어온 다른 사례에 따라 정규화 결과가 조금씩 달라진다. 카파시는 이런 흔들림이 과적합을 줄이는 효과를 낼 수 있다고 설명하면서도, 사례들이 서로 얽히는 성질 때문에 버그와 추론상의 어려움이 생긴다고 지적했다.
개별 입력을 예측할 때는 현재 배치의 평균과 분산을 구할 수 없다. 강의는 학습 중 이동 평균으로 추적한 통계를 추론에 사용하는 방법을 구현했다. 이 통계는 역전파로 학습하는 배율·편향과 구분된다. 배치가 작으면 배치별 통계가 크게 흔들릴 수 있어 이동 평균의 설정에도 주의가 필요하다. 또한 정규화 직전 선형층의 편향은 평균을 빼는 과정에서 상쇄되므로 불필요하다고 설명했다.
활성값뿐 아니라 갱신량도 본다
강의 후반부는 층을 더 쌓아 활성값, 역전파 기울기, 가중치와 매개변수 갱신량을 시각화했다. 카파시는 갱신량의 표준편차를 매개변수 값의 표준편차로 나눈 비율을 학습 과정에서 살폈다. 대략 1,000분의 1을 참고선으로 삼되, 지나치게 크면 갱신이 과하고 너무 작으면 학습이 느릴 수 있다는 경험적 기준이다.
배치 정규화를 넣어도 이 비율까지 자동으로 맞춰지지는 않았다. 입력 가중치의 크기를 바꾸면 활성값은 안정적으로 보여도 매개변수 갱신량이 달라져 학습률 조정이 필요했다. 카파시가 배치 정규화 모델로 얻은 검증 손실도 기존의 약 2.10과 비슷했다. 그는 이 실험의 성능을 제한하는 요인으로 최적화보다 세 글자라는 짧은 문맥 길이를 의심했다.
이 강의의 결론은 한 가지 기법의 성능 우위가 아니다. 초기 손실부터 층별 활성값과 기울기, 실제 매개변수 갱신량까지 살펴야 학습이 어디에서 막히는지 구분할 수 있다는 것이다.
댓글 0
첫 댓글을 남겨 주세요.