학습률은 가장 중요한 하이퍼파라미터
학습률이 너무 작으면 학습이 느려지고, 너무 크면 학습이 발산해. 적절한 값은 옵티마이저, 모델, 배치 크기, 데이터셋, 학습 단계에 따라 달라져. 어디에나 통하는 규칙은 없지만, 잘 작동하는 패턴은 있어.
요즘 학습에서 가장 널리 쓰이는 방식은 워밍업 + 코사인 감쇠야. 첫 수백~수천 단계 동안 학습률을 0에서 lr_max 까지 선형으로 올린 뒤, 남은 학습 동안 ~0까지 부드럽게 낮춰. 이 조합은 학습 초반의 불안정성과 후반의 수익 체감 문제를 모두 깔끔하게 다뤄.
팁: 워밍업 없이 Transformer를 학습하면 첫 백 단계에서 손실이 폭발하거나 학습이 멈추는 모습을 볼 수 있어. 일정 규모 이상의 어텐션 기반 모델에서는 워밍업이 사실상 필수야.
자주 쓰는 스케줄
- 상수 — 짧은 학습이나 프로토타이핑에는 괜찮지만, 최종 선택으로 쓰는 경우는 드물어.
- 단계 감쇠 — N 에폭마다 학습률에 0.1을 곱해. ResNet 계열 학습의 고전적인 방식이지만 요즘은 덜 쓰여.
- 코사인 어닐링 — 코사인 곡선의 후반부처럼 학습률을 부드럽게 낮춰. 거의 어디서나 잘 작동해.
- 워밍 리스타트를 포함한 코사인 스케줄 — 주기적으로 학습률을 다시 높여야 하는 매우 긴 학습에 유용해.
- OneCycle — Smith가 제안한 방식이야. 학습률을 올렸다가 내리며, 최고점은 가운데에 둬. 짧은 미세 조정에 강해.
좋은 lr_max 찾기
'LR finder' 기법(Smith, 2017)을 쓰면 돼. 학습률을 1e-7에서 10까지 지수적으로 높이면서 수백 단계 학습해. 그런 다음 손실과 학습률의 관계를 그래프로 그려. 손실이 가장 빠르게 내려가는 학습률을 골라 2-4로 나누면 돼. 보통 아무 근거 없이 하이퍼파라미터를 탐색하는 것보다 결과가 좋아.
원칙: 먼저 학습 시간에 맞춰 스케줄을 고르고, LR finder로 lr_max를 정해. 그다음 둘은 그대로 둔 채 나머지를 조정해. 학습 도중 스케줄까지 바꾸면 무엇이 결과에 영향을 줬는지 알기 어려워져.