Learning Rate
학습률이 모델 학습에 미치는 영향을 알아봅니다. 객체 탐지 등에서 SOTA 성능을 달성하도록 Ultralytics YOLO26의 스텝 크기를 최적화하는 방법을 살펴봅니다.
학습률은 최적화 과정에서 모델이 취하는 단계의 크기를 결정하는 중요한 하이퍼파라미터 튜닝 설정입니다. 신경망을 학습하는 과정에서 모델이 데이터 배치를 처리할 때마다 추정된 오차에 따라 모델의 내부 가중치가 얼마나 업데이트될지를 제어합니다. 이를 산을 내려가 계곡(오차가 가장 낮은 지점)을 향해 걷는 사람에 비유할 수 있으며, 학습률은 보폭의 길이를 결정합니다. 보폭이 너무 크면 계곡을 완전히 지나쳐 최저점에 도달하지 못할 수 있습니다. 반대로 보폭이 너무 작으면 목적지에 도달하는 데 비현실적으로 오랜 시간이 걸릴 수 있습니다.
최적화에서의 "골디락스" 딜레마#
최적의 학습률을 찾는 일은 머신 러닝 워크플로에서 균형을 맞추는 과정으로 자주 설명됩니다. 목표는 모델의 예측과 실제 정답 간의 차이를 측정하는 손실 함수를 최소화하는 것입니다. 이 과정에서는 손실 지형을 탐색하기 위해 확률적 경사 하강법 (SGD)과 같은 최적화 알고리즘이나 Adam 옵티마이저에 크게 의존합니다.
- 학습률이 너무 높은 경우: 값이 지나치게 높게 설정되면 모델의 가중치 업데이트가 급격해집니다. 이로 인해 모델이 해에 수렴하지 못하고 크게 진동하거나 발산하는 "오버슈팅" 현상이 발생할 수 있습니다. 이러한 불안정성은 때때로 그래디언트 폭발 문제를 일으켜 학습 과정을 무용하게 만들 수 있습니다.
- 학습률이 너무 낮은 경우: 반대로 단계의 크기가 지나치게 작으면 모델이 최솟값을 향해 신중하게 이동하지만, 학습 과정이 매우 느려져 언더피팅이 발생할 수 있습니다. 모델이 국소 최솟값에 사실상 갇히거나 단순한 패턴을 학습하는 데 수천 번의 추가 에포크가 필요해 계산 리소스를 낭비할 수도 있습니다. 연구자들은 서로 다른 알고리즘이 이러한 값과 어떻게 상호작용하는지 이해하기 위해 최적화에 관한 PyTorch 문서를 자주 참고합니다.
실제 적용 사례#
학습률 조정의 영향은 컴퓨터 비전 작업이 배포되는 다양한 고위험 산업에서 뚜렷하게 나타납니다.
-
자율 주행 시스템: 자율 주행 차량 개발에서 엔지니어는 보행자와 교통 표지판을 식별하기 위한 객체 감지 모델을 학습하기 위해 방대한 데이터세트를 활용합니다. YOLO26과 같은 사전 학습된 모델에 전이 학습을 적용할 때 개발자는 일반적으로 초기 학습에 사용할 때보다 훨씬 낮은 학습률을 사용합니다. 이러한 "파인 튜닝"을 통해 모델은 이미 보유한 일반적인 특징 추출 능력을 훼손하지 않으면서 특정 주행 환경(예: 눈길과 사막 고속도로)의 특성을 학습할 수 있습니다.
-
의료 진단 영상: MRI 스캔에서 종양을 감지하는 등의 의료 영상 분석에서는 정밀도가 가장 중요합니다. 이 경우 높은 학습률은 악성 조직과 양성 조직을 구분하는 미세한 텍스처 차이를 모델이 건너뛸 위험을 높입니다. 실무자들은 "학습률 워밍업"이라는 기법을 자주 사용합니다. 이 기법은 학습 초기 단계를 안정화하기 위해 학습률을 0에서 목표값까지 점진적으로 높여, 공격적인 학습을 시작하기 전에 신경망 가중치가 안정적인 구성에 도달하도록 합니다. 이러한 전략에 대한 자세한 내용은 Google 머신 러닝 단기 집중 과정에서 확인할 수 있습니다.
관련 용어 구분#
학습률은 다른 학습 파라미터와 구분하는 것이 중요합니다. 동일한 구성 파일에서 함께 설정되는 경우가 많지만 서로 다른 목적을 수행하기 때문입니다.
- 학습률과 배치 크기 비교: 학습률이 업데이트의 크기를 제어하는 반면, 배치 크기는 업데이트가 발생하기 전에 처리되는 학습 샘플의 수를 결정합니다. 두 요소 사이에는 밀접한 관계가 있습니다. 배치 크기를 늘릴 때 학습 효율을 유지하려면 학습률도 함께 높여야 하는 경우가 많으며, 이는 대규모 배치 학습에 관한 논문에서 다루는 개념입니다.
- 학습률과 감쇠 비교: 감쇠는 시간이 지남에 따라 학습률을 체계적으로 줄이는 전략을 의미합니다. 스케줄러는 30에포크마다 학습률을 10분의 1로 낮출 수 있습니다. 이를 통해 모델은 초기에 큰 개념적 도약을 수행한 다음 학습이 끝날 무렵 더 작은 단계로 정확도를 세밀하게 개선할 수 있습니다. 이는 Ultralytics Python 패키지의 표준 기능입니다.
Ultralytics YOLO에서 학습률 설정#
최신 프레임워크를 사용하면 초기 학습률(lr0)과 최종 학습률 비율(lrf)을 쉽게 조정할 수 있습니다. 아래는 사용자 지정 학습 실행을 위해 Ultralytics Platform 호환 클라이언트를 사용하여 이를 구성하는 방법의 예입니다.
from ultralytics import YOLO
# Load the YOLO26 model (latest state-of-the-art architecture)
model = YOLO("yolo26n.pt")
# Train the model with a custom initial learning rate
# lr0=0.01 sets the initial rate
# lrf=0.01 sets the final learning rate to (lr0 * lrf)
results = model.train(data="coco8.yaml", epochs=10, lr0=0.01, lrf=0.01)고급 사용자는 LR Finder(fast.ai를 통해 대중화됨)와 같은 기법을 사용하여 최적의 시작값을 사실상 자동으로 찾을 수 있습니다. 이 기법은 짧은 시험 에포크를 실행하면서 손실이 발산할 때까지 학습률을 지수적으로 증가시킵니다. 이 하이퍼파라미터를 능숙하게 다루는 것이 AI 프로젝트에서 최신 기술 (SOTA) 수준의 성능을 달성하는 핵심인 경우가 많습니다.









