Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Adam Optimizer

Adam은 모멘텀과 최근 그래디언트 크기에 따라 조정되는 매개변수별 스텝 크기를 결합합니다. 업데이트 규칙, 기본값, AdamW, Adam과 SGD의 비교를 다룹니다.

Adam 옵티마이저는 Adaptive Moment Estimation의 약칭으로, 모든 파라미터에 개별 적응형 스텝 크기를 적용하는 최적화 알고리즘이며 신경망 학습에 사용됩니다. Kingma와 Ba가 Adam: 확률적 최적화 방법에서 소개한 Adam은 과거 그래디언트와 제곱값의 이동 평균을 활용해 확률적 경사 하강법(SGD)을 확장합니다. 초기 학습이 빠르고 기본 설정을 그대로 사용하기 쉬워 Adam은 딥러닝에서 가장 흔한 시작 옵티마이저가 되었으며, AdamW 변형은 Transformer와 대규모 언어 모델 학습의 표준 선택입니다.

Adam의 작동 방식#

학습은 각 가중치를 해당 그래디언트에 따라 반복적으로 업데이트하여 손실 함수를 최소화합니다. 일반 SGD는 모든 그래디언트에 동일한 학습률을 적용합니다. Adam은 파라미터마다 추가 값 두 개를 유지하고, 각 스텝에서 현재 그래디언트 t를 사용해 이를 업데이트합니다 g.

  1. 1차 모멘트(모멘텀): m = β1·m + (1 − β1)·g은 그래디언트의 지수 감쇠 평균으로, 업데이트가 일관된 방향으로 진행되도록 합니다.
  2. 2차 모멘트: v = β2·v + (1 − β2)·g²은 제곱 그래디언트의 감쇠 평균으로, 각 파라미터의 일반적인 그래디언트 크기를 추적합니다.
  3. 편향 보정: m̂ = m / (1 − β1^t) 및 v̂ = v / (1 − β2^t)은 두 평균이 모두 0에서 시작하는 문제를 보정합니다.
  4. 업데이트: θ = θ − lr · m̂ / (√v̂ + ε).

논문에서 제시한 기본값은 PyTorch의 torch.optim.Adam에서도 사용하며, lr = 0.001, β1 = 0.9, β2 = 0.999, ε = 1e-8입니다. √v̂으로 나누면 각 스텝이 파라미터의 일반적인 그래디언트 크기에 따라 정규화되므로, 그래디언트가 아주 작거나 커도 스텝 크기는 학습률과 비슷하게 유지됩니다. 또한 m̂ 안에서 양의 그래디언트와 음의 그래디언트가 상쇄되는 잡음이 많은 방향에서는 스텝 크기가 줄어듭니다. 아래 코드는 그래디언트 크기가 1,000배 차이 나는 두 파라미터에서 SGD와 Adam의 첫 번째 스텝을 비교합니다.

import torch

# Two parameters whose gradients differ in scale by 1,000x
scale = torch.tensor([1000.0, 1.0])

for name, optimizer_cls in [("SGD", torch.optim.SGD), ("Adam", torch.optim.Adam)]:
    w = torch.zeros(2, requires_grad=True)
    optimizer = optimizer_cls([w], lr=0.001)

    loss = (scale * w).sum()  # gradient is [1000, 1]
    loss.backward()
    optimizer.step()
    print(f"{name} first step: {[round(v, 4) for v in w.tolist()]}")

SGD는 첫 번째 파라미터를 -1.0으로, 두 번째 파라미터를 -0.001로 이동시킵니다. 그래디언트를 따르므로 1,000배 차이가 납니다. Adam은 정규화된 스텝이 그래디언트의 원시 크기가 아니라 방향과 일관성에 좌우되므로 두 파라미터를 모두 학습률과 정확히 같은 -0.001만큼 이동시킵니다.

Adam과 AdamW 비교#

일반적인 Adam 구현은 정규화의 한 형태인 가중치 감쇠를 그래디언트에 L2 패널티로 더합니다. 이 패널티도 다른 항목과 함께 √v̂로 나누므로, 그래디언트가 큰 가중치에는 정규화가 거의 적용되지 않습니다. Loshchilov와 Hutter의 분리형 가중치 감쇠는 적응형 업데이트와 별도로 각 스텝에서 가중치를 직접 줄여 이 문제를 해결합니다. 그 결과 탄생한 AdamW는 논문 실험에서 이미지 분류 일반화 성능을 Adam보다 향상했으며 torch.optim.AdamW로 사용할 수 있습니다.

Adam과 SGD 비교#

모멘텀을 적용한 SGD는 전역 학습률 하나를 사용하고 파라미터마다 버퍼 하나를 저장합니다. 반면 Adam은 버퍼 두 개를 저장하며, 32비트 정밀도에서 파라미터당 8바이트가 필요합니다. 따라서 파라미터 70억 개 모델에서는 옵티마이저 상태에 56GB가 사용됩니다. Adam은 일반적으로 초기에 더 빠르게 진전하고 학습률에 덜 민감하며, Transformer를 SGD보다 훨씬 안정적으로 학습합니다. 잘 조정된 SGD는 합성곱 이미지 모델에서 같거나 더 높은 최종 정확도에 도달하는 경우가 많습니다. 또한 Wilson 등은 자신들이 실험한 이미지 분류 및 언어 작업에서 적응형 방법이 SGD보다 일반화 성능이 낮은 경우가 많다는 사실을 발견했습니다.

Ultralytics YOLO 학습에는 이러한 절충점이 반영되어 있습니다. 기본값인 optimizer="auto"은 클래스 수에 맞춰 초기 학습률을 설정한 AdamW를 선택해 최대 10,000회 반복 학습을 수행하고, 더 긴 스케줄에서는 SGD와 Muon의 하이브리드인 MuSGD로 전환합니다. 옵티마이저를 명시적으로 설정할 때는 학습률도 설정해야 합니다. 기본 lr0=0.01는 SGD에 적합하며 일반적인 Adam 학습률보다 10배 높기 때문입니다.

from ultralytics import YOLO

# 사전 학습된 YOLO26n 모델을 불러옵니다
model = YOLO("yolo26n.pt")

# AdamW와 Adam에 적합한 초기 학습률로 학습합니다.
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW", lr0=0.001)

YOLO26이 Adam 계열 옵티마이저로 학습할 때 momentum 인수(기본값 0.937)는 β1를 설정하며, β2은 0.999로 고정됩니다.

  • AdaGrad: 과거 모든 제곱 그래디언트의 제곱근으로 각 스텝을 나누므로 스텝 크기가 계속 줄어듭니다. 희소 특징에 적합하지만 학습이 길어지면 속도가 느려집니다.
  • RMSProp: AdaGrad의 누적 합을 제곱 그래디언트의 지수 감쇠 평균으로 대체합니다. Adam은 기본적으로 RMSProp에 모멘텀과 편향 보정을 더한 방식입니다.
  • Muon: 은닉층의 2D 가중치 행렬을 위한 옵티마이저입니다. Newton–Schulz 반복을 사용해 각 모멘텀 업데이트를 직교화하고, 파라미터마다 Adam 옵티마이저 상태의 절반에 해당하는 상태 버퍼 하나만 유지합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요