AI/AI Info

Learning Rate: 너무 빠르면 폭주, 너무 느리면 정체되는 학습의 속도계

HEAD1TON 2025. 6. 16. 19:15

🚦 학습률이란?

학습률(Learning Rate, η)은 Optimizer가 파라미터를 얼마나 크게 업데이트할지를 결정하는 계수입니다.

손실 함수를 따라 내려가야 하는데,
“얼마만큼 한 걸음씩 내딛을 것인가?”를 결정하는 것이 학습률입니다.


🧭 다시 보는 업데이트 식

앞서 본 Optimizer 식을 다시 보면:

scss
복사편집
θ ← θ - η * ∇L(θ)

여기서 η가 바로 학습률입니다.

  • 너무 크면? → Loss 지형에서 최저점을 지나쳐서 진동하거나 발산
  • 너무 작으면? → 업데이트가 느려서 학습 시간이 너무 길어지거나 정체

📉 학습률이 너무 클 때 / 작을 때

상황증상그래프 형태
너무 큼 Loss가 발산하거나 진동 뾰족한 진동, 학습 실패
너무 작음 Loss가 거의 줄지 않음 평평한 감소, 수렴 실패
적절함 Loss가 점진적으로 감소 부드럽게 수렴
 

실무에서는 종종 학습률이 잘못 설정되어서 모델이 전혀 학습되지 않는 경우가 많습니다.


🧪 실무 전략: Learning Rate 조정 팁

  1. 가장 먼저 튜닝해야 할 하이퍼파라미터
    • 성능이 안 나올 땐 우선적으로 학습률을 점검하세요.
  2. Learning Rate Scheduler 활용
    • 학습이 진행될수록 η를 점점 줄이는 방식
    • Exponential decay, Step decay, Cosine annealing 등 다양함
  3. Warmup 기법
    • 초반 몇 epoch 동안 η를 천천히 키워서 모델이 안정적으로 수렴하게 함
    • 특히 Transformer 구조에 중요
  4. One-cycle Policy (Leslie Smith)
    • 학습률을 한 번 올렸다가 천천히 줄이는 스케줄
    • 최근 고성능 비전/텍스트 모델에서 널리 사용

📏 Learning Rate 찾는 방법

  • Grid Search 또는 Learning Rate Finder (fastai, PyTorch 지원)
  • 지수적으로 증가시키며 Loss의 변화를 관찰 →
    급격히 줄기 시작하는 구간을 적절한 시작점으로 사용
 
     # PyTorch 예시 (fastai 스타일)
     from fastai.callback.schedule import lr_find learn.lr_find()

 


🔥 실무 예시: GPT Fine-tuning의 경우

  • GPT 모델을 파인튜닝할 때 적절한 학습률은 5e-5 ~ 5e-6 수준으로 아주 작습니다.
  • 너무 크게 설정하면 언어 능력을 잃고, 의미 없는 출력을 생성하게 됩니다.

✨ 마무리 요약

  • Learning Rate는 학습의 보폭을 조절하는 핵심 변수
  • 너무 크면 발산, 너무 작으면 정체
  • 실무에서는 Scheduler나 Warmup을 통한 동적 조절이 매우 중요
  • 잘못된 학습률은 좋은 모델도 학습을 망친다