[Study] Learning Scheduler

승민·2025년 11월 13일

Study

목록 보기
5/6
  1. Learning Rate 실습 Notebook
  2. 목적
    학습에서 가장 중요한 hyper parameter인 Learning Rate와 이를 조절하는 Learning Rate Scheduler, WarmUp에 대한 필요성 및 작동 방식, 효과에 대해 공부

1. Learning Rate란?

  • Learning Rate(학습률)은 모델이 얼마나 크게 가중치를 업데이트할지를 결정하는 값
  • 즉, 학습 속도를 결정하는 파라미터
    • 값이 너무 크면 최적점을 지나 발산
    • 값이 너무 작으면 학습이 너무 오래 걸려 비용이 증가
    • 따라서 적절한 값으로 조절이 필요

2. Scheduler

  • 학습 시 Learning rate를 조정하는 전략
    • 학습 초기: 큰 lr 값으로 전역 구조를 빠르게 탐색
    • 학습 후기: 작은 lr값으로 미세 조정
  • 효과
    • 더 안정적인 수렴: 처음엔 빠르게 학습하고 나중엔 천천히 세밀하게 조정
    • local minima 탈출 가능: 중간에 lr을 높이거나 변동시켜 더 좋은 점을 찾을 수 있음
    • 학습 시간 단축: 초반엔 큰 lr로 빠르게 학습
    • 과적합 방지: 후반에 lr를 줄이면 loss 변동이 줄고, overgitting완화 효과
    • 일반화 성능 향상: 부드럽게 감소시키면 테스트 데이터에서도 좋은 결과

3. WarmUp

  • 학습 초기에는 lr을 아주 작게 시작해서 조금씩 키우는 과정
  • 처음부터 큰 lr로 학습하지 않고 천천히 "워밍업"
  • 효과
    • 훈련 초기 불안정성 방지
      • 큰 lr로 시작하면 loss가 갑자기 발산하거나 gradient가 튈 수 있음
      • warmup으로 조금씩 lr을 올리면서 안정적으로 학습 시작 가능
    • 큰 batch / deep model에서 효과적
      • batch size가 크거나 Transformer 와 같은 깊은 모델에서는 초기 lr이 너무 크면 학습 불안정
      • warmup으로 안정화 후 본격적인 lr 스케줄링 적용
    • 성능 향상
      • 특히 BERT, GPT, Vision Transfomer와 같은 최신 모델들은
      • WarmUP + Cosine LR 조합이 기본 세팅

3. Experiment

3-1. StepLR

  • 정의
    • 일정한 epoch간격(step_size)마다 학습룰을 일정 비율(gamma)로 줄이는 방식
    • 한동안은 그대로, 어느 시점에서 툭 줄어듬
  • 작동 원리
    • epoch가 step_size의 배수가 되면
    • lr=lrgammalr = lr * gamma
  • 기대 효과
    • 단계적으로 학습 속도를 늦춰 안정적인 수렴을 유도
    • 단순하고 튜닝이 쉽다
    • 기본 모델에서 자주 사용됨

3-2. CosineAnnealingLR

  • 정의
    • 학습률을 Cosine 함수 형태로 부드럽게 감소시키는 스케줄러
    • 초반에는 완만하게, 후반에는 급격하게 감소함
  • 작동 원리
    • ηt+1=ηmin+(ηtηmin)1+cos((Tcur+1)πTmax)1+cos(TcurπTmax)\eta_{t+1} = \eta_{min} + (\eta_t-\eta_{min})\cdot\frac{1+cos(\frac{(T_{cur}+1)\pi}{T_{max}})}{1+cos(\frac{T_{cur}\pi}{T_{max}})}
    • approximation ηt=ηmin+12(ηmaxηmin)(1+cos(TcurπTmax))\rightarrow \eta_t = \eta_{min} + \frac{1}{2}(\eta_{max} - \eta_{min})\left( 1 + cos(\frac{T_{cur}\pi}{T_{max}}) \right)
    • ηt\eta_t: step t에서의 learning rate
    • TcurT_{cur}: last restart에서부터 epoch 수
    • TmaxT_{max}: 한 cycle에서 epochs 최대 값
  • 기대 효과
    • 부드럽게 lr를 줄여서 모델이 끝부분에서 더 정교하게 수렴
    • 일반화 성능 향상(테스트 정확도 증가)
    • 긴 학습에 적합(ImageNet, Transfomrer 등)

3-3. ReduceLROnPlateau

  • 정의
    • validation loss가 개선되지 않을 때만 학습률을 줄이는 방식
    • 모델이 더 이상 좋아지지 않을 때, lr을 낮춰 다시 fine-tuning하는 방식
    • Plateau: 특정 수준에 도달한 후 발전이나 성장이 멈추는 정체기
  • 작동원리
    • 일정 기간(patience) 동안 validation loss가 좋아지지 않으면 lr를 감소
    • lr = lr * factor
  • 기대효과
    • 자동으로 최적 시점에 lr을 조정
    • fine-tuning이나 transfer learning에 매우 유용
    • 불필요한 lr 감소를 방지하여 효율적 학습 유도

3-4. OneCycleLR

  • 정의
    • 학습 초기에 lr을 점점 올렸다가 이후 점점 줄이는 한 주기(one cycle) 형태의 scheduler
    • fastai나 modern deep learning에서 인기
  • 작동원리
    • 총 학습 기간을 하나의 cycle로 보고 초반에는 lr을 based_lr에서 max_lr까지 증가
    • 이후 천천히 감소
  • 기대효과
    • 초반에는 큰 lr로 global minimum 근처 탐색
    • 후반에 작은 lr로 세밀하게 수렴
    • 학습 속도 빠름 + 일반화 성능 우수
    • fine-tuning에서 많이 사용

3-5. Warmup을 적용한 Learning Rate with scheduler

0개의 댓글