Yolo 비전 선전
선전
지금 참여하기
용어집

Adam 옵티마이저

Adam 옵티마이저가 적응형 학습 속도, 모멘텀, AI의 실제 애플리케이션을 통해 효율적인 신경망 학습을 지원하는 방법을 알아보세요.

Adam Adaptive Moment Estimation의 약자로, 딥러닝 모델 훈련에 널리 사용되는 정교한 최적화 알고리즘입니다. 이 알고리즘은 확률적 경사 하강법(SGD)의 두 가지 인기 있는 확장 기술인 적응 경사 알고리즘(AdaGrad)과 평균 제곱근 전파(RMSProp)의 장점을 결합하여 분야에 혁신을 가져왔습니다. 경사의 1차 및 2차 모멘트 추정값으로부터 각기 다른 매개변수에 대한 개별 적응형 학습률을 계산함으로써, Adam 신경망이 기존 방법보다 훨씬 빠르게 수렴하도록 Adam . 그 견고성과 최소한의 조정 요구사항 덕분에 새로운 머신러닝(ML) 프로젝트를 시작하는 많은 실무자들에게 기본 선택지로 자리잡았습니다.

Adam 작동 방식

모델 훈련의 핵심은 모델의 예측값과 실제 데이터 간의 차이를 측정하는 손실 함수를 최소화하는 것입니다. 표준 알고리즘은 일반적으로 일정한 단계 크기(학습률)를 사용하여 "손실 지형"을 따라 최소 오차 방향으로 하강합니다. 그러나 이 지형은 종종 협곡과 고원 같은 복잡한 구조를 지녀 단순한 알고리즘을 갇히게 할 수 있습니다.

Adam 모든 매개변수에 대해 두 개의 역사적 버퍼를 유지함으로써 이 문제를 Adam :

  1. 운동량(제1운동량): 언덕을 굴러 내려가는 무거운 공과 유사하게, 이는 관련 방향에서의 속도를 유지하기 위해 과거 기울기의 이동 평균을 추적합니다.
  2. 분산(2차 모멘트): 이 값은 기울기의 제곱에 대한 이동 평균을 추적하며, 이는 학습률을 조정합니다.

이 조합을 통해 최적화기는 평탄한 영역에서는 더 큰 단계를, 가파르거나 잡음이 많은 영역에서는 더 작고 신중한 단계를 취할 수 있습니다. 구체적인 메커니즘은 킹마(Kingma)와 바(Ba)의 기초적인Adam 논문에서 상세히 설명되어 있으며, 이 논문은 다양한 딥러닝(DL) 작업 전반에 걸쳐 Adam의 경험적 우월성을 입증했습니다.

실제 애플리케이션

Adam 다용도성은 사실상 모든 인공지능(AI) 분야에 걸쳐 그 채택으로 이어졌다.

  • 자연어 처리(NLP): 생성형 사전 훈련 트랜스포머(GPT)와 같은 대규모 언어 모델은 훈련 과정에서 Adam 또는 그 변형인 AdamW)에 크게 의존합니다. 이 알고리즘은 방대한 어휘와 대규모 데이터셋과 관련된 희소 기울기를 효율적으로 처리하여 강력한 챗봇과 번역 시스템의 개발을 가능하게 합니다.
  • 의료 분야의 컴퓨터 비전: 의료 영상 분석에서 모델은 MRI 스캔에서 종양과 같은 미세한 이상을 detect 합니다. Adam 컨볼루션 신경망(CNN)이 고정밀 솔루션으로 빠르게 수렴하도록 Adam , 이는 의료 AI 진단 도구 개발 시 매우 중요합니다.

Adam SGD

Adam 일반적으로 수렴 Adam , 확률적 경사 하강법(SGD)과 구분하는 것이 중요합니다. SGD 고정된 학습률로 모델 가중치를 SGD , 최신 물체 탐지 모델 훈련의 최종 단계에서는 테스트 데이터에서 약간 더 나은 일반화 성능(최종 정확도)을 보여줄 수 있기 때문에 종종 선호됩니다.

그러나 Adam "적응형" Adam , 학습률 조정을 자동으로 처리합니다. 이는 초기 실험이나 SGD 조정이 SGD 복잡한 아키텍처에서 훨씬 더 사용자 친화적입니다. Ultralytics 실험을 관리하는 사용자의 경우, 성능 비교를 위해 이러한 최적화기 간 전환은 하이퍼파라미터 조정의 핵심 단계입니다.

Ultralytics 구현

현대적인 프레임워크들처럼 PyTorch 와 Ultralytics 라이브러리는 Adam 활용을 Adam 만듭니다. 널리 쓰이는 변형인 AdamW (가중치 감쇠를Adam )은 기존 Adam 정규화 문제를 해결하므로 흔히 권장됩니다. 특히 YOLO26과 같은 최신 아키텍처에서는 AdamW 안정성 덕분에 효과가 두드러집니다.

다음 예제는 AdamW 사용하여 YOLO26 모델을 훈련하는 방법을 보여줍니다:

from ultralytics import YOLO

# Load the cutting-edge YOLO26n model
model = YOLO("yolo26n.pt")

# Train the model using the 'AdamW' optimizer
# The 'optimizer' argument allows easy switching between SGD, Adam, AdamW, etc.
results = model.train(data="coco8.yaml", epochs=5, optimizer="AdamW")

더 깊은 이론적 배경을 원하는 개발자를 위해, 스탠퍼드 CS231n 최적화 노트와 같은 자료는 Adam RMSProp 및 AdaGrad 같은 다른 알고리즘과 Adam 탁월한 시각화를 제공합니다. 또한 PyTorch 문서는 사용자 정의가 가능한 인수 및 구현 세부 사항에 대한 기술적 정보를 제공합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기