AI: 최적화 및 스케줄링 – Warm Restarts

ㅁ 최적화 및 스케줄링

ㅇ 정의:
– Warm Restarts는 학습률 스케줄링 기법 중 하나로, 학습 도중 학습률을 주기적으로 초기화하여 마치 새로운 학습을 시작하는 것처럼 만드는 방법이다. 주로 Cosine Annealing과 결합하여 사용되며, 각 주기마다 학습률을 높였다가 점진적으로 낮춘다.

ㅇ 특징:
– 초기 학습률로 재시작하되, 이전 학습 가중치를 그대로 유지한다.
– 지역 최소값(Local Minima)에서 탈출하여 더 나은 전역 최소값(Global Minimum)에 도달할 가능성을 높인다.
– 주기 길이를 점차 늘려가며 재시작하는 방식(T_0, T_mult 파라미터 활용)이 일반적이다.
– SGD, Adam 등 다양한 옵티마이저와 조합 가능하다.

ㅇ 적합한 경우:
– 학습이 특정 지점에서 수렴하거나 정체되는 경우.
– 데이터셋이 복잡하여 다양한 지역 최소점이 존재하는 경우.
– 장기간 학습에서 과적합을 방지하고 일반화 성능을 높이고자 할 때.

ㅇ 시험 함정:
– Warm Restart는 가중치를 초기화하는 것이 아니라 학습률만 초기화한다는 점을 혼동하기 쉽다.
– 단순한 학습률 감소(Learning Rate Decay)와 동일하다고 오해할 수 있다.
– Cosine Annealing과 반드시 함께 써야 하는 것은 아니다.

ㅇ 시험 대비 “패턴 보기” 예시:
– (O) Warm Restarts는 학습률을 주기적으로 초기화하여 새로운 학습 주기를 시작하는 기법이다.
– (X) Warm Restarts는 모델 가중치를 주기적으로 초기화하여 새로운 학습을 시작하는 기법이다.
– (O) Warm Restarts는 지역 최소값에서 탈출하는 데 도움을 줄 수 있다.
– (X) Warm Restarts는 학습률을 한 번만 감소시키는 스케줄링 기법이다.

ㅁ 추가 학습 내용

Cosine Annealing Warm Restarts(CAWR)는 학습률을 Cosine 함수 형태로 점진적으로 감소시키다가 일정 주기마다 초기값으로 재설정하는 방식이다. PyTorch에서는 torch.optim.lr_scheduler.CosineAnnealingWarmRestarts로 구현되어 있다.

T_0는 첫 번째 주기의 epoch 수를 의미하며, T_mult는 이후 주기 길이를 늘리는 배수를 나타낸다. 예를 들어 T_0=10, T_mult=2이면 첫 주기는 10 epoch, 두 번째 주기는 20 epoch, 세 번째 주기는 40 epoch로 진행된다.

Warmup은 학습 초기에 학습률을 점진적으로 증가시키는 기법이며, Warm Restarts는 학습 도중 학습률을 다시 초기화하는 기법이라는 점에서 차이가 있다.

실제 적용 시에는 주기 길이와 초기 학습률 설정이 모델 성능에 큰 영향을 주므로, 하이퍼파라미터 튜닝 전략을 함께 고려해야 한다.

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*