RAdam(Rectified Adam의 약자)는 신경망 훈련을 위한 최적화 알고리즘이다. 2019년 Liyuan Liu, Haoming Jiang, Pengcheng He, Weizhu Chen, Xiaodong Liu, Jianfeng Gao, Jiawei Han이 "On the Variance of the Adaptive Learning Rate and Beyond"라는 논문에서 소개했다. RAdam은 Adam 최적화 프로그램에서 알려진 문제, 즉 적응형 학습률이 훈련 초기에 높은 분산을 가져 수렴이 불량하거나 최종 성능이 최적이 아닐 수 있는 문제를 해결한다. 이 분산을 교정함으로써 RAdam은 Adam의 빠른 수렴과 확률적 경사 하강법(SGD)의 안정성을 결합하는 것을 목표로 한다.
RAdam은 딥러닝, 특히 트랜스포머와 대규모 언어 모델 훈련에서 널리 사용되며, AdamW 및 다른 변형과 경쟁력 있는 성능을 보여준다. PyTorch와 TensorFlow를 포함한 주요 딥러닝 프레임워크에 구현되어 있으며, 일부 훈련 파이프라인에서 기본 선택으로 사용된다.
배경: Adam 최적화 프로그램과 그 한계
Adam 최적화 프로그램은 2014년 Diederik Kingma와 Jimmy Ba가 소개한 인기 있는 적응형 학습률 방법으로, 그래디언트의 1차 및 2차 모멘트 추정을 기반으로 각 매개변수에 대한 개별 학습률을 계산한다. Adam은 심층 신경망 훈련에서 매우 성공적이었지만 알려진 문제가 있다. 한 가지 문제는 적응형 학습률이 훈련 초기 단계, 특히 2차 모멘트 추정이 작을 때 너무 클 수 있다는 것이다. 이는 모델이 일반화가 잘 되지 않는 급격한 최소값으로 수렴하게 하는 큰 업데이트를 초래할 수 있다. 또한 Adam은 학습률 및 기타 하이퍼파라미터의 세심한 조정이 필요할 수 있다.
이러한 문제를 해결하기 위해 가중치 감쇠를 분리하는 AdamW와 과거 제곱 그래디언트의 최대값을 사용하는 AMSGrad와 같은 여러 변형이 제안되었다. 그러나 이들은 적응형 학습률의 분산을 직접적으로 해결하지 않는다.
Adam의 분산 문제
Adam에서 적응형 학습률은 1차 모멘트 추정과 2차 모멘트 추정의 제곱근의 비율로 계산된다. 훈련 초기에 2차 모멘트 추정은 0으로 초기화되고 편향 보정으로 업데이트된다. 그러나 편향 보정은 특히 감쇠율(beta2)이 1에 가까울 때 추정에 높은 분산을 남길 수 있다. 이 분산은 학습률이 크게 변동하게 하여 불안정한 훈련과 불량한 수렴을 초래할 수 있다.
RAdam의 핵심 통찰은 이 분산을 정량화하고 분산이 높을 때 학습률을 줄이고 분산이 감소함에 따라 점차 증가시키는 교정 항을 적용하는 것이다. 이는 음수 값을 0으로 잘라내는 정류 선형 유닛(ReLU) 활성화와 유사하다.
RAdam의 작동 방식
RAdam은 Adam과 유사하게 적응형 학습률을 계산하지만 추가 교정 항이 있다. 알고리즘은 그래디언트의 1차 모멘트(평균)와 2차 모멘트(중심화되지 않은 분산)를 각각 m_t와 v_t로 유지한다. 또한 타임스텝 t와 감쇠율 beta2를 추적한다.
각 단계에서 RAdam은 편향 보정된 추정치를 계산한다: m_t_hat = m_t / (1 - beta1^t) 및 v_t_hat = v_t / (1 - beta2^t). 그런 다음 이동 평균의 유효 길이를 측정하는 매개변수 rho_t = (1 - beta2^t) (2 / (1 - beta2) - 1) - t를 계산한다. rho_t가 임계값(일반적으로 4)보다 크면 RAdam은 교정 항을 사용한다: 학습률은 sqrt((rho_t - 4) (rho_t - 2) rho_t / ((rho_t - 4) (rho_t - 2) rho_t - 4 (rho_t - 2) * (rho_t - 2)))로 조정된다. rho_t가 4 이하이면 업데이트는 모멘텀이 있는 SGD와 유사하게 1차 모멘트를 직접 사용하도록 단순화된다.
이 교정은 학습률이 초기 단계에서 너무 크지 않도록 보장하여 모델이 불량한 최소값으로 이어질 수 있는 과도한 큰 단계를 방지한다.
RAdam의 장점
RAdam은 Adam 및 다른 최적화 프로그램보다 여러 가지 장점을 제공한다. 첫째, Adam에서 초기 불안정성을 피하기 위해 종종 필요한 학습률 워밍업의 필요성을 줄인다. 이는 하이퍼파라미터 조정을 단순화하고 훈련 시간을 절약할 수 있다. 둘째, RAdam은 이미지 분류 및 언어 모델링을 포함한 다양한 작업에서 Adam과 비교하여 일반화 성능을 향상시키는 것으로 나타났다. 셋째, 계산 효율적이며 Adam 업데이트에 약간의 오버헤드만 추가한다.
경험적 연구에 따르면 RAdam은 합성곱 신경망 및 트랜스포머를 포함한 다양한 모델에서 잘 작동한다. 특히 작은 배치 크기로 훈련하거나 데이터가 노이즈가 많은 경우 그래디언트 분산이 더 높기 때문에 유용하다.
RAdam의 실제 사용
RAdam은 인기 있는 딥러닝 라이브러리에 구현되어 있다. PyTorch에서는 torch.optim.RAdam으로 사용할 수 있다. TensorFlow에서는 Keras API를 통해 tf.keras.optimizers.RAdam으로 사용할 수 있다. Adam의 대체로 사용할 수 있으며 동일한 하이퍼파라미터(학습률, beta1, beta2, epsilon)를 가진다. 기본값은 일반적으로 learning_rate=0.001, beta1=0.9, beta2=0.999, epsilon=1e-8이다.
실제로 RAdam은 일부 대규모 언어 모델 및 트랜스포머를 포함한 대규모 모델 훈련에 사용되었다. 예를 들어 GPT 및 BERT 변형과 같은 모델의 특정 훈련 파이프라인에서 채택되었으며 AdamW와 비교하여 동등하거나 더 나은 성능을 보여주었다. 그러나 AdamW는 정규화에 유용할 수 있는 분리된 가중치 감쇠로 인해 여전히 인기 있는 선택이다. 일부 실무자는 RAdam을 가중치 감쇠와 결합하거나 코사인 학습률 스케줄과 함께 사용한다.
다른 최적화 프로그램과의 비교
RAdam은 종종 Adam, AdamW 및 모멘텀이 있는 SGD와 비교된다. Adam과 비교하여 RAdam은 워밍업 없이 더 안정적인 훈련을 제공하며 종종 더 나은 일반화로 이어진다. AdamW와 비교하여 RAdam은 가중치 감쇠를 분리하지 않지만 L2 정규화와 결합할 수 있다. 일부 벤치마크에서 RAdam은 이미지 분류와 같은 작업에서 AdamW보다 우수하며 다른 경우에는 AdamW가 우수하다. 선택은 특정 문제와 하이퍼파라미터에 따라 달라진다.
RAdam은 또한 그래디언트 클리핑과 같은 다른 분산 감소 기술과 관련이 있으며, 이는 RAdam과 함께 사용하여 훈련을 더욱 안정화할 수 있다. 또한 RAdam은 학습률 스케줄과 함께 코사인 어닐링 또는 단계 감쇠와 같은 방식으로 사용할 수 있다.
확장 및 변형
RAdam의 여러 확장이 제안되었다. 예를 들어 RAdam은 느린 가중치 집합을 유지하는 기술인 lookahead와 결합되어 Ranger 최적화 프로그램을 만들었으며 다양한 작업에서 강력한 성능을 보여주었다. 또 다른 변형은 평균과의 편차를 사용하도록 2차 모멘트를 수정하는 AdaBelief이지만 RAdam은 비교 기준으로 남아 있다.
연구는 또한 RAdam의 이론적 속성을 탐구하여 특정 조건에서 수렴 보장을 제공했다. 교정 항은 적응형 학습률의 분산 분석에서 유도되었으며 일반화 격차를 줄이는 것으로 나타났다.
결론
RAdam은 Adam의 분산 문제를 해결하여 더 안정적이고 더 나은 일반화 훈련을 제공하는 강력한 최적화 프로그램이다. 사용하기 쉽고 널리 사용 가능하며 많은 딥러닝 응용 프로그램에서 효과적임이 입증되었다. 항상 최선의 선택은 아니지만, 특히 안정성이 중요한 대규모 모델 훈련에서 최적화 도구 상자에서 귀중한 도구이다.