최적화 및 스케줄링: Warm Restarts
ㅁ 최적화 및 스케줄링
ㅇ 정의:
최적화 과정에서 학습률을 주기적으로 초기화하여 최적화 성능을 향상시키는 기법으로, 학습이 정체되는 구간에서 탈출을 도와준다.
ㅇ 특징:
– 학습률을 주기적으로 낮췄다가 다시 높이는 방식으로 동작.
– 주로 코사인 함수 기반으로 학습률을 조정.
– 과적합을 방지하고, 더 나은 지역 최적점을 탐색하는 데 도움을 줌.
ㅇ 적합한 경우:
– 학습률 조정이 중요한 딥러닝 모델 학습.
– 복잡한 손실 함수에서 국소 최적점에 갇히는 것을 방지하고자 할 때.
ㅇ 시험 함정:
– Warm Restarts와 일반적인 학습률 감소(Step Decay) 기법을 혼동할 수 있음.
– 학습률 초기화 주기를 잘못 설정하면 오히려 성능이 저하될 수 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
1. Warm Restarts는 학습률을 일정하게 유지하는 방법이다. (X)
2. Warm Restarts는 학습률을 주기적으로 초기화하여 최적화 성능을 향상시킨다. (O)
3. Warm Restarts는 학습률을 점진적으로 증가시키는 방식이다. (X)
ㅁ 추가 학습 내용
Warm Restarts와 관련된 내용을 학습하기 위해 아래와 같이 정리할 수 있습니다.
1. **Warm Restarts의 주기 설정 방법**:
Warm Restarts는 학습률을 주기적으로 초기화하여 모델이 새로운 최적화 경로를 탐색할 수 있도록 돕는 기법입니다. 주기를 설정할 때는 다음과 같은 방법을 고려할 수 있습니다.
– 처음에는 짧은 주기로 시작하고 점차 주기를 늘려가는 방식이 일반적입니다. 예를 들어, 첫 번째 주기는 10 에포크, 두 번째 주기는 20 에포크, 세 번째 주기는 40 에포크로 설정하는 방식입니다.
– 주기를 늘려가는 방식은 T_mult 파라미터로 제어할 수 있으며, 이는 주기가 증가하는 비율을 결정합니다. T_mult를 2로 설정하면 각 주기가 이전 주기의 두 배가 됩니다.
– 데이터셋 크기와 모델의 복잡도에 따라 주기를 조정해야 하며, 경험적으로 적절한 값을 찾는 것이 중요합니다.
2. **코사인 학습률 조정의 수학적 원리**:
코사인 학습률 조정은 학습률을 코사인 함수로 점진적으로 감소시키는 방법입니다. 이를 통해 학습률이 초기에는 빠르게 감소하다가 점차 완만하게 줄어드는 패턴을 따릅니다. 수학적으로는 다음과 같이 표현됩니다.
– 학습률 η(t)는 η_min + (η_max – η_min) * (1 + cos(π * t / T_cur)) / 2로 계산됩니다.
– 여기서 η_min은 최소 학습률, η_max는 최대 학습률, t는 현재 에포크, T_cur는 현재 주기의 길이를 나타냅니다.
– 코사인 함수의 주기적 특성을 활용하여 학습률이 부드럽게 감소하도록 설계되었으며, 이는 학습 과정에서 과도한 진동을 방지하고 안정적인 수렴을 돕습니다.
3. **Warm Restarts와 Cyclical Learning Rate(CLR)의 차이점**:
– Warm Restarts는 학습률을 주기적으로 초기화하여 새로운 최적화 경로를 탐색할 수 있도록 하는 반면, CLR은 학습률을 일정 범위 내에서 주기적으로 변동시켜 최적화 과정에서 국소적인 최적값에 갇히는 것을 방지합니다.
– Warm Restarts는 학습률이 점차 감소한 후 다시 최대값으로 초기화되는 방식으로 작동하지만, CLR은 학습률이 주기적으로 증가하고 감소하는 패턴을 반복합니다.
– CLR은 일반적으로 삼각 함수 기반(삼각형 학습률) 또는 삼각 함수의 변형(삼각형 쌍곡선 학습률)을 사용하며, Warm Restarts는 주로 코사인 함수 기반의 학습률 조정을 사용합니다.
– Warm Restarts는 주기를 점진적으로 늘려가는 방식으로 조정할 수 있는 반면, CLR은 주기가 고정되어 있는 경우가 많습니다.
이와 같은 내용을 통해 Warm Restarts와 관련된 개념을 더 깊이 이해하고, Cyclical Learning Rate와의 차이점을 명확히 알 수 있습니다.