아담 옵티마이저 (Adam Optimizer)

컴퓨터과학·AI
한 줄 정의: 이전 학습 방향과 속도까지 함께 참고해서, 파라미터마다 학습 속도를 알아서 조절해주는 딥러닝 최적화 알고리즘입니다.
아담 옵티마이저아담 옵티마이저 진행 순서: 기울기 계산 → 1차 모멘트, 기울기 계산 → 2차 모멘트, 1차 모멘트 → 편향 보정, 2차 모멘트 → 편향 보정, 편향 보정 → 파라미터 갱신.기울기 계산현재 위치의 경사1차 모멘트관성·감쇠율 β12차 모멘트변화 크기·감쇠율 β2편향 보정초반 0 근처 치우침파라미터 갱신파라미터별 보폭ε: 분모가 0에 가까워지는 것을 막는 작은 상수한계빠르고 안정적인 기본값이지 항상 최고 성능은아님

쉽게 풀면

산길을 내려가 계곡 바닥(가장 낮은 지점)을 찾는 등산객을 떠올려 보세요. 기본적인 경사하강법은 매 걸음마다 현재 위치의 기울기만 보고 그 방향으로 정해진 보폭만큼 내려갑니다. 그런데 지형이 울퉁불퉁하면 이 방식은 자꾸 갈지자로 헤매거나 너무 느리게 내려갈 수 있습니다. Adam은 이 등산객에게 두 가지를 더해줍니다. 첫째, "지금까지 대체로 어느 방향으로 내려왔는지"(관성, momentum)를 기억해서 급격한 방향 전환에 덜 흔들리게 하고, 둘째, "이 방향은 지금까지 얼마나 가파르게 변해왔는지"를 보고 지형이 험한 곳에서는 보폭을 줄이고 완만한 곳에서는 보폭을 키웁니다. 이렇게 방향과 보폭을 모두 상황에 맞게 자동으로 조절해주기 때문에, 별다른 튜닝 없이도 대부분의 딥러닝 모델에서 안정적으로 잘 작동해 사실상 기본 선택지로 쓰입니다.

왜 중요한가

딥러닝 모델은 파라미터 수가 많고 손실함수의 지형이 매우 복잡하기 때문에, 어떤 최적화 알고리즘을 쓰느냐에 따라 학습이 안정적으로 수렴하는지, 얼마나 빨리 좋은 성능에 도달하는지가 크게 달라집니다. Adam은 별도의 정교한 튜닝 없이도 폭넓은 모델과 데이터에서 안정적으로 작동하기 때문에, 새로운 아키텍처나 학습 기법을 제안하는 논문에서도 최적화 방식 자체보다 다른 기여에 집중할 수 있게 해주는 사실상의 기본값 역할을 합니다. 그래서 컴퓨터비전, 자연어처리, 강화학습 등 거의 모든 딥러닝 하위분야의 논문에서 실험 설정을 설명할 때 빠지지 않고 언급됩니다.

어떤 절차인가

Adam은 기울기의 1차 모멘트(지수 이동 평균, 방향)와 2차 모멘트(제곱의 지수 이동 평균, 크기)를 함께 추정해 매개변수마다 보폭을 조절합니다(Kingma & Ba, 2015).

  1. m_t = β₁ m_(t−1) + (1−β₁) g_t
  2. v_t = β₂ v_(t−1) + (1−β₂) g_t²
  3. 초기에 m과 v가 0 쪽으로 치우치므로 편향 보정: m̂ = m/(1−β₁^t), v̂ = v/(1−β₂^t)
  4. 갱신: θ ← θ − η · m̂ / (√v̂ + ε)

흔히 쓰는 기본값은 β₁ = 0.9, β₂ = 0.999, ε = 10⁻⁸이고, 학습률 η는 문제마다 정합니다.

언제 쓰고 무엇을 얻나

첫 번째 단계(t=1)에서 기울기가 g일 때 보폭을 계산해 보았습니다(η = 0.001, 기본값, 코드로 계산).

기울기 g첫 단계 이동량
0.5약 0.0010
0.005약 0.0010

기울기 크기가 100배 달라도 첫 단계의 이동량은 거의 η입니다. 보폭이 기울기의 단위가 아니라 η에 비례하도록 정규화되기 때문입니다. 이 성질이 Adam을 ‘튜닝 부담이 적은 기본 선택지’로 만든 이유 중 하나로 설명됩니다.

논문에는 이렇게 적는다

논문에서는 이렇게 쓰입니다

실제 논문에서

이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.

예시 문장

아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.

"모델 학습에는 Adam optimizer(learning rate = 0.001)를 사용하였으며, 총 100 epoch 동안 학습을 진행하였다."

이 문장은 연구자가 모델의 가중치를 업데이트하는 최적화 알고리즘으로 Adam을 선택했고, 학습 속도를 조절하는 기본 보폭(learning rate) 값을 0.001로 설정했다는 뜻입니다. 딥러닝 논문의 실험 설정(experimental setup) 부분에 거의 항상 등장하는 표현입니다.

"본 연구에서는 사전학습된 언어모델을 미세조정하기 위해 AdamW를 채택하였으며, weight decay와 learning rate warmup을 함께 적용하였다."

자연어처리 분야, 특히 트랜스포머 기반 언어모델을 다루는 논문에서는 Adam의 변형인 AdamW(가중치 감쇠를 별도로 분리한 버전)가 자주 쓰입니다. 이 문장은 파인튜닝 과정에서 AdamW를 사용했고, 학습 초반에 학습률을 서서히 올리는 warmup 기법을 함께 썼다는 의미입니다.

"생성자와 판별자 모두 Adam optimizer(β1 = 0.5)로 학습하였으며, 이는 학습 안정성을 높이기 위한 것이다."

이미지 생성 모델인 생성적 적대 신경망 관련 논문에서는 Adam의 momentum 관련 하이퍼파라미터(β1)를 기본값(보통 0.9)보다 낮춰서 학습 진동을 줄이는 경우가 흔합니다. 이처럼 Adam은 단순히 "쓴다/안 쓴다"뿐 아니라 세부 설정값까지 논문마다 조정해서 보고되곤 합니다.

조금 더 깊게 보면

Adam이라는 이름은 "적응적 모멘트 추정(Adaptive Moment Estimation)"에서 왔으며, 실제로는 그래디언트의 1차 모멘트(평균, momentum에 해당)와 2차 모멘트(기울기 제곱의 평균, 각 파라미터별 변화의 크기)를 각각 추정해 함께 활용합니다. 학습 초반에는 이 추정치들이 0 근처에서 시작해 편향되기 쉬운데, Adam은 이를 보정하는 bias correction 절차를 포함하고 있습니다. 논문에서 자주 함께 등장하는 β1, β2는 각각 1차·2차 모멘트를 얼마나 오래 기억할지 정하는 감쇠율이고, ε(엡실론)은 분모가 0에 가까워지는 것을 막는 아주 작은 상수입니다. 최근에는 가중치 감쇠 방식을 개선한 AdamW, 학습 후반 불안정성을 보완한 다양한 변형들이 함께 제안되어 왔으므로, 논문에서 "Adam"이라고만 적혀 있어도 정확히 어떤 버전과 하이퍼파라미터를 썼는지 확인하는 습관이 필요합니다.

주의할 점

Adam이 대부분의 상황에서 무난하고 빠르게 수렴한다고 해서 항상 가장 좋은 최종 성능을 내는 것은 아닙니다. 일부 연구에서는 단순한 경사하강법에 momentum을 더한 방식이 학습은 더 오래 걸려도 최종적으로 더 일반화가 잘 되는 모델을 만든다고 보고하기도 합니다. 즉 Adam은 "빠르고 안정적인 기본값"이지 "무조건 최고의 선택"은 아니라는 점을 기억해야 합니다.

헷갈리기 쉬운 용어

방법방향 정보보폭 조절
경사하강법현재 기울기고정 학습률
모멘텀기울기의 이동 평균고정 학습률
Adam기울기의 이동 평균기울기 제곱의 이동 평균으로 매개변수별 조절

참고 문헌

  1. Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. In Proceedings of the 3rd International Conference on Learning Representations (ICLR 2015).
  2. Reddi, S. J., Kale, S., & Kumar, S. (2018). On the convergence of Adam and beyond. In Proceedings of the 6th International Conference on Learning Representations (ICLR 2018).
  3. Wilson, A. C., Roelofs, R., Stern, M., Srebro, N., & Recht, B. (2017). The marginal value of adaptive gradient methods in machine learning. arXiv preprint arXiv:1705.08292.
  4. Loshchilov, I., & Hutter, F. (2019). Decoupled weight decay regularization. In Proceedings of the 7th International Conference on Learning Representations (ICLR 2019).

표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.

개념 계통

상위 개념

분야 전체 개념 지도 보기 →

관련 용어