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

Learning Rate

학습률은 학습 중 모든 가중치 업데이트의 크기를 조정합니다. 값이 너무 높으면 발산하고 너무 낮으면 학습이 정체되는 이유와 워밍업, 감쇠 스케줄, 튜닝을 다룹니다.

학습률은 각 학습 단계에서 모델 가중치가 얼마나 크게 변할지를 정하는 하이퍼파라미터입니다. 경사 하강법은 손실 함수의 그래디언트를 계산합니다. 그래디언트는 손실이 가장 빠르게 증가하는 방향을 가리키며, 각 가중치는 w ← w − η × gradient에 따라 업데이트됩니다. 여기서 η(에타)는 학습률입니다. 스텝 크기도 같은 의미이며, 코드에서는 보통 lr라고 부릅니다. 적절한 학습률을 설정하면 신경망이 좋은 해로 빠르게 수렴하며, 잘못 설정하면 학습이 발산하거나 매우 느려집니다. 따라서 Leslie Smith의 순환 학습률 논문은 이를 조정해야 할 가장 중요한 하이퍼파라미터라고 설명하며, 특히 딥 네트워크에서 중요합니다.

너무 높거나 낮은 경우와 적정 수준#

학습률은 속도와 안정성 사이의 균형을 조절합니다.

  • 너무 높음: 각 단계에서 최소값을 지나칩니다. 손실이 진동하거나 급등하거나 증가하다가 NaN이 되며, 학습이 발산합니다.
  • 너무 낮음: 각 단계에서 가중치가 거의 변하지 않습니다. 손실이 천천히 감소하고, 수렴에 훨씬 많은 에폭이 필요하며, 고정된 예산으로 실행하면 과소적합 상태로 끝납니다.
  • 적절한 수준: 손실이 꾸준히 감소하고 최소값 근처에서 안정됩니다.

아래 PyTorch 스크립트는 동일한 시작점에서 네 가지 학습률을 사용해 w² 손실을 최소화합니다.

import torch

# Minimize loss = w**2 (lowest at w = 0) from the same start with four learning rates
for lr in (0.01, 0.1, 0.9, 1.1):
    w = torch.tensor(5.0, requires_grad=True)
    optimizer = torch.optim.SGD([w], lr=lr)
    path = []
    for step in range(20):
        optimizer.zero_grad()
        loss = w**2
        loss.backward()
        optimizer.step()  # w = w - lr * gradient
        path.append(w.item())
    print(f"lr={lr}: first steps {[round(v, 2) for v in path[:3]]}, after 20 steps w={path[-1]:.3f}")

0.01에서는 20단계 동안 가중치가 5에서 3.338로 조금만 줄어들며, 0.1에서는 0.058에 도달합니다. 0.9에서는 매 단계 부호가 바뀌지만(−4.0, 3.2, −2.56) 그래도 0.058로 수렴합니다. 반면 1.1에서는 단계마다 더 크게 지나쳐 가중치가 191.688까지 증가합니다. 이차 함수에 대한 경사 하강법은 학습률이 손실 곡률, 즉 이계 도함수를 2로 나눈 값보다 작을 때만 안정적으로 유지됩니다. w²의 곡률은 2이므로 이 경우 한계는 정확히 1.0이며, 학습률이 0.5이면 한 단계 만에 최소값에 도달합니다. 실제 네트워크에서는 손실의 가장 가파른 방향이 같은 종류의 한계를 결정합니다. 따라서 한 모델이나 배치 크기에서 효과적인 학습률이 다른 경우에는 발산할 수 있습니다.

학습률 스케줄#

학습에서는 처음부터 끝까지 동일한 학습률을 사용하는 경우가 드뭅니다. 스케줄을 통해 학습률을 시간에 따라 변경합니다.

  • 워밍업: 낮은 학습률에서 시작해 처음 몇 에폭 또는 반복 단계에 걸쳐 점진적으로 높입니다. 이렇게 하면 초기 반복에서 발생하는 크고 불규칙한 그래디언트가 학습을 불안정하게 만드는 것을 방지할 수 있습니다.
  • 단계적 감소: 지정된 에폭에서 또는 검증 손실이 정체될 때 고정된 배율(흔히 10)로 학습률을 나눕니다.
  • 선형 및 코사인 감소: 학습률을 작은 최종값까지 부드럽게 낮춥니다. 코사인 어닐링은 코사인 파형의 절반을 따르며, 웜 리스타트 변형은 새로운 주기가 시작될 때 학습률을 높은 값으로 되돌립니다.
  • 주기적 및 원사이클 정책: 학습 중 학습률을 하한과 상한 사이에서 변경합니다.

초기에 큰 단계로 가중치를 좋은 영역 쪽으로 빠르게 이동시키고, 후반에 작은 단계로 최소점 주변에서 튀지 않고 안정되도록 합니다. YOLO26 Ultralytics의 학습은 lr0에서 시작해 warmup_epochs 동안 워밍업한 뒤(기본값 3), lr0 * lrf까지 선형으로 감소시키거나 cos_lr=True를 사용해 코사인 곡선을 따라 감소시킵니다. 기본 optimizer="auto" 설정에서는 트레이너가 옵티마이저와 초기 학습률을 모두 직접 선택합니다. 10,000회 반복보다 긴 실행에는 0.01의 MuSGD를, 그 외에는 클래스 수에 맞춰 조정된 학습률의 AdamW를 사용하므로 lr0은 옵티마이저를 명시적으로 설정한 경우에만 적용됩니다:

from ultralytics import YOLO

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

# 명시적으로 지정한 옵티마이저는 lr0를 적용하며, 학습률은 코사인 곡선을 따라 lr0 * lrf까지 감소합니다.
results = model.train(data="coco8.yaml", epochs=10, optimizer="SGD", lr0=0.01, lrf=0.01, cos_lr=True)

초기값 선택#

일반적인 시작값은 모멘텀을 사용하는 확률적 경사 하강법(SGD)의 경우 0.01~0.1이고, Adam 옵티마이저의 경우 Adam 논문에서 기본값으로 제안한 0.001입니다. 사전 학습된 모델을 파인 튜닝할 때는 처음부터 학습할 때보다 더 낮은 학습률을 사용합니다. 큰 단계는 전이 학습이 가능하도록 하는 특징을 덮어쓸 수 있기 때문입니다.

같은 주기적 학습률 논문의 학습률 범위 테스트를 fastai의 학습률 탐색기로 패키징한 도구를 사용하면 짧은 실행 한 번으로 적절한 값을 찾을 수 있습니다. 이 도구는 손실을 기록하면서 미니 배치마다 학습률을 높입니다. 유용한 범위는 손실이 가장 빠르게 감소하다가 폭발하기 시작하기 전까지입니다.

  • 최적화 알고리즘: 학습률을 사용하는 업데이트 규칙입니다. Adam과 같은 적응형 옵티마이저는 각 가중치의 단계 크기를 해당 가중치의 그래디언트 이력에 따라 조정하지만, 모든 단계에 여전히 하나의 전역 학습률을 곱합니다.
  • 모멘텀: 이전 업데이트의 일부를 현재 업데이트에 더하는 별도의 하이퍼파라미터입니다. 이를 통해 이동 경로를 평활화하고 일관된 방향의 유효 단계 크기를 높입니다.
  • 가중치 감쇠: 매 단계마다 가중치 자체를 0에 가깝게 줄이는 정규화 항입니다. 학습률 감쇠는 시간이 지남에 따라 단계 크기를 줄입니다.
  • 배치 크기: 각 그래디언트의 평균을 계산하는 데 사용하는 샘플 수입니다. 배치가 클수록 그래디언트 노이즈가 줄어 더 큰 학습률을 사용할 수 있습니다. 선형 스케일링 규칙은 배치 크기가 k배 커지면 학습률에도 k를 곱합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

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의 미래를 만들어 가세요!

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