AI 기초

과적합이란 무엇인가?

mm
Unite.AI를 Google의 선호 소스에 추가

과적합은 모델이 훈련 데이터에서 매우 잘 작동하지만 새로운 예시로 일반화하지 못하는 패턴이나 잡음을 포착할 때 발생합니다. 과적합된 모델은 훈련 오류는 매우 낮지만 검증 또는 실제 환경에서의 성능은 크게 떨어질 수 있습니다.

반대 문제는 과소적합: 모델이나 학습 과정이 훈련 세트에서도 충분한 신호를 포착하지 못하는 경우입니다. 좋은 모델링은 완벽한 훈련 성능을 추구하기보다 적합도와 일반화 사이의 균형을 맞춥니다.

핵심 요점

  • 훈련 성능만으로는 일반화를 진단할 수 없습니다.
  • 조기 종료는 검증 결과를 기반으로 해야 하며, 최종 테스트 세트에 대해 반복적인 결정을 내려서는 안 됩니다.
  • 데이터를 늘리면 도움이 될 수 있지만, 특성이나 모델 용량을 늘리면 과적합이 악화될 수도 있습니다.
  • 정규화, 데이터 증강, 교차 검증, 누수 방지 및 적절한 평가가 각각 다른 원인을 해결합니다.
Three panels showing underfit, appropriate fit, and overfit curves beside training and validation loss curves diverging after the optimal stopping point
과적합은 훈련 적합도와 대표적인 보류 데이터에 대한 성능 사이의 차이가 점점 커지는 현상으로 나타납니다.

적합, 과소적합 및 과적합

모델이 가정이 지나치게 제한적이거나, 중요한 신호를 포함하지 않은 특성만을 사용하거나, 최적화가 충분하지 않거나, 학습이 부족할 때 과소적합이 발생합니다. 관련된 특성이나 용량을 추가하면 도움이 될 수 있지만, 임의의 특성을 추가하는 것만으로는 잡음과 과적합을 증가시킬 수 있습니다.

모델의 실제 용량이 훈련 데이터의 정보량에 비해 지나치게 클 때 과적합이 발생합니다. 예로는 작은 리프를 많이 생성하는 깊은 결정 트리, 무작위 변동을 따라가는 다항식, 혹은 예시를 기억하는 신경망이 있습니다.

훈련, 검증 및 테스트 데이터의 역할

  • 훈련 데이터는 모델 파라미터를 맞춥니다.
  • 검증 데이터는 아키텍처, 하이퍼파라미터, 임계값 및 중단 시점을 선택합니다.
  • 테스트 데이터는 이러한 선택이 완료된 후 최종 추정치를 제공합니다.

테스트 세트가 반복적으로 의사결정에 사용되면 개발 과정의 일부가 되어 편향된 최종 추정치를 제공하게 됩니다. 교차 검증은 제한된 데이터를 보다 효율적으로 활용할 수 있지만, 모든 전처리와 특성 선택은 각 훈련 폴드 내부에서 이루어져야 합니다.

조기 종료

훈련 중에는 훈련 손실이 보통 계속 감소합니다. 검증 손실은 처음에는 감소하다가 모델이 훈련 잡음에 특화되면서 나중에 상승할 수 있습니다. 조기 종료는 가장 좋은 검증 목표를 가진 체크포인트를 저장하거나, 검증 성능이 정의된 인내 기간 동안 개선되지 않으면 중단합니다.

올바른 체크포인트는 가장 낮은 훈련 손실을 가진 것이 아니라, 조기 종료와 튜닝 결정이 끝난 후 별도의 최종 테스트 세트에서 평가된 것입니다.

정규화 방법

가중치 페널티

L2 정규화 또는 가중치 감소는 큰 파라미터 값을 억제합니다. L1 정규화는 희소 계수를 장려할 수 있습니다. 그 효과는 모델과 옵티마이저에 따라 다르며, 예를 들어 AdamW는 가중치 감소를 적응형 업데이트와 분리합니다.

드롭아웃 및 확률적 정규화

드롭아웃은 훈련 중에 활성화를 무작위로 마스킹합니다. 다른 방법들은 경로를 제거하거나, 특성을 교란하거나, 라벨을 부드럽게 합니다. 이러한 기법은 훈련 목표를 변경하므로 추론 시에는 비활성화하거나 적절히 처리해야 합니다.

데이터 증강

증강은 자르기, 회전, 잡음, 패러프레이즈와 같은 현실적인 변형을 만들어 목표를 유지하도록 합니다. 잘못된 변형은 라벨을 바꾸어 모델에 해를 끼칠 수 있습니다. 컴퓨터 비전 분야에서는 Albumentations와 같은 도구가 제어된 파이프라인 구현에 도움이 됩니다.

용량 제어

얕은 트리, 적은 파라미터, 특성 선택, 가지치기 및 더 단순한 가설 클래스는 분산을 줄일 수 있습니다. 트리 가지치기는 기준에 따라 이루어지는 것이며, 학습된 세부 정보를 무작위로 제거하는 것이 아닙니다.

데이터 누수는 뛰어난 성능처럼 보일 수 있다

누수는 예측 시점에 사용할 수 없는 정보가 훈련이나 평가에 포함될 때 발생합니다. 일반적인 사례로는 전체 데이터셋에 대해 정규화를 적용하고, 반복 레코드를 폴드에 걸쳐 나누며, 미래 데이터를 사용해 과거를 예측하거나, 목표에서 파생된 특성을 포함하는 경우가 있습니다.

누수는 일반적인 과적합과는 다르지만, 오프라인 결과와 실제 배포 사이에 동일한 오해를 일으키는 차이를 만들습니다. 데이터 분할 전략은 시간, 정체성, 위치 및 데이터 생성 과정을 고려해야 합니다.

분포 이동은 별개의 문제

모델이 테스트 분포에 일반화되었더라도 실제 데이터가 변하면 실패할 수 있습니다. 새로운 장치, 정책, 인구, 계절, 혹은 적대적 행동이 입력과 목표 간의 관계를 변화시킬 수 있습니다. 원래 모델이 과적합되지 않았더라도 모니터링과 정기적인 재평가가 필요합니다.

과적합 진단

학습 곡선, 교차 검증 분산, 하위 그룹 메트릭, 캘리브레이션 및 오류 검사를 활용합니다. 훈련과 검증 성능이 모두 낮다면 과소적합, 특성, 라벨 또는 최적화에 집중합니다. 훈련 성능은 좋지만 검증 성능이 약하면 용량, 누수, 정규화 및 대표성을 조사한 후에 데이터를 추가로 수집합니다.

과적합이 발생하는 이유와 탐지 방법

과적합은 모델이 훈련 오류를 줄이는 패턴을 학습하지만 목표 집단에 일반화되지 않을 때 발생합니다. 원인으로는 효과적인 데이터에 비해 과도한 용량, 라벨 잡음, 중복된 엔티티, 유연한 특성 선택, 누수, 그리고 동일한 검증 세트에 대한 튜닝이 포함됩니다. 훈련과 검증 성능 사이의 차이가 확대되는 것이 일반적인 증거이지만, 두 세트가 오염을 공유하거나 배포 환경과 다를 경우 작은 차이만으로도 과적합을 배제할 수 없습니다. 데이터 양과 용량에 따른 학습 곡선은 분산과 편향을 구분하는 데 도움이 됩니다.

누수는 특히 기만적입니다: 미래 정보, 중복 데이터, 대상 중복, 전체 데이터에 대한 전처리 적용, 혹은 메타데이터에 인코딩된 라벨 등이 뛰어난 보류 점수를 만들 수 있습니다. 배포 시 새로운 단위(환자, 고객, 기계, 위치, 시간)별로 데이터를 분할하십시오. 변환이나 증강을 적용하기 전에. 특성, 아키텍처 및 임계값을 선택하는 동안 최종 테스트 세트를 봉인해 두어야 합니다. 팀이 테스트 결과를 반복적으로 검토하면 테스트 세트가 또 다른 검증 세트가 되어 교체하거나 공식적으로 보정해야 합니다.

정규화, 모델 선택 및 프로덕션 드리프트

보다 대표적인 데이터, 낮은 용량, 가중치 감소, 드롭아웃, 조기 종료, 증강, 앙상블 또는 도메인 구조를 반영한 제약을 통해 과적합을 감소시킬 수 있습니다. 각 방법은 트레이드오프가 존재합니다: 증강은 라벨을 왜곡할 수 있고, 드롭아웃은 최적화를 변경하며, 앙상블은 서비스 비용을 증가시킵니다. 교차 검증은 선택 변동성을 추정하지만, 그룹화되거나 시간 인식 폴드는 배포 경계를 유지해야 합니다. 간단한 모델과 비교하고 가장 유리한 실행을 선택하기보다 폴드나 시드별 불확실성을 보고하십시오.

프로덕션 환경에서는 입력, 사용자, 인센티브 또는 측정 방식이 변할 때 다른 형태의 일반화 실패가 드러날 수 있습니다. 특성 및 예측 분포, 캘리브레이션, 하위 그룹 결과 및 지연된 실제 값을 모니터링하십시오. 검토되지 않은 피드백에 대해 자동으로 재학습하지 마세요; 모델의 자체 결정이 이후 라벨을 형성할 수 있습니다. 실패 원인이 드리프트, 데이터 파이프라인, 정책 변화 또는 잘못된 목표인지 진단해야 합니다. 과적합은 실험 설계와 라이프사이클 관리에 의해 제어되며, 단일 정규화 설정만으로 해결되지 않습니다.

실제 예시: 사기 모델에서 누수 제거

초기 사기 분류기는 반복되는 카드 및 가맹점 이벤트가 무작위 훈련 및 테스트 행에 나타나고, 몇 주 뒤에 기록된 청구 취소 정보가 특성으로 포함되어 있어 매우 높은 점수를 받았습니다. 팀은 각 특성의 사용 가능 시간을 재구성하고, 결정 이후의 필드를 제거하며, 계정별로 그룹화하고, 앞쪽 시간 분할을 사용했습니다. 성능은 급격히 떨어졌지만 이제 실제 결정을 추정합니다. 간단한 규칙 기반 베이스라인과 학습 곡선이 필요한 모델 복잡성을 안내합니다.

정규화와 조기 종료는 오직 과거 폴드 내에서만 튜닝되었습니다. 최종 평가는 사기 유형 및 고객 세그먼트별 정밀도(리뷰 용량 기준), 재현율, 캘리브레이션 및 비용을 보고합니다. 프로덕션에서는 확인된 라벨이 늦게 도착하고 어떤 거래가 검토되었는지에 따라 편향되므로, 모니터링을 통해 점수 드리프트와 결과 추정을 구분합니다. 재학습은 판정된 사례와 현재 정책에 대한 재실행을 사용합니다. 프로젝트는 배포에 살아남지 못하는 높은 누수 점수보다 낮은 정직한 점수를 선호합니다.

구현 증거 및 운영 준비성

프로덕션 결정을 내리기 위해서는 성공적인 시연 이상이 필요합니다. 의도된 사용자, 운영 환경, 입력·출력, 의존성, 책임자 및 각 주요 실패의 결과를 정의하십시오. 튜닝 전에 재현 가능한 베이스라인과 버전 관리된 평가 세트를 구축합니다. 일반적인 사례, 경계 조건, 형식이 잘못되었거나 누락된 입력, 분포 이동, 의존성 장애, 오용 및 소외될 가능성이 높은 그룹이나 환경을 테스트합니다. 작업 품질을 캘리브레이션·불확실성, 지연 시간, 처리량, 자원 비용, 접근성, 프라이버시 및 보안과 함께 측정합니다. 모든 변환 및 임계값을 기록하여 독립적인 검토자가 결과를 재현하고 매력적인 프로토타입과 증거를 구분할 수 있도록 합니다.

출시 전에 릴리스, 예외, 변경, 롤백 및 폐기에 대한 권한을 지정하십시오. 단계적 롤아웃을 사용하고 안전한 폴백을 유지하며, 의도적으로 주입된 실패를 통해 모니터링을 검증합니다. 운영 텔레메트리는 불필요한 민감 데이터를 수집하지 않으면서 입력 품질, 출력 동작, 모델·규칙 버전, 의존성 상태, 인간 개입 및 확인된 결과를 보여줘야 합니다. 알림 임계값과 대응 담당자를 정의하고, 오프라인 성능이 지속될 것이라고 가정하지 말고 배포 후 실제 증거를 검토하십시오. 데이터 소스, 사용자, 모델, 공급업체, 정책, 하드웨어 또는 목표가 변경될 때마다 재평가하십시오. 유지되는 시스템은 문서화된 복구, 사고 학습, 삭제·보존 절차 및 비활성화·교체 시점을 명확히 해야 합니다.

자주 묻는 질문

간단한 모델도 과적합할 수 있나요?

예. 동일한 보류 데이터에 대한 반복적인 특성 선택, 임계값 튜닝 또는 평가가 개발 과정을 과적합시킬 수 있으며, 최종 모델이 단순하더라도 마찬가지입니다.

더 많은 훈련 데이터가 항상 과적합을 해결하나요?

아니오. 더 대표적이고 올바르게 라벨링된 데이터는 도움이 될 수 있지만, 중복되거나 편향되거나 누수된 데이터, 혹은 도메인 외 데이터는 도움이 되지 않을 수 있습니다. 학습 목표와 평가 설계 역시 여전히 중요합니다.

주요 참고 문헌

블로거이자 프로그래머로 Machine Learning과 Deep Learning 주제에 전문가입니다. 다니엘은 다른 사람들이 AI의 힘을 사회적善으로 사용하는 것을 돕기를 희망합니다.