Underfitting
머신러닝에서 과소적합(Underfitting)을 식별하고 해결하는 방법을 배우세요. 원인, 지표 및 더 나은 정확도를 위해 Ultralytics YOLO26 모델을 최적화하는 방법을 살펴보세요.
과소적합(Underfitting)은 머신러닝 모델이 너무 단순하거나 학습 데이터 내의 근본적인 트렌드와 패턴을 포착할 용량이 부족할 때 발생합니다. 개념적으로 이는 명확한 곡선을 형성하는 데이터 포인트에 직선을 맞추려는 것과 유사하며, 모델이 입력과 출력 간 관계의 복잡성을 파악하지 못하는 것입니다. 모델이 데이터를 효과적으로 학습하지 못했기 때문에 학습 세트뿐만 아니라 보지 못한 검증 데이터에서도 성능이 저조하여 예측 정확도가 낮아집니다. 이 현상은 종종 알고리즘이 타겟 함수에 대해 지나치게 단순한 가정을 내리는 높은 인공지능 편향(bias in AI)의 결과로 나타납니다.
원인 및 지표#
여러 요인으로 인해 모델이 과소적합될 수 있습니다. 가장 흔한 원인은 비선형 데이터에 선형 회귀(linear regression)를 적용하는 것과 같이 수행할 작업에 비해 충분히 복잡하지 않은 모델 아키텍처를 사용하는 것입니다. 모델이 수렴할 수 있는 충분한 에폭(epochs)이 주어지지 않는 불충분한 학습 기간 또한 적절한 학습을 방해합니다. 나아가 반대 문제를 방지하기 위해 대개 사용되는 기법인 과도한 정규화(regularization)는 모델을 지나치게 제약하여 중요한 특징을 포착하지 못하게 할 수 있습니다.
엔지니어는 학습 중에 손실 함수(loss functions)를 모니터링하여 과소적합을 식별할 수 있습니다. 학습 오차와 검증 오차가 모두 높게 유지되고 크게 감소하지 않는다면 모델이 과소적합 상태일 가능성이 높습니다. 모델이 데이터를 이해하는 데 도움을 주는 효과적인 특징 엔지니어링(feature engineering)과 대조적으로, 너무 적은 특징을 제공하는 것 역시 모델에 필요한 정보가 부족해지게 만듭니다.
과소적합 vs. 과대적합#
과소적합을 그 반대 개념인 과적합(overfitting)과 구별하는 것은 매우 중요합니다. 이 두 개념은 편향-분산 트레이드오프(bias-variance tradeoff)의 양 끝단을 나타냅니다.
- 과소적합(높은 편향): 모델이 너무 경직되어 있습니다. 기본적인 신호를 학습하지 못했기 때문에 학습 데이터와 테스트 데이터 모두에서 성능이 저조합니다.
- 과적합(높은 분산): 모델이 너무 유연합니다. 노이즈를 포함한 학습 데이터를 암기하여 학습 중에는 예외적으로 뛰어난 성능을 보이지만 새로운 예제로 일반화(generalize)하는 데는 실패합니다.
이 두 극단 사이의 "최적점(sweet spot)"을 찾는 것이 모델 최적화(model optimization)의 주된 목표입니다.
실제 애플리케이션 사례#
과소적합을 이해하는 것은 다양한 산업 분야에서 안정적인 AI 시스템을 개발하는 데 매우 중요합니다.
- 자율주행: 자율주행 차량의 맥락에서 과소적합된 객체 검출 모델은 복잡한 도심 환경에서 보행자와 가로등을 구분하지 못할 수 있습니다. 모델에 미세한 시각적 차이를 학습할 파라미터가 부족하기 때문에 AI 안전성이 위협받게 됩니다.
- 의료 진단: 종양과 같은 이상 징후를 감지하기 위해 의료 이미지 분석을 적용할 때 지나치게 단순한 모델은 작거나 불규칙한 성장을 놓칠 수 있습니다. 신경망이 너무 얕으면 높은 민감도와 특이도(sensitivity and specificity)에 필요한 복잡한 텍스처를 학습할 수 없어 오진으로 이어집니다.
코드로 과소적합 해결하기#
컴퓨터 비전 분야에서 과소적합은 작업의 난이도에 비해 너무 작은 모델 변종을 사용할 때(예: 고해상도 드론 영상에서 작은 객체 검출) 종종 발생합니다. 다음 Python 예제는 잠재적인 과소적합을 해결하기 위해 ultralytics 라이브러리를 사용하여 더 작은 모델에서 더 크고 성능이 뛰어난 모델로 전환하는 방법을 보여줍니다.
from ultralytics import YOLO
# If 'yolo26n.pt' (Nano) is underfitting and yielding low accuracy,
# upgrade to a model with higher capacity like 'yolo26l.pt' (Large).
model = YOLO("yolo26l.pt")
# Train the larger model.
# Increasing epochs also helps the model converge if it was previously underfitting.
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)더 큰 Ultralytics YOLO26 모델로 전환하고 충분한 학습 기간을 보장함으로써, 시스템은 복잡한 패턴을 학습하는 데 필요한 파라미터를 확보하여 과소적합을 효과적으로 완화합니다. 모델이 더 이상 과소적합 상태가 아님을 확인하려면 강력한 테스트 데이터셋을 기준으로 항상 평가하세요. 과소적합을 조기에 발견하기 위해 데이터셋을 관리하고 실험을 추적하려면 Ultralytics Platform이 시각화 및 분석을 위한 종합적인 도구를 제공합니다.






