아담 옵티마이저 (Adam Optimizer)

컴퓨터과학·AI
한 줄 정의: 이전 학습 방향과 속도까지 함께 참고해서, 파라미터마다 학습 속도를 알아서 조절해주는 딥러닝 최적화 알고리즘입니다.

쉽게 풀면

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

왜 중요한가

딥러닝 모델은 파라미터 수가 많고 손실함수의 지형이 매우 복잡하기 때문에, 어떤 최적화 알고리즘을 쓰느냐에 따라 학습이 안정적으로 수렴하는지, 얼마나 빨리 좋은 성능에 도달하는지가 크게 달라집니다. 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은 "빠르고 안정적인 기본값"이지 "무조건 최고의 선택"은 아니라는 점을 기억해야 합니다.

관련 용어