AdaDelta는 신경망 훈련을 위해 설계된 적응형 학습률 최적화 알고리즘이다. 2012년 Matthew D. Zeiler가 논문 "ADADELTA: An Adaptive Learning Rate Method"에서 소개했다. 이 방법은 RMSProp을 기반으로 하여 사용자가 지정한 초기 학습률의 필요성을 제거하고, 대신 과거 기울기와 매개변수 업데이트의 창에서 각 매개변수별 단계 크기를 도출한다. 이는 전역 학습률 조정이 어렵거나 손실 함수의 지형이 매개변수에 따라 크게 변하는 시나리오에서 특히 유용하다.
AdaDelta의 핵심 혁신은 제곱 기울기와 제곱 매개변수 업데이트 각각에 대해 지수적으로 감쇠하는 두 평균을 사용하는 데 있다. 고정되거나 예약된 학습률에 의존하는 확률적 경사 하강법 변형과 달리, AdaDelta는 최근 업데이트의 제곱 평균 제곱근과 최근 기울기의 제곱 평균 제곱근의 비율로 단계 크기를 계산한다. 이 비율은 무차원이며 기울기 규모에 자동으로 적응하므로, 알고리즘이 수동 개입 없이 심층 네트워크의 서로 다른 계층에서 일관된 동작을 유지할 수 있다.
역사적 배경 및 동기
AdaDelta는 딥러닝 최적화 기술이 급속히 발전하던 시기에 등장했다. 2010년대 초반, 심층 네트워크 훈련은 기울기 소실 또는 폭주 문제와 학습률 스케줄의 민감성으로 인해 악명 높게 어려웠다. 모멘텀 및 기울기 클리핑과 같은 방법은 부분적인 해결책을 제공했지만 여전히 하이퍼파라미터의 세심한 조정이 필요했다. 2012년경 Geoffrey Hinton의 강의 노트에서 소개된 RMSProp은 제곱 기울기의 이동 평균으로 업데이트를 정규화하여 기울기 규모 문제를 해결했지만 여전히 학습률이 필요했다.
당시 Google에 있던 Zeiler(작업은 독립적으로 수행됨)는 학습률 선택에 강건한 옵티마이저를 만들고자 했다. 동기는 실용적이었다. 대규모 실험에서 적절한 학습률을 찾는 것은 종종 상당한 시간과 계산 자원을 소비했다. AdaDelta의 설계는 옵티마이저를 자체 조정하도록 만들어 실무자의 부담을 줄이고 다양한 문제에 걸쳐 더 재현 가능한 결과를 가능하게 하는 것을 목표로 했다.
이 논문은 2012년 6월 arXiv에 게재되었으며 머신러닝 커뮤니티에서 빠르게 주목을 받았다. 이는 단계 크기에 대한 전역 하이퍼파라미터 없이 완전히 적응형인 차원별 학습률을 제안한 최초의 방법 중 하나였으며, 이 개념은 이후 Adam과 같은 다른 옵티마이저에 영향을 미쳤다(Adam은 여전히 학습률이 필요하지만 기본값은 0.001이다).
수학적 공식화
AdaDelta는 각 매개변수 θ에 대해 두 가지 상태 변수를 유지한다. 제곱 기울기의 지수 이동 평균 E[g²]_t와 제곱 매개변수 업데이트의 지수 이동 평균 E[Δθ²]_t이다. 각 시간 단계 t에서 알고리즘은 손실에 대한 θ의 기울기 g_t를 계산한다.
첫 번째 평균은 다음과 같이 업데이트된다:
E[g²]_t = ρ E[g²]_{t-1} + (1 - ρ) g_t²
여기서 ρ는 감쇠 상수이며 일반적으로 0.95로 설정된다. 이는 RMSProp의 업데이트와 동일하다.
두 번째 평균은 제곱 업데이트를 추적하지만 현재 단계의 매개변수 변화를 사용하여 업데이트된다. 매개변수 업데이트의 제곱 평균 제곱근(RMS)은 다음과 같이 계산된다:
RMS[Δθ]_{t-1} = sqrt(E[Δθ²]_{t-1} + ε)
여기서 ε는 0으로 나누기를 피하기 위한 작은 상수(종종 1e-6)이다. 매개변수 업데이트는 다음과 같다:
Δθ_t = - (RMS[Δθ]_{t-1} / RMS[g]_t) * g_t
여기서 RMS[g]_t = sqrt(E[g²]_t + ε)이다. 업데이트를 적용한 후 알고리즘은 새로 계산된 Δθ_t를 사용하여 E[Δθ²]_t를 업데이트한다:
E[Δθ²]_t = ρ E[Δθ²]_{t-1} + (1 - ρ) Δθ_t²
이 공식화는 단계 크기가 최근 업데이트의 제곱 평균 제곱근과 최근 기울기의 제곱 평균 제곱근의 비율이 되도록 보장한다. 분자와 분모가 동일한 단위(제곱 매개변수 값)를 가지므로 결과 단계 크기는 무차원이며, 이 때문에 이 방법은 학습률이 필요하지 않다. 감쇠 상수 ρ는 이동 평균의 창 크기를 제어하며, 값이 클수록 과거 이력에 더 많은 가중치를 부여한다.
RMSProp 및 Adam과의 비교
AdaDelta는 종종 RMSProp의 확장으로 설명되는데, 동일한 기울기 스케일링 메커니즘을 사용하기 때문이다. 주요 차이점은 RMSProp이 기울기를 기울기의 제곱 평균 제곱근으로 나눈 다음 고정 학습률 η를 곱하는 반면, AdaDelta는 그 고정 η를 과거 매개변수 업데이트의 제곱 평균 제곱근으로 대체한다는 것이다. 이 대체는 단계 크기가 기울기 크기뿐만 아니라 실제 업데이트에 반영된 손실 함수의 곡률에도 적응하도록 만든다.
2015년 Diederik Kingma와 Jimmy Ba가 소개한 Adam과 비교할 때, AdaDelta는 기울기의 2차 모멘트를 사용한다는 아이디어를 공유한다. 그러나 Adam은 1차 모멘트 추정을 통해 모멘텀도 통합하고 초기 시간 단계에 대한 편향 보정을 사용한다. Adam은 여전히 학습률이 필요하지만 기본값 0.001이 많은 응용 분야에서 잘 작동한다. 반면 AdaDelta는 학습률 하이퍼파라미터가 없어 최적 학습률을 알 수 없거나 작업에 따라 변할 때 장점이 될 수 있다.
경험적 연구에 따르면 AdaDelta는 많은 표준 벤치마크에서 Adam과 비슷한 성능을 보이는 경우가 많지만, 기울기 크기가 시간에 따라 급격히 변하는 상황에서는 더 안정적일 수 있다. 그러나 Adam의 모멘텀 항은 일부 비볼록 문제에서 국소 최솟값을 더 효과적으로 벗어나는 데 도움이 될 수 있다. 2020년대 중반 현재 Adam과 그 변형(예: AdamW)은 특히 트랜스포머 및 대규모 언어 모델 훈련에서 실제로 더 널리 사용되지만, AdaDelta는 여전히 관련 기준선으로 남아 있으며 그 속성이 유익한 특정 영역에서 계속 사용된다.
구현 세부 사항 및 변형
실제로 AdaDelta를 구현하려면 매개변수당 두 개의 추가 벡터를 저장해야 하므로 일반 SGD에 비해 메모리 사용량이 두 배가 된다. 이는 Adam의 메모리 요구 사항과 유사하다. 감쇠 상수 ρ는 일반적으로 0.95로 설정되고 엡실론 ε은 수치적 안정성을 보장하기 위해 1e-6과 같은 작은 값으로 설정된다. 일부 구현은 엡실론 배치를 약간 다르게 사용하여 제곱근 내부에 추가하지만 효과는 무시할 만하다.
일반적인 변형은 AdaDelta를 가중치 초기화 체계 및 배치 정규화와 결합하여 훈련을 더욱 안정화하는 것이다. 이 방법은 데이터 증강 및 커리큘럼 학습 전략과도 호환된다. 분산 훈련 설정에서 AdaDelta는 동기 또는 비동기 업데이트와 함께 사용할 수 있지만, 발산을 방지하려면 이동 평균을 작업자 간에 동기화해야 한다.
TensorFlow, PyTorch 및 JAX를 포함한 여러 딥러닝 프레임워크는 AdaDelta의 내장 구현을 제공한다. 예를 들어 PyTorch의 torch.optim.Adadelta는 사용자가 rho 및 eps 매개변수를 지정할 수 있으며 기본값은 각각 0.9 및 1e-6이다(참고로 PyTorch의 기본 rho는 0.9로 원래 논문의 0.95와 다르다). 이 차이는 다른 동작을 초래할 수 있으므로 실무자는 선택한 프레임워크의 특정 기본값을 인식해야 한다.
응용 분야 및 사용 사례
AdaDelta는 이미지 분류, 음성 인식 및 자연어 처리를 포함한 광범위한 머신러닝 작업에 적용되었다. 2010년대 초반에는 CIFAR-10 및 ImageNet과 같은 데이터 세트에서 심층 컨볼루션 네트워크를 훈련하는 데 사용되어 모멘텀이 있는 SGD보다 하이퍼파라미터 조정이 적으면서 경쟁력 있는 결과를 달성했다. 또한 기울기 크기가 시간 단계에 따라 크게 변할 수 있는 시퀀스 모델링을 위한 순환 신경망에서도 사용되었다.
AdaDelta의 주목할 만한 장점 중 하나는 초기 매개변수 선택에 대한 강건성이다. 학습률이 필요하지 않기 때문에 자동화된 머신러닝 파이프라인이나 새 아키텍처를 벤치마킹할 때 기본 옵티마이저로 자주 사용된다. 예를 들어 토론토 대학교 및 스탠포드 AI 연구소의 연구자들은 최적화 알고리즘을 비교하는 연구에서 AdaDelta를 사용했지만, 일반적으로 Adam을 선호하는 최첨단 생성형 AI 모델에서는 덜 일반적이다.
강화 학습에서 AdaDelta는 보상 신호가 노이즈가 많고 기울기 규모가 변할 수 있는 연속 제어 작업에 대한 정책을 훈련하는 데 사용되었다. 적응형 단계 크기는 수동 스케줄링 없이 안정적인 업데이트를 유지하는 데 도움이 된다. 그러나 최근 몇 년 동안 Adam 및 LAMB와 같은 더 고급 옵티마이저가 학습률 워밍업 및 기울기 클리핑 기술과의 호환성 덕분에 대규모 훈련에서 더 인기를 얻었다.
이론적 속성 및 한계
이론적 관점에서 AdaDelta는 기울기 및 업데이트의 이력에 따라 전제 조건자가 온라인으로 업데이트되는 대각 전제 조건 경사 하강법으로 볼 수 있다. 이는 자연 기울기 방법과 유사하지만 더 간단한 근사치를 사용한다. 이 방법은 기울기가 유계라고 가정할 때 단계 크기가 항상 양수이고 유계임을 보장하며, 이는 볼록 설정에서 수렴에 도움이 된다. 그러나 비볼록 목적 함수에 대한 공식 수렴 증명은 적응형 방법에서 일반적이듯 제한적이다.
AdaDelta의 한계 중 하나는 ρ 선택에 민감할 수 있다는 것이다. ρ가 너무 작으면 이동 평균이 과거 정보를 빠르게 잊어버려 불규칙한 업데이트가 발생하고, 너무 크면 알고리즘이 손실 지형의 변화에 느리게 반응할 수 있다. 학습률이 없다는 것은 사용자가 전체 단계 크기에 대한 제어력이 적다는 것을 의미하며, 특정 단계 크기가 잘 작동하는 것으로 알려진 경우 불리할 수 있다.
또 다른 문제는 AdaDelta의 업데이트 규칙이 초기 E[Δθ²]가 0이기 때문에 훈련 초기 단계에서 매우 작은 단계 크기를 초래할 수 있다는 것이다. 이는 엡실론 항으로 완화되지만 초기 수렴을 늦출 수 있다. 일부 구현은 이를 피하기 위해 E[Δθ²]를 작은 양수 값으로 초기화하지만 이는 추가 하이퍼파라미터를 도입한다.
유산 및 영향
AdaDelta의 도입은 딥러닝의 적응형 최적화 방법의 더 넓은 추세에 기여했다. 이는 학습률을 완전히 제거할 수 있음을 보여주었으며, 이는 하이퍼파라미터 없는 옵티마이저에 대한 후속 연구에 영감을 주었다. Adam만큼 널리 채택되지는 않았지만 최적화 도구 키트의 중요한 부분으로 남아 있으며 딥러닝 기술에 대한 교과서 및 조사 논문에서 자주 인용된다.
이 방법은 또한 원래 논문에서 명확하고 간결한 설명으로 주목할 만하며, 여러 벤치마크 작업에 대한 자세한 유도와 실험을 포함했다. Zeiler의 작업은 적응형 방법의 일부 이론적 단점을 해결한 Adam 및 AMSGrad와 같은 후속 개발에 영향을 미쳤다. 2020년대 현재 AdaDelta는 주요 딥러닝 라이브러리에 여전히 포함되어 있으며 학습률 없는 옵티마이저가 필요할 때 연구에서 가끔 사용되지만, 실제 사용은 더 현대적인 대안에 비해 감소했다.
요약하면 AdaDelta는 신경망 최적화 알고리즘의 진화에서 중요한 단계를 나타내며, 수동 조정 없이 단계 크기를 적응시키는 원리 있는 방법을 제공한다. 그 유산은 후속 옵티마이저의 설계와 강건하고 자체 조정되는 훈련 절차에 대한 지속적인 탐구에 남아 있다.