과적합

과적합이란 학습 세트와 너무 유사하여 새 데이터를 올바르게 예측하지 못하는 모델을 만드는 것을 의미합니다 (학습). 과적합 모델은 실험실에서는 잘 작동하지만 실제 환경에서는 쓸모가 없는 발명품과 비슷합니다.

그림 11에서 각 도형은 정사각형 숲에 있는 나무의 위치를 나타냅니다. 파란색 다이아몬드는 건강한 나무의 위치를, 주황색 원은 아픈 나무의 위치를 표시합니다.

그림 11. 이 그림에는 점이 약 60개 포함되며 그중 반은 건강한 나무이고 나머지 반은 아픈 나무입니다.
            건강한 나무는 주로 북동쪽 사분면에 있지만 북서쪽 사분면에도 몇 그루의 건강한 나무가 있습니다. 병든 나무는 주로 남동쪽 사분면에 있지만 일부 병든 나무는 다른 사분면으로 퍼져 있습니다.
그림 11. 학습 세트: 정사각형 숲에 있는 건강한 나무와 아픈 나무의 위치

 

선, 곡선, 타원 등 어떤 도형이든 상상하여 그려 건강한 나무와 아픈 나무를 구분합니다. 그런 다음 다음 줄을 펼쳐 가능한 분리를 하나씩 살펴봅니다.

그림 12에 표시된 복잡한 도형은 나무 중 두 개를 제외하고 모두 분류했습니다. 도형을 모델로 생각하면 멋진 모델입니다.

정말 불가능할까요? 정말 우수한 모델은 새로운 예시를 성공적으로 분류합니다. 그림 13은 동일한 모델이 테스트 세트의 새 예시를 예측할 때 어떤 일이 일어나는지 보여줍니다.

그림 13. 그림 12에 표시된 모델에 건강한 나무와 아픈 나무의 새 일괄이 겹쳐져 있습니다. 모델이 많은 나무를 잘못 분류합니다.
그림 13. 테스트 세트: 아픈 나무와 건강한 나무를 구분하는 복잡한 모델입니다.

 

따라서 그림 12에 표시된 복잡한 모델은 학습 세트에서 매우 우수한 성능을 보였지만 테스트 세트에서는 매우 좋지 않은 성능을 보였습니다. 이는 모델이 학습 세트 데이터에 과적합하는 전형적인 사례입니다.

적합, 과적합, 과소적합

모델은 데이터를 잘 예측해야 합니다. 즉, 새 데이터에 '맞는' 모델을 만드는 것이 목표입니다.

보시다시피 과적합 모델은 학습 세트에서는 우수한 예측을 하지만 새 데이터에서는 예측이 좋지 않습니다. 적합도 부족 모델은 학습 데이터를 제대로 예측하지 못합니다. 과적합 모델은 실험실에서는 잘 작동하지만 실제 환경에서는 잘 작동하지 않는 제품과 같고, 언더피팅 모델은 실험실에서도 잘 작동하지 않는 제품과 같습니다.

그림 14. 데카르트 플롯 X축에는 '학습 세트의 예측 품질'이라는 라벨이 지정됩니다. Y축에는 '실제 데이터에 대한 예측 품질'이라는 라벨이 지정됩니다. 곡선이 원점에서 시작하여 점진적으로 상승하지만 그다음에는 빠르게 하락합니다. 곡선의 왼쪽 하단 부분(실제 데이터에 대한 예측 품질이 낮고 학습 세트에 대한 예측 품질이 낮음)에는 'underfit models'(적합하지 않은 모델)라는 라벨이 지정됩니다. 곡선의 오른쪽 하단 부분 (실제 데이터의 예측 품질이 낮지만 학습 세트의 예측 품질이 높음)에는 '과적합 모델'이라는 라벨이 지정됩니다. 곡선의 최대값 (실제 데이터에 대한 예측 품질이 높고 학습 세트에 대한 예측 품질이 중간)에는 '모델 적합성'이라는 라벨이 지정됩니다.
그림 14. 과소적합, 적합, 과적합 모델

 

일반화는 과적합의 반대입니다. 즉, 일반화 성능이 우수한 모델은 새 데이터를 잘 예측합니다. 새로운 데이터에 잘 일반화되는 모델을 만드는 것이 목표입니다.

과적합 감지

다음 곡선을 사용하면 과적합을 감지할 수 있습니다.

  • 손실 곡선
  • 일반화 곡선

손실 곡선은 모델의 손실을 학습 반복 횟수에 대해 표시합니다. 두 개 이상의 손실 곡선을 보여주는 그래프를 일반화 곡선이라고 합니다. 다음 일반화 곡선은 두 가지 손실 곡선을 보여줍니다.

그림 15. 학습 세트에 관한 손실 함수는 점차 감소합니다. 검증 세트의 손실 함수도 감소하지만 특정 횟수의 반복 후에 상승하기 시작합니다.
그림 15. 과적합을 강하게 암시하는 일반화 곡선입니다.

 

두 손실 곡선이 처음에는 비슷하게 동작하다가 나중에 갈라지는 것을 볼 수 있습니다. 즉, 일정 횟수의 반복 후 학습 세트의 손실은 감소하거나 일정하게 유지되지만 (수렴) 검증 세트의 손실은 증가합니다. 이는 과적합을 나타냅니다.

반대로 잘 맞는 모델의 일반화 곡선은 모양이 비슷한 두 개의 손실 곡선을 보여줍니다.

과적합의 원인은 무엇인가요?

대략적으로 오버피팅은 다음 문제 중 하나 또는 둘 다로 인해 발생합니다.

  • 학습 세트가 실제 데이터 (또는 검증 세트 또는 테스트 세트)를 충분히 대표하지 않습니다.
  • 모델이 너무 복잡합니다.

일반화 조건

모델은 학습 세트에서 학습하지만 모델의 가치를 실제로 테스트하려면 새 예시, 특히 실제 데이터에서 얼마나 잘 예측하는지 확인해야 합니다. 모델을 개발하는 동안 테스트 세트는 실제 데이터의 프록시 역할을 합니다. 잘 일반화되는 모델을 학습하려면 다음과 같은 데이터 세트 조건이 필요합니다.

  • 예는 독립적이고 동일하게 분포되어야 합니다. 즉, 예가 서로 영향을 미칠 수 없다는 것을 멋진 방식으로 표현한 것입니다.
  • 데이터 세트가 정상적입니다. 즉, 데이터 세트가 시간이 지남에 따라 크게 변경되지 않습니다.
  • 데이터 세트 파티션의 분포가 동일합니다. 즉, 학습 세트의 예시가 검증 세트, 테스트 세트, 실제 데이터의 예시와 통계적으로 유사합니다.

다음 연습을 통해 위의 조건을 살펴보세요.

연습문제: 이해도 확인

다음과 같은 데이터 세트 파티션을 고려해 보겠습니다.
세 부분으로 분할된 가로 막대: 막대의 70% 는 학습 세트, 15% 는 검증 세트, 15%는 테스트 세트
학습 세트의 예시가 검증 세트 및 테스트 세트의 예시와 유사한 통계적 분포를 갖도록 하려면 어떻게 해야 하나요?
데이터 세트의 예시를 파티션하기 전에 광범위하게 셔플합니다.
예. 예시를 잘 셔플하면 파티션이 통계적으로 유사할 가능성이 훨씬 높아집니다.
예시를 가장 오래된 것부터 가장 최근 것 순으로 정렬합니다.
데이터 세트의 예시가 정적이 아니면 정렬하면 파티션이 더 비슷하지 않게 됩니다.
아무 조치도 취하지 않습니다. 충분한 예시가 있으면 평균 법칙에 따라 분포가 통계적으로 유사해집니다.
안타깝게도 그렇지 않습니다. 데이터 세트의 특정 섹션에 있는 예시가 다른 섹션의 예시와 다를 수 있습니다.
스트리밍 서비스에서 향후 3년간 새로운 TV 프로그램의 인기를 예측하는 모델을 개발하고 있습니다. 스트리밍 서비스는 지난 10년 동안 수억 개의 예시가 포함된 데이터 세트에서 모델을 학습할 계획입니다. 이 모델에 문제가 발생하나요?
아마 그럴 거예요. 시청자의 취향은 이전 행동으로는 예측할 수 없는 방식으로 변합니다.
예. 시청자 취향은 고정되지 않습니다. 끊임없이 변화합니다.
절대 아닙니다. 데이터 세트가 충분히 커서 정확한 예측을 할 수 있습니다.
안타깝게도 시청자의 취향은 고정되지 않습니다.
그렇지 않을 수도 있습니다. 시청자의 취향은 예측 가능한 주기적인 방식으로 변화합니다. 10년간의 데이터를 사용하면 모델이 미래 동향을 정확하게 예측할 수 있습니다.
엔터테인먼트의 특정 측면은 다소 주기적이지만 과거 엔터테인먼트 기록을 바탕으로 학습된 모델은 향후 몇 년을 예측하는 데 거의 확실히 어려움을 겪을 것입니다.
한 모델은 계절에 따라 날씨가 크게 달라지는 도시에서 1년 동안 수집된 날씨 데이터 (온도, 이슬점, 강수량)를 기반으로 사람이 1마일을 걸어가는 데 걸리는 시간을 예측하는 것을 목표로 합니다. 날씨 측정값이 계절에 따라 크게 달라도 이 데이터 세트에서 모델을 빌드하고 테스트할 수 있나요?
예, 이 데이터 세트에서 모델을 빌드하고 테스트할 수 있습니다. 4계절의 데이터가 여러 파티션에 균등하게 분산되도록 데이터가 균등하게 분할되어 있는지만 확인하면 됩니다.
아니요
이 데이터 세트에 온도, 이슬점, 강수량의 예시가 충분히 포함되어 있다고 가정하면 이 데이터 세트에서 모델을 빌드하고 테스트할 수 있습니다. 4계절의 데이터가 여러 파티션에 균등하게 분산되도록 데이터가 균등하게 분할되어 있는지만 확인하면 됩니다.

챌린지 연습

승객이 특정 경로의 기차 티켓을 구매하기에 가장 적합한 날짜를 예측하는 모델을 만들고 있습니다. 예를 들어 모델은 사용자가 7월 23일에 출발하는 기차의 티켓을 7월 8일에 구매하도록 추천할 수 있습니다. 기차 회사는 다양한 요소를 고려하여 주로 현재 이용 가능한 좌석 수를 기준으로 매시간 가격을 업데이트합니다. 이는 다음과 같은 의미입니다.

  • 이용 가능한 좌석이 많으면 일반적으로 티켓 가격이 낮습니다.
  • 이용 가능한 좌석이 적은 경우 일반적으로 티켓 가격이 높습니다.
모델이 검증 세트와 테스트 세트에서 낮은 손실을 보이지만 실제 데이터에서는 잘못된 예측을 내릴 때가 있습니다. 왜냐하면
답변을 보려면 여기를 클릭하세요.