아담 옵티마이저(Adam Optimizer)

•
2026년 11월 01일 발행•2026년 11월 01일 수정
요약

기울기의 1차·2차 모멘트 추정으로 파라미터별 보폭을 조정하는 적응형 최적화 알고리즘

중급
경사 하강법과 모멘텀, 지수 이동 평균에 대한 이해가 필요하며, 옵티마이저 하이퍼파라미터가 학습 안정성과 일반화에 미치는 영향을 해석할 수 있어야 한다.

#개념

아담 옵티마이저(Adam Optimizer)는 기울기의 1차 모멘트(평균)와 2차 모멘트(제곱 평균)를 지수 이동 평균으로 추정해 파라미터마다 보폭을 자동으로 조정하는 적응형 최적화 알고리즘이다. 이름은 적응적 모멘트 추정(Adaptive Moment Estimation)에서 왔으며, 하이퍼파라미터 조정 부담이 적어 딥러닝에서 가장 널리 쓰이는 옵티마이저 중 하나다.
Adam은 Diederik P. Kingma와 Jimmy Ba가 2014년 arXiv에 공개하고 ICLR 2015에서 발표했다. 저자들은 희소 기울기에 강한 AdaGrad와 비정상(Non-stationary) 목적 함수에 강한 RMSProp의 장점을 결합하는 것을 목표로 했으며, 구현이 간단하고 메모리 요구량이 작으며 기울기의 대각 스케일 변화에 불변이라는 점을 특징으로 내세웠다.
단계 $t$의 기울기를 $g_t$라 하면 Adam은 먼저 $m_t = \beta_1 m_{t-1} + (1-\beta_1) g_t$로 1차 모멘트를, $v_t = \beta_2 v_{t-1} + (1-\beta_2) g_t^2$로 2차 모멘트를 갱신한다. 이어 $\hat{m}_t = m_t / (1-\beta_1^t)$, $\hat{v}_t = v_t / (1-\beta_2^t)$로 편향을 보정하고, $\theta_t = \theta_{t-1} - \alpha \hat{m}_t / (\sqrt{\hat{v}_t} + \epsilon)$로 파라미터를 갱신한다. 제곱과 나눗셈은 모두 원소별 연산이다.
편향 보정(Bias Correction)이 필요한 이유는 모멘트 추정치를 0으로 초기화하기 때문이다. 학습 초기에는 $m_t$와 $v_t$가 0 쪽으로 치우쳐 실제 모멘트보다 작게 추정되며, 특히 $\beta_2$가 1에 가까우면 이 편향이 오래 지속된다. 분모 $1-\beta^t$로 나누면 초기 추정치가 확대되어 편향이 상쇄되고, $t$가 커질수록 보정 계수는 1에 가까워진다.
갱신량은 $\hat{m}_t / \sqrt{\hat{v}_t}$ 형태이므로 기울기의 신호 대 잡음비처럼 해석할 수 있다. 기울기 방향이 일관된 파라미터는 상대적으로 크게, 기울기가 들쭉날쭉한 파라미터는 작게 움직이며, 실제 보폭은 대략 학습률 $\alpha$ 근처로 제한된다. 원 논문이 제안한 기본 하이퍼파라미터는 다음과 같다.
기본 하이퍼파라미터
  • 학습률 $\alpha$: 기본값은 0.001이다. 보폭의 상한 역할을 하므로 모델 규모와 배치 크기에 따라 가장 먼저 조정한다.
  • $\beta_1$: 1차 모멘트의 감쇠율로 기본값은 0.9이다. 모멘텀 SGD의 모멘텀 계수와 비슷한 역할을 한다.
  • $\beta_2$: 2차 모멘트의 감쇠율로 기본값은 0.999이다. 값이 클수록 더 긴 기간의 기울기 크기를 평균한다.
  • $\epsilon$: 0으로 나누는 것을 막는 작은 상수로 기본값은 $10^{-8}$이다. 혼합 정밀도 학습에서는 수치 안정성을 위해 더 크게 잡기도 한다.
Adam은 앞선 적응형 옵티마이저의 아이디어를 계승해 하나로 묶은 방법이다. 주요 옵티마이저와의 관계를 정리하면 다음과 같다.
관련 옵티마이저와의 관계
  • AdaGrad: 과거 기울기 제곱을 모두 누적해 파라미터별 학습률을 나눈다. 희소 특징에 유리하지만 누적합이 계속 커져 학습률이 지나치게 작아지며, 원 논문은 이를 $\beta_1 = 0$, $\beta_2$를 1에 매우 가깝게 두고 학습률을 감쇠시킨 Adam의 특수한 경우로 설명한다.
  • RMSProp: 기울기 제곱의 지수 이동 평균으로 나누어 AdaGrad의 학습률 소멸 문제를 해결한다. Adam은 여기에 1차 모멘트의 이동 평균과 편향 보정을 더한 형태로 볼 수 있다.
  • 모멘텀 SGD: 1차 모멘트를 이용한 가속은 공유하지만 파라미터별 크기 조정이 없다. Adam의 $m_t$는 모멘텀 버퍼에, $\sqrt{\hat{v}_t}$는 파라미터별 전처리기(Preconditioner)에 해당한다.
Adam에 L2 정칙화를 손실 항으로 더하면 그 기울기도 $\sqrt{\hat{v}_t}$로 나누어지므로, 기울기가 큰 파라미터일수록 정칙화가 약해지는 왜곡이 생긴다. Loshchilov와 Hutter는 SGD에서는 L2 정칙화와 가중치 감쇠가 동치지만 적응형 방법에서는 그렇지 않음을 지적하고, 가중치 감쇠를 기울기 기반 갱신과 분리해 $\theta_t = \theta_{t-1} - \eta(\hat{m}_t / (\sqrt{\hat{v}_t} + \epsilon) + \lambda \theta_{t-1})$로 적용하는 AdamW를 제안했다(ICLR 2019).
AdamW는 최적 가중치 감쇠 값이 학습률에 덜 의존하도록 만들고 Adam의 일반화 성능을 크게 개선해, 이미지 분류에서 모멘텀 SGD와 경쟁할 수준에 이르렀다. 현재 트랜스포머 기반 모델 학습의 사실상 표준이며, PyTorch의 AdamW 클래스는 가중치 감쇠 기본값으로 0.01을 사용한다.
Reddi, Kale, Kumar(2018)는 간단한 볼록 문제에서도 Adam이 최적해로 수렴하지 않는 반례를 제시하고, 원 논문의 수렴 분석에 문제가 있음을 지적했다. 원인은 기울기 제곱의 지수 이동 평균이 과거 정보를 빠르게 잊어, 드물게 나타나는 큰 기울기의 영향이 금세 사라지는 데 있다. 이들은 과거 2차 모멘트 추정치의 최댓값을 유지해 유효 학습률이 증가하지 않도록 하는 AMSGrad를 제안했다.
AMSGrad는 이론적 수렴 보장을 회복했지만, 실제 딥러닝 과제에서는 Adam 대비 개선 폭이 과제에 따라 달라 기본값으로 채택되지는 않았다. PyTorch의 Adam과 AdamW는 amsgrad 옵션으로 이 변형을 제공하며, 기본값은 꺼져 있다.
Wilson 등(2017)은 선형 분리 가능한 예제와 여러 실험을 통해, Adam·AdaGrad·RMSProp 같은 적응형 방법이 학습 성능은 더 좋더라도 SGD보다 일반화가 나쁜 해를 찾을 수 있다고 보고했다. 이후 이미지 분류 등에서는 모멘텀 SGD가 여전히 자주 선택되는 반면, 언어 모델과 트랜스포머에서는 Adam 계열이 학습 안정성과 속도 면에서 주류가 되었다. AdamW처럼 가중치 감쇠를 올바르게 적용하면 격차가 줄어든다는 결과도 있어, 차이는 과제와 조정 수준에 따라 달라진다고 보는 것이 일반적이다.
Adam은 파라미터마다 $m$과 $v$ 두 개의 상태를 저장하므로, 32비트 기준 파라미터당 8바이트의 추가 메모리가 필요하다. Dettmers 등(2022)은 옵티마이저 상태가 학습 메모리의 33~75%를 차지한다고 분석했으며, 수십억 파라미터 모델에서는 이 비용이 학습 가능한 모델 크기를 제한한다. 이를 줄이기 위해 다음과 같은 기법이 쓰인다.
메모리 절감 기법
  • 8비트 옵티마이저(8-bit Optimizer): 옵티마이저 상태를 2,048개 원소 단위 블록으로 나누어 블록별 최댓값으로 정규화하는 블록 단위 양자화와 동적 양자화를 적용한다. 32비트 Adam과 같은 성능을 유지하면서 상태 메모리를 약 4분의 1로 줄이며, bitsandbytes 라이브러리로 공개되어 있다.
  • 상태 분할(Sharding): ZeRO나 FSDP처럼 데이터 병렬 작업자들이 옵티마이저 상태를 나누어 저장해 장치당 메모리를 줄인다.
  • 경량 옵티마이저: 2차 모멘트를 행·열 통계로 분해해 저장하는 Adafactor나 모멘텀 하나만 유지하는 Lion처럼, 상태 자체를 줄인 옵티마이저를 사용한다.
대규모 언어 모델 사전 학습에서는 원 논문의 기본값과 다른 설정이 자주 쓰인다. 예를 들어 LLaMA(Touvron 등, 2023)는 AdamW를 $\beta_1 = 0.9$, $\beta_2 = 0.95$, 가중치 감쇠 0.1, 기울기 클리핑 1.0으로 설정하고, 2,000단계 워밍업 뒤 최대 학습률의 10%까지 줄어드는 코사인 스케줄을 사용했다. $\beta_2$를 낮추면 2차 모멘트가 최근 기울기 변화에 더 빨리 반응하므로, 대형 모델 학습의 안정성을 높이려는 목적으로 이런 설정이 널리 채택된다.
Adam 이후에도 많은 변형이 제안되었다. Chen 등(2023)은 프로그램 탐색으로 발견한 Lion(EvoLved Sign Momentum)을 제안했는데, 기울기와 모멘텀의 보간값에 부호 함수를 적용해 모든 파라미터를 같은 크기로 갱신하고 모멘텀 하나만 유지하므로 Adam보다 메모리 효율이 높다. 저자들은 AdamW 대비 3~10배 작은 학습률과 그만큼 큰 가중치 감쇠를 권장했다.
실무에서 Adam 계열을 사용할 때는 학습률이 가장 민감한 하이퍼파라미터이므로 워밍업과 감쇠 스케줄을 함께 설계하고, 정칙화가 필요하면 손실에 L2 항을 더하는 대신 AdamW의 분리된 가중치 감쇠를 사용하는 것이 권장된다. 사전 학습된 모델을 미세 조정할 때는 $10^{-5}$ 수준의 작은 학습률이 흔히 쓰이며, 메모리가 부족하면 8비트 옵티마이저나 상태 분할을 검토한다.

#관련 용어

확률적 경사 하강법(SGD)
무작위로 뽑은 일부 표본의 기울기로 파라미터를 반복 갱신하는 최적화 알고리즘
모멘트 추정
기울기의 평균과 제곱 평균을 지수 이동 평균으로 근사하는 과정
편향 보정
0으로 초기화된 이동 평균이 학습 초기에 작게 추정되는 문제를 바로잡는 보정
가중치 감쇠
갱신마다 파라미터를 일정 비율로 줄여 큰 가중치를 억제하는 정칙화 기법
학습률
한 번의 갱신에서 파라미터를 이동시키는 보폭을 정하는 하이퍼파라미터

#직무 연관도

DA
Data Analyst
낮음
딥러닝 기반 분석 모델을 학습하거나 학습 설정을 해석할 때 참고
DS
Data Scientist
밀접
딥러닝 모델 학습에서 옵티마이저와 하이퍼파라미터를 선택하고 학습 안정성을 분석하는 데 핵심적인 개념
DE
Data Engineer
높음
대규모 모델 학습에서 옵티마이저 상태 메모리와 분산 학습 구성을 설계하는 데 필요

#사용 사례

인터넷 서비스전자상거래미디어의료금융
개요
아담 옵티마이저는 트랜스포머 기반 언어 모델, 추천 모델, 생성 모델 등 대부분의 딥러닝 모델 학습에 기본 옵티마이저로 쓰인다. 인터넷 서비스와 전자상거래에서는 검색·추천 모델 학습에, 미디어에서는 이미지·음성 생성 모델 학습에, 의료와 금융에서는 사전 학습 모델의 도메인 미세 조정에 활용된다.
사례
전자상거래 플랫폼에서 상품 검색용 트랜스포머 인코더를 미세 조정할 때 AdamW와 워밍업·코사인 감쇠 스케줄을 사용하고, GPU 메모리를 줄이기 위해 8비트 옵티마이저를 적용한다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.