용어집

오버피팅

머신 러닝에서 과적합을 식별하고, 예방하고, 해결하는 방법을 알아보세요. 모델 일반화와 실제 성능을 개선하는 기술을 알아보세요.

과적합은 머신 러닝(ML) 의 기본 개념으로, 모델이 학습 데이터의 세부 사항과 노이즈가 보이지 않는 새로운 데이터에 대한 모델의 성능에 부정적인 영향을 미칠 정도로 학습할 때 발생합니다. 본질적으로 모델은 기본 패턴을 학습하는 대신 훈련 세트를 암기합니다. 그 결과 학습된 데이터에 대해서는 높은 정확도를 달성하지만 실제 데이터로 일반화하지 못하여 실제 적용에는 신뢰할 수 없는 모델이 됩니다. 우수한 일반화를 달성하는 것은 AI 개발의 주요 목표입니다.

과적합을 식별하는 방법

과적합은 일반적으로 학습 과정에서 학습 데이터 세트와 별도의 검증 데이터 세트 모두에서 모델의 성능을 모니터링하여 식별합니다. 과적합의 일반적인 징후는 학습 세트의 손실 함수 값이 계속 감소하는 반면, 검증 세트의 손실이 증가하기 시작하는 경우입니다. 마찬가지로, 학습 정확도는 계속 향상되지만 검증 정확도가 이후 기간에 걸쳐 정체되거나 악화되는 경우 모델이 과적합일 가능성이 높습니다. 이러한 메트릭을 시각화하고 이러한 문제를 조기에 진단하는 데는 TensorBoard와 같은 도구가 탁월합니다. 또한, 과적합을 감지하기 위해 실험을 추적하고 모델을 평가하는 데 도움이 되는 Ultralytics HUB와 같은 플랫폼도 있습니다.

오버핏 대 언더핏

과적합과 과소적합은 모델의 일반화 실패를 나타내는 머신 러닝의 두 가지 일반적인 문제입니다. 본질적으로 정반대의 문제입니다.

  • 과적합: 모델이 데이터에 비해 너무 복잡합니다(분산이 높음). 훈련 데이터의 노이즈와 무작위 변동을 포착하여 훈련 시에는 우수한 성능을 보이지만 테스트 데이터에서는 성능이 저하됩니다.
  • 부적합: 모델이 너무 단순하여 데이터의 기본 구조를 포착하지 못합니다(높은 편향성). 관련 패턴을 학습할 수 없기 때문에 학습 데이터와 테스트 데이터 모두에서 성능이 저하됩니다.

딥러닝의 과제는 편향성-편차 트레이드오프로 설명되는 개념인 적절한 균형을 찾는 것입니다.

과적합의 실제 사례

  1. 자율 주행 차량 물체 감지: 화창한 주간 조건의 이미지만 포함된 데이터 세트를 사용하여 자율주행 차량용 Ultralytics YOLO 모델을 훈련한다고 상상해 보세요. 이 모델은 밝은 조명에서는 보행자와 자동차를 감지하는 데 매우 특화되어 있지만 야간이나 비가 오거나 안개가 낀 날씨에서는 크게 실패할 수 있습니다. 학습 데이터의 특정 조명 및 날씨 조건에 과도하게 적합했기 때문입니다. Argoverse와 같은 다양한 데이터 세트를 사용하면 이를 방지할 수 있습니다.
  2. 의료 이미지 분석: CNN 모델은 한 병원에서 제공한 MRI 스캔에서 종양을 감지하도록 훈련받습니다. 이 모델은 실수로 해당 병원의 특정 MRI 기계에서 발생한 특정 아티팩트나 노이즈 패턴을 종양의 존재와 연관시키는 방법을 학습할 수 있습니다. 다른 병원에서 다른 기계로 촬영한 스캔을 테스트할 경우, 종양의 실제 생물학적 마커가 아닌 원래 훈련 세트의 노이즈에 과도하게 적합했기 때문에 성능이 크게 떨어질 수 있습니다. 이는 의료 분야의 AI와 같은 분야에서 매우 중요한 문제입니다.

과잉 맞춤을 방지하는 방법

과적합을 방지하고 보다 강력한 모델을 구축하기 위해 몇 가지 기술을 사용할 수 있습니다.

  • 더 많은 데이터 확보하기: 학습 데이터 세트의 크기와 다양성을 늘리는 것은 과적합을 방지하는 가장 효과적인 방법 중 하나입니다. 데이터가 많을수록 모델이 노이즈가 아닌 진정한 기본 패턴을 학습하는 데 도움이 됩니다. 다양한 Ultralytics 데이터 세트를 탐색하여 프로젝트를 개선할 수 있습니다.
  • 데이터 증강: 기존 데이터의 수정된 복사본을 생성하여 학습 데이터 세트를 인위적으로 확장하는 것입니다. 무작위 회전, 크기 조정, 자르기, 색상 이동 등의 기법이 적용됩니다. 모델 견고성을 향상시키기 위해 Ultralytics YOLO 데이터 증강 기술이 내장되어 있습니다.
  • 모델 아키텍처 간소화: 주어진 데이터 세트에 비해 모델이 너무 복잡한 경우가 있습니다. 더 적은 수의 매개변수로 더 단순한 아키텍처를 사용하면 데이터를 기억하지 못할 수 있습니다. 예를 들어, 작은 데이터 세트에는 YOLOv8n과 같은 더 작은 모델 변형을 선택하는 것이 유리할 수 있습니다.
  • 정규화: 이 기술은 모델의 복잡성에 따라 손실 함수에 페널티를 추가하여 모델 가중치가 커지는 것을 방지합니다. 일반적인 방법은 L1 및 L2 정규화이며, 자세한 내용은 여기에서 확인할 수 있습니다.
  • 드롭아웃: 각 훈련 단계에서 뉴런의 무작위 일부를 무시하는 특정 형태의 정규화입니다. 이렇게 하면 네트워크가 중복된 표현을 학습하도록 하고 단일 뉴런이 지나치게 영향력이 커지는 것을 방지할 수 있습니다. 드롭아웃 개념은 여기에서 자세히 설명합니다.
  • 조기 중지: 여기에는 유효성 검사 세트에서 모델의 성능을 모니터링하고 훈련 성능이 계속 향상되고 있더라도 유효성 검사 성능이 저하되기 시작하면 즉시 훈련 프로세스를 중지하는 것이 포함됩니다. 자세한 내용은 Keras에서 조기 중지에 대한 설명을 참조하세요.
  • 교차 검증: K-Fold 교차 검증과 같은 기술을 사용하여 데이터를 여러 개의 폴드로 분할하고 서로 다른 하위 집합에서 모델을 학습하고 검증합니다. 이를 통해 모델의 일반화 능력을 더욱 강력하게 추정할 수 있습니다.
  • 모델 가지치기: 여기에는 학습된 네트워크에서 성능에 거의 영향을 미치지 않는 매개변수나 연결을 제거하여 복잡성을 줄이는 작업이 포함됩니다. Neural Magic과 같은 회사는 효율적인 배포를 위해 모델 가지치기를 전문으로 하는 도구를 제공합니다.

울트라 애널리틱스 커뮤니티 가입

AI의 미래와 함께하세요. 글로벌 혁신가들과 연결, 협업, 성장하기

지금 가입하기
링크가 클립보드에 복사됨