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

Adam 옵티마이저

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

Adam (적응형 모멘트 추정)은 정교하고 널리 사용되는 최적화 알고리즘으로, 훈련 과정에서 신경망의 매개변수를 신경망의 매개변수를 업데이트하도록 설계된 정교하고 널리 사용되는 최적화 알고리즘입니다. 다른 두 가지 유명한 확장 기능의 장점을 결합하여 확장된 확률적 경사 하강(SGD), 특히 적응형 경사 알고리즘(AdaGrad)과 루트 평균 제곱 전파(RMSProp)Adam 결합하여 각 개별 파라미터에 대한 적응형 학습률을 계산합니다. 이 기능을 사용하면 노이즈가 많은 문제에서 희소 경사도를 효율적으로 처리할 수 있으므로 훈련 시 기본으로 선택됩니다. 복잡한 딥러닝(DL) 아키텍처, 복잡한 딥러닝 아키텍처를 훈련하는 데 기본으로 사용됩니다.

Adam 작동 방식

Adam 핵심 메커니즘은 그라디언트의 첫 번째와 두 번째 순간을 계산하여 가중치별 학습률을 조정하는 것입니다. 신경망의 각 가중치에 대한 신경망의가중치를 조정하는 것입니다. "첫 번째 모멘트'는 무거운 공이 언덕 아래로 굴러가는 것처럼 언덕을 굴러 내려가는 것과 비슷합니다. "두 번째 모멘트"는 중심이 잡히지 않은 분산을 추적하여 스텝 크기를 효과적으로 확장합니다. 를 효과적으로 조정합니다.

역전파 중에 알고리즘은 다음을 계산합니다. 에 대한 손실 함수의 기울기를 계산합니다. 가중치. 그런 다음 Adam 기울기(모멘텀)와 제곱 기울기(분산)의 지수 이동 평균을 업데이트합니다. 이러한 이동 평균은 현재 기울기의 스케일을 조정하는 데 사용되어 모델이 일관된 기울기로 큰 방향으로 나아가고 일관된 그라데이션으로, 분산이 큰 방향에서는 더 작은 단계로 진행되도록 합니다. 이 프로세스는 원본에 자세히 설명되어 있습니다. Adam 연구 논문에 자세히 설명되어 있습니다.

Adam 다른 옵티마이저의 차이점

Adam 언제 사용해야 하는지 이해하려면 다른 일반적인 알고리즘과 비교해야 합니다. 머신 러닝(ML) 프레임워크에서 발견되는 다른 일반적인 알고리즘과 비교해야 합니다.

  • 확률적 경사 하강(SGD): SGD 고정 학습률(또는 간단한 감쇠 일정)을 사용하여 파라미터를 업데이트합니다. SGD 계산적으로 효율적이고 종종 잘 일반화되지만, 손실 환경의 "안장 지점"에서 어려움을 겪을 수 있으며 Adam 느리게 수렴합니다. 많은 컴퓨터 비전 작업에서 SGD 사용하여 최종 최종 미세 조정을 위해 SGD를 사용합니다.
  • RMSProp: 이 최적화 도구는 주로 AdaGrad에서 나타나는 학습 속도 저하 문제를 해결합니다. Adam 은 다음과 같이 RMSProp을 개선합니다. 모멘텀 항을 추가하여 진동을 완화하고 최소값을 향한 수렴을 가속화합니다.
  • AdamW: 다음과 같이 알려진 변종 체중 감소가 분리된Adam AdamW는 종종 현대의 트랜스포머 및 대형 컴퓨터 비전 모델을 훈련하는 데 선호됩니다. It 가중치 감쇠 정규화를 그라데이션 업데이트에서 분리하여 종종 표준 Adam.

실제 애플리케이션

견고하고 하이퍼파라미터 튜닝에 대한 최소한의 요구 사항으로 인해 Adam 다양한 영향력 있는 영역에서 다양한 분야에서 활용되고 있습니다.

  1. 의료 분야의 AI: 언제 훈련 모델 의료 이미지 분석(예:MRI 스캔의 이상 징후 감지 이상 징후를 감지하는 등의 의료 이미지 분석 모델을 학습할 때 데이터가 희박하거나 불균형할 수 있습니다. Adam 적응형 학습 속도는 특정 특징이 드물게 나타나는 경우에도 모델이 빠르게 특정 특징이 훈련 데이터에 자주 나타나지 않는 경우에도 학습 데이터에 특정 특징이 자주 나타나지 않는 경우에도 모델이 빠르게 수렴하여 진단 도구.
  2. 자연어 처리(NLP): GPT-4와 같은 대규모 언어 모델(LLM)은 사전 학습 중에 Adam (또는 AdamW)에 크게 의존합니다. 알고리즘 은 수십억 개에 달하는 방대한 수의 매개변수와 단어 임베딩의 희박한 특성을 효율적으로 처리합니다, 이러한 모델은 다음과 같은 방대한 텍스트 데이터 세트에서 복잡한 언어 패턴을 학습할 수 있습니다. Wikipedia.

Ultralytics YOLO 사용

Ultralytics Python API를 사용할 때, 쉽게 선택할 수 있습니다. 객체 감지, 세분화 또는 포즈 추정 모델을 훈련하기 위한 Adam 옵티마이저를 쉽게 선택할 수 있습니다. SGD 기본값이지만 가 기본값이지만, Adam 소규모 데이터 세트 또는 빠른 수렴이 우선시되는 훌륭한 대안입니다.

다음 예는 YOLO11 모델을 훈련하는 방법을 보여줍니다:

from ultralytics import YOLO

# Load a generic YOLO11 model
model = YOLO("yolo11n.pt")

# Train the model on the COCO8 dataset using the 'Adam' optimizer
# The 'optimizer' argument creates the specific PyTorch optimizer instance internally
results = model.train(data="coco8.yaml", epochs=5, optimizer="Adam")

이러한 유연성 덕분에 연구자와 엔지니어는 다양한 실험을 통해 최적화 도구 구성을 실험하여 특정 사용자 지정 데이터 세트에 가장 적합한 최적의 설정을 찾을 수 있습니다.

Ultralytics 커뮤니티 가입

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

지금 참여하기