머신 러닝에서 학습률(learning rate)은 최적화 알고리즘의 튜닝 매개변수로, 손실 함수의 최솟값을 향해 이동하는 각 반복 단계에서의 스텝 크기를 결정한다. 학습률은 새로 획득한 정보가 기존 정보를 얼마나 대체하는지에 영향을 미치므로, 머신 러닝 모델이 "학습"하는 속도를 은유적으로 나타낸다. 적응 제어 문헌에서는 학습률을 일반적으로 이득(gain)이라고 부른다.
학습률을 설정할 때는 수렴 속도와 오버슈팅 사이에 절충이 존재한다. 하강 방향은 일반적으로 손실 함수의 기울기로 결정되지만, 학습률은 해당 방향으로 얼마나 큰 스텝을 취할지를 결정한다. 학습률이 너무 높으면 학습이 최솟값을 뛰어넘을 수 있고, 너무 낮으면 수렴하는 데 너무 오래 걸리거나 바람직하지 않은 지역 최솟값에 갇힐 수 있다.
순환 학습률(CLR)은 학습률을 단조 감소시키는 대신 하한과 상한 사이에서 주기적으로 변화시키는 훈련 방법으로, 이러한 절충 문제를 해결한다. 2015년 Leslie N. Smith가 도입한 이 접근 방식은 학습률 스케줄을 광범위하게 수동 튜닝하지 않고도 수렴 속도와 모델 정확도를 개선하도록 설계되었다.
동기와 핵심 아이디어
시간 기반, 단계 기반, 지수 감소와 같은 전통적인 학습률 스케줄은 모델을 최솟값에 안착시키기 위해 에폭에 따라 학습률을 줄인다. 그러나 이러한 스케줄은 각 문제에 대해 수동으로 선택해야 하는 하이퍼파라미터에 의존하며, 잘못 선택된 스케줄은 느린 수렴이나 낮은 최종 성능을 초래할 수 있다.
순환 학습률은 적당히 높은 학습률이 정규화기 역할을 하여 모델이 날카로운 지역 최솟값을 벗어나 더 평평하고 일반화 가능성이 높은 최솟값을 찾도록 돕는다는 관찰을 활용한다. 학습률을 순환시킴으로써 모델은 더 큰 스텝으로 손실 지형의 영역을 주기적으로 탐색한 후, 더 작은 스텝으로 정제한다. 이 접근 방식은 광범위한 하이퍼파라미터 튜닝의 필요성을 줄일 수 있으며, 고정되거나 단조 감소하는 비율보다 더 나은 정확도를 제공하는 경우가 많다.
이 방법은 손실 지형이 고차원이고 비볼록한 딥 러닝 맥락에서 특히 효과적이다. 순환 패턴은 옵티마이저가 안장점과 좁은 골짜기를 일정한 비율보다 더 효과적으로 통과할 수 있게 한다.
삼각형 및 변형 스케줄
가장 기본적인 CLR 스케줄은 삼각형 정책으로, 학습률이 하한에서 상한으로 선형적으로 증가한 다음 다시 하한으로 선형적으로 감소하며 이 주기를 반복한다. 주기 길이는 한 번의 완전한 증가-감소 기간에 대한 반복 횟수로 정의된다. 일반적인 변형인 triangular2는 각 주기 후 학습률 범위의 진폭을 절반으로 줄여 시간이 지남에 따라 탐색 범위를 점진적으로 축소한다.
또 다른 변형인 지수 삼각형 정책은 각 주기의 진폭에 지수 감소를 적용하여 순환 탐색의 이점과 감소 스케줄의 안정성을 결합한다. 이러한 변형은 훈련이 진행됨에 따라 탐색과 활용의 균형을 맞출 수 있게 한다.
경계 선택은 중요하다. Smith는 하한을 학습이 진행될 수 있는 값으로, 상한은 약간의 진동을 유발할 만큼 높지만 발산하지 않을 만큼 낮은 값으로 설정할 것을 권장했다. 실용적인 휴리스틱은 학습률 범위 테스트를 실행하는 것으로, 학습률을 소수의 반복에 걸쳐 선형적으로 증가시키고 손실을 모니터링하여 손실이 가장 빠르게 감소하는 범위를 식별하는 방법이다.
학습률 범위 테스트
학습률 범위 테스트는 CLR에 적절한 경계를 선택하는 데 사용되는 기법이다. 이 테스트에서는 학습률을 몇 개의 에폭에 걸쳐 매우 작은 값에서 큰 값으로 선형적으로 증가시키고 훈련 손실을 기록한다. 실무자는 손실 대 학습률을 플롯한 후 손실이 감소하기 시작하는 지점을 하한으로, 손실이 개선되지 않거나 증가하기 시작하는 지점을 상한으로 선택한다.
이 테스트는 순환 경계를 체계적으로 설정하는 방법을 제공하여 하이퍼파라미터 선택의 추측을 줄인다. 특히 서로 다른 아키텍처나 데이터 세트로 모델을 반복적으로 훈련하는 인공 지능 워크플로에서 유용하다.
적응형 방법과의 관계
순환 학습률은 Adagrad, Adadelta, RMSprop, Adam과 같은 적응형 학습률 방법과는 구별되며, 이러한 방법은 기울기 이력을 기반으로 매개변수별 학습률을 조정한다. 이러한 적응형 방법은 Keras와 같은 많은 딥 러닝 라이브러리에 내장되어 있으며, CLR과 함께 기본 옵티마이저로 자주 사용된다. 실제로 CLR은 적응형 옵티마이저 위에 적용할 수 있으며, 옵티마이저가 매개변수별 스케일을 계속 조정하는 동안 전역 학습률을 순환시킨다.
일부 연구에 따르면 CLR은 적응형 방법이 날카로운 최솟값에 너무 빨리 안착하는 것을 방지하여 성능을 개선할 수 있다. 순환 변동은 모델이 좋지 않은 해를 벗어나도록 돕는 일종의 어닐링 역할을 한다.
현대 AI에서의 응용
순환 학습률은 신경망 모델, 특히 대규모 언어 모델 아키텍처를 훈련하는 데 널리 채택되었다. 예를 들어, OpenAI와 Google DeepMind 같은 조직의 실무자들은 대규모 데이터 세트에서 모델을 훈련하기 위해 순환 또는 유사한 워밍업-감소 스케줄을 사용해 왔다. 이 기법은 컴퓨터 비전과 자연어 처리 작업에서도 일반적이며, 벤치마크 데이터 세트에서 정확도를 개선하는 것으로 나타났다.
이 방법은 사전 훈련된 모델을 새 작업에 적응시키는 전이 학습 및 파인튜닝 시나리오에서 특히 가치가 있다. 순환 스케줄은 주기적인 높은 학습률이 모델이 새로운 특징 공간을 탐색하고 낮은 비율이 이전에 학습된 표현을 보존하므로, 파국적 망각 없이 모델이 적응하도록 도울 수 있다.
실용적 고려 사항
CLR을 구현하려면 주기 길이와 경계를 지정해야 한다. 주기 길이는 종종 에폭당 반복 횟수의 배수로 설정되며, 예를 들어 주기당 2~10 에폭이 일반적이다. 더 짧은 주기는 더 빈번한 탐색을 허용하고, 더 긴 주기는 각 단계 내에서 더 안정적인 훈련을 제공한다.
일반적인 함정은 상한을 너무 높게 설정하여 손실이 발산하는 것이다. 학습률 범위 테스트는 이 위험을 완화한다. 또한 CLR은 모든 문제에 유용하지 않을 수 있으며, 매우 단순한 볼록 최적화 작업의 경우 일정하거나 감소하는 비율로 충분할 수 있다.
Amazon Web Services나 Google Cloud를 사용하는 분산 훈련 환경에서 CLR은 각 반복에서 학습률을 조정하기만 하면 되므로 최소한의 오버헤드로 구현할 수 있다. PyTorch 및 TensorFlow를 포함한 많은 딥 러닝 프레임워크는 순환 스케줄에 대한 내장 지원을 제공한다.
같이 보기
참고 문헌
- Smith, Leslie N. (2015). "Cyclical Learning Rates for Training Neural Networks." arXiv:1506.01186.
- Smith, Leslie N. (2017). "Cyclical Learning Rates for Training Neural Networks." IEEE Winter Conference on Applications of Computer Vision.
- Géron, Aurélien (2017). "Gradient Descent." Hands-On Machine Learning with Scikit-Learn and TensorFlow. O'Reilly. pp. 113–124. ISBN 978-1-4919-6229-9.
- Plagianakos, V. P.; Magoulas, G. D.; Vrahatis, M. N. (2001). "Learning Rate Adaptation in Stochastic Gradient Descent." Advances in Convex Analysis and Global Optimization. Kluwer. pp. 433–444. ISBN 0-7923-6942-4.