아담 옵티마이저 (Adam Optimizer)
쉽게 풀면
산길을 내려가 계곡 바닥(가장 낮은 지점)을 찾는 등산객을 떠올려 보세요. 기본적인 경사하강법은 매 걸음마다 현재 위치의 기울기만 보고 그 방향으로 정해진 보폭만큼 내려갑니다. 그런데 지형이 울퉁불퉁하면 이 방식은 자꾸 갈지자로 헤매거나 너무 느리게 내려갈 수 있습니다. Adam은 이 등산객에게 두 가지를 더해줍니다. 첫째, "지금까지 대체로 어느 방향으로 내려왔는지"(관성, momentum)를 기억해서 급격한 방향 전환에 덜 흔들리게 하고, 둘째, "이 방향은 지금까지 얼마나 가파르게 변해왔는지"를 보고 지형이 험한 곳에서는 보폭을 줄이고 완만한 곳에서는 보폭을 키웁니다. 이렇게 방향과 보폭을 모두 상황에 맞게 자동으로 조절해주기 때문에, 별다른 튜닝 없이도 대부분의 딥러닝 모델에서 안정적으로 잘 작동해 사실상 기본 선택지로 쓰입니다.
왜 중요한가
딥러닝 모델은 파라미터 수가 많고 손실함수의 지형이 매우 복잡하기 때문에, 어떤 최적화 알고리즘을 쓰느냐에 따라 학습이 안정적으로 수렴하는지, 얼마나 빨리 좋은 성능에 도달하는지가 크게 달라집니다. Adam은 별도의 정교한 튜닝 없이도 폭넓은 모델과 데이터에서 안정적으로 작동하기 때문에, 새로운 아키텍처나 학습 기법을 제안하는 논문에서도 최적화 방식 자체보다 다른 기여에 집중할 수 있게 해주는 사실상의 기본값 역할을 합니다. 그래서 컴퓨터비전, 자연어처리, 강화학습 등 거의 모든 딥러닝 하위분야의 논문에서 실험 설정을 설명할 때 빠지지 않고 언급됩니다.
어떤 절차인가
Adam은 기울기의 1차 모멘트(지수 이동 평균, 방향)와 2차 모멘트(제곱의 지수 이동 평균, 크기)를 함께 추정해 매개변수마다 보폭을 조절합니다(Kingma & Ba, 2015).
- m_t = β₁ m_(t−1) + (1−β₁) g_t
- v_t = β₂ v_(t−1) + (1−β₂) g_t²
- 초기에 m과 v가 0 쪽으로 치우치므로 편향 보정: m̂ = m/(1−β₁^t), v̂ = v/(1−β₂^t)
- 갱신: θ ← θ − η · m̂ / (√v̂ + ε)
흔히 쓰는 기본값은 β₁ = 0.9, β₂ = 0.999, ε = 10⁻⁸이고, 학습률 η는 문제마다 정합니다.
언제 쓰고 무엇을 얻나
첫 번째 단계(t=1)에서 기울기가 g일 때 보폭을 계산해 보았습니다(η = 0.001, 기본값, 코드로 계산).
| 기울기 g | 첫 단계 이동량 |
|---|---|
| 0.5 | 약 0.0010 |
| 0.005 | 약 0.0010 |
기울기 크기가 100배 달라도 첫 단계의 이동량은 거의 η입니다. 보폭이 기울기의 단위가 아니라 η에 비례하도록 정규화되기 때문입니다. 이 성질이 Adam을 ‘튜닝 부담이 적은 기본 선택지’로 만든 이유 중 하나로 설명됩니다.
논문에는 이렇게 적는다
- η, β₁, β₂, ε, 배치 크기, 학습 일정(스케줄), 가중치 감쇠 방식을 모두 적습니다.
- 이론적 한계: 일부 볼록 문제에서 수렴하지 않는 반례가 제시되었고(Reddi et al., 2018), 그 보완으로 AMSGrad 같은 변형이 나왔습니다.
- 일반화: 적응형 방법이 SGD보다 실질적으로 낫다는 통념에 의문을 제기한 연구가 있습니다(Wilson et al., 2017). 결과는 설정에 의존하므로 비교 조건을 확인해야 합니다.
- 가중치 감쇠: Adam에서 L2 정규화와 가중치 감쇠는 다르며, 이를 분리한 AdamW가 제안되었습니다(Loshchilov & Hutter, 2019).
- 비교 실험에서는 모든 방법에 학습률을 똑같이 탐색했는지 밝힙니다.
논문에서는 이렇게 쓰입니다
실제 논문에서
이 용어를 직접 쓴 국내 논문 문장을 아직 수집하지 못했습니다. 수집되는 대로 출처와 함께 싣겠습니다.
예시 문장
아래는 용어의 쓰임을 보여 주려고 만든 예시로, 실제 논문에서 가져온 문장이 아닙니다.
이 문장은 연구자가 모델의 가중치를 업데이트하는 최적화 알고리즘으로 Adam을 선택했고, 학습 속도를 조절하는 기본 보폭(learning rate) 값을 0.001로 설정했다는 뜻입니다. 딥러닝 논문의 실험 설정(experimental setup) 부분에 거의 항상 등장하는 표현입니다.
자연어처리 분야, 특히 트랜스포머 기반 언어모델을 다루는 논문에서는 Adam의 변형인 AdamW(가중치 감쇠를 별도로 분리한 버전)가 자주 쓰입니다. 이 문장은 파인튜닝 과정에서 AdamW를 사용했고, 학습 초반에 학습률을 서서히 올리는 warmup 기법을 함께 썼다는 의미입니다.
이미지 생성 모델인 생성적 적대 신경망 관련 논문에서는 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은 "빠르고 안정적인 기본값"이지 "무조건 최고의 선택"은 아니라는 점을 기억해야 합니다.
헷갈리기 쉬운 용어
참고 문헌
- Kingma, D. P., & Ba, J. (2015). Adam: A method for stochastic optimization. In Proceedings of the 3rd International Conference on Learning Representations (ICLR 2015).
- 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).
- 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.
- Loshchilov, I., & Hutter, F. (2019). Decoupled weight decay regularization. In Proceedings of the 7th International Conference on Learning Representations (ICLR 2019).
표의 기준값은 위 문헌에 근거한 관례이며, 분야·학술지마다 다른 기준을 쓸 수 있습니다.