기계 학습에서 과적 합이 나쁜 이유는 무엇입니까?


49

논리는 종종 모델을 과적 합함으로써 일반화 할 수있는 능력이 제한적이라고 말하지만, 이는 과적 합이 특정 복잡성 이후에 모델이 개선되는 것을 막을 수 있음을 의미 할 수도 있습니다. 과적 합은 데이터의 복잡성에 관계없이 모델을 악화시키는 원인이됩니까? 그렇다면 왜 그런가?


관련 : 위의 질문에 대한 후속 조치 , " 모델은 언제 적합하지 않습니까? "


1
과도하게 맞추는 것이 불가능한 경우가 실제로 있습니까?
Sean Owen

@SeanOwen : 아니요, 어떻게 초과 맞춤이 불가능합니까?
blunders

데이터에 관계없이 과적 합으로 인해 모델이 더 나빠지는지 확인한 그대로 동의
Sean Owen

1
과적 합은 정의상 나쁘다. 그것이 아니라면 그것은되지 않을 것 이상 끼움.
갈라

1
"모델 복잡성 추가"라는 말은 아닙니다. 단지 문구를 강조한 것뿐입니다. 어쨌든 내 문제는 기본적으로 @GaLa와 동일하다고 생각합니다. 초과 피팅은 너무 많은 피팅을 의미합니다. 그래서 당신은 우리에게 타우 톨로지를 확인하라고 요구하는 것 같습니다. 그래서 저는 여러분이 실제로 다른 질문을하려는 것이라고 생각하는 경향이 있습니다. 예를 들어, 모델 복잡성이 증가하면 모델이 악화됩니까? 또는 데이터의 복잡성이 모델이 과적 합하는 경향과 어떤 관련이 있습니까?
Nathan Gould

답변:


44

과적 합은 경험적으로 나쁘다. 테스트와 교육으로 나뉘어 진 데이터 세트가 있다고 가정하십시오. 과적 합 모델은 훈련 데이터 셋보다 테스트 데이터 셋에서 훨씬 더 성능이 떨어지는 모델입니다. 일반적으로 이와 같은 모델은 일반적으로 과적 합되지 않은 모델보다 추가 (새로운) 테스트 데이터 세트에서 성능이 저하되는 것으로 관찰됩니다.

직관적으로 이해하는 한 가지 방법은 모델이 데이터의 관련 부분 (신호)과 일부 관련없는 부분 (소음)을 사용할 수 있다는 것입니다. 과적 합 모델은 더 많은 노이즈를 사용하므로 알려진 노이즈 (트레이닝 데이터)의 경우 성능이 향상되고 새로운 노이즈 (테스트 데이터)의 경우 성능이 저하됩니다. 교육 데이터와 테스트 데이터의 성능 차이는 모델에서 발생하는 노이즈의 양을 나타냅니다. 노이즈를 직접 포착하면 테스트 데이터 (향후 데이터 포함)의 성능이 저하됩니다.

요약 : 오버 피팅은 정의 상으로는 좋지 않습니다. 이는 복잡성 또는 일반화 능력과는 관련이 없지만 신호에 대한 노이즈 잡음과 관련이 있습니다.

추신 : 문제의 "일반화 능력"부분에서, 모델의 구조 (예 : 선형 SVM 등)로 인해 일반화 능력이 본질적으로 제한적이지만 여전히 경향이있는 모델을 가질 수 있습니다. 과적 합. 어떤 의미에서 과적 합은 일반화가 실패 할 수있는 한 가지 방법 일뿐입니다.


17

간단히 말해 과도하게 맞추는 것은 데이터 및 / 또는 사전 지식의 정보를 너무 많이 고려 하여 모델에 사용하는 것을 의미합니다. 보다 간단하게하기 위해 다음 예제를 고려하십시오. 일부 과학자들은 일부 식물의 성장을 예측하는 모델을 제공하기 위해 일부 과학자들에 의해 고용되었습니다. 과학자들은 1 년 내내 그러한 식물을 연구 한 결과 수집 한 정보를 제공했으며, 향후 재배지에 대한 정보를 지속적으로 제공 할 것입니다.

따라서 수신 된 데이터를 통해 모델을 구축합니다. 이제 모델에서 초기 데이터 세트에서 본 식물의 정확한 동작을 항상 찾기 위해 가능한 많은 특성을 고려했다고 가정하십시오. 이제 생산이 계속되면 항상 이러한 특성을 고려하여 매우 세밀한 결과를 얻을 수 있습니다. 그러나 농장이 계절에 따라 약간의 변화를 겪으면 예측 결과가 실패하기 시작하는 방식으로 (실제로 속도가 느려지지만 실제로 속도가 빨라지거나, 반대).

이러한 작은 변형을 감지 할 수없고 일반적으로 항목을 잘못 분류하는 것 외에도 모형 의 미세 입자 , 즉 많은 양의 변수는 처리 비용이 너무 많이들 수 있습니다. 이제 데이터가 이미 복잡하다고 가정하십시오. 모형을 데이터에 과적 합하면 분류 / 평가가 매우 복잡해질뿐만 아니라 입력에 미칠 수있는 가장 작은 변동에 대한 예측 오류가 발생할 수 있습니다.

편집 : 이것은 위의 설명에 역 동성을 추가하여 일부 유용 할 수도 있습니다. : D


14

대략적으로 말하면, 과적 합은 일반적으로 비율이

여기에 이미지 설명을 입력하십시오

너무 높습니다.

과적 합은 모델이 테스트 데이터로 일반화 할 수없는 큰 그림을 배우지 않고 마음으로 훈련 데이터를 학습하는 상황으로 생각하십시오. 훈련 데이터, 즉 훈련 데이터의 크기가 모델 복잡도에 비해 작을 때를 말한다.

예 :

  • 데이터를 2 차원 인 경우, 당신은 트레이닝 세트에 10,000 포인트를 가지고 모델 라인, 당신은 가능성이 아래 -fit.
  • 데이터가 2 차원 인 경우 훈련 세트에 10 점이 있고 모형이 100도 다항식이면 과도하게 적합 할 수 있습니다 .

여기에 이미지 설명을 입력하십시오

이론적 인 관점에서, 모델을 올바르게 훈련시키는 데 필요한 데이터의 양은 머신 러닝에서 결정적이지만 아직 해결되지 않은 질문입니다. 이 질문에 대답하기위한 그러한 접근 방법 중 하나는 VC 차원 입니다. 또 하나의 편향-분산 트레이드 오프 입니다.

경험적 관점에서, 사람들은 일반적으로 훈련 오차와 시험 오차를 동일한 플롯에 표시하고 시험 오차를 희생하여 훈련 오차를 줄이지 않도록합니다.

여기에 이미지 설명을 입력하십시오

Coursera의 Machine Learning 과정 , "10 : Machine Learning 적용에 대한 조언"섹션 을 시청하는 것이 좋습니다.

(PS : 이 SE에서 TeX 지원을 요청하려면 여기 로 이동 하십시오 .)



5

바이어스 편차 딜레마 라는 것이기 때문 입니다. 과적 합 모델은 모델에 더 많은 차이를 주면 더 복잡한 결정 경계를 갖게됩니다. 문제는 너무 단순한 모델 일뿐만 아니라 복잡한 모델도 보이지 않는 데이터에 대해 분류되지 않은 결과를 낳을 수 있다는 것입니다. 결과적으로 과적 합 모델은 과적 합 모델보다 좋지 않습니다. 그렇기 때문에 과적 합이 나쁘고 중간에 모델을 적합시켜야합니다.


+1 감사합니다. 귀하의 답변으로, 위의 질문에 대한 후속 답변을 게시했습니다 . " 모델이 적합하지 않은 경우는 언제입니까? "
blunders

4

과적 합에 관한 문제를 이해하게 된 것은 가능한 과적 합 모델이 무엇인지 상상하는 것이 었습니다. 기본적으로 간단한 조회 테이블이됩니다.

모델에 각 데이터 조각의 속성이 무엇인지 알려주고 단순히 데이터를 기억하고 더 이상 아무것도하지 않습니다. 이전에 본 데이터 조각을 제공하면 데이터를 찾아보고 이전에 말한 내용을 간단히 설명합니다. 이전에 보지 못한 데이터를 제공 하면 결과는 예측할 수 없거나 임의적입니다. 그러나 기계 학습의 요점은 무슨 일이 있었는지 알려주는 것이 아니라 패턴을 이해하고 이러한 패턴을 사용하여 진행 상황을 예측하는 것입니다.

의사 결정 트리를 생각해보십시오. 의사 결정 트리를 계속해서 더 크게 늘리면 결국 모든 리프 노드가 정확히 하나의 데이터 포인트를 기반으로하는 트리가됩니다. 방금 룩업 테이블을 만드는 백도어 방법을 찾았습니다.

결과를 일반화하여 향후 발생할 수있는 상황을 파악하려면 트레이닝 세트에서 진행중인 작업을 일반화하는 모델을 작성해야합니다. 과적 합 모형은 이미 보유한 데이터를 설명하는 데 큰 도움이되지만 설명 적 모형이 반드시 예측 모형은 아닙니다.

무료 점심 식사 정리 (No Free Lunch Theorem)에 따르면 모든 가능한 인스턴스 세트에서 다른 모델보다 성능이 뛰어난 모델은 없습니다 . 일련의 숫자 "2, 4, 16, 32"에서 다음에 나올 것을 예측하려면 기본 패턴이 있다고 가정하지 않으면 다른 것보다 더 정확한 모델을 작성할 수 없습니다. 과적 합한 모델은 실제로 패턴을 평가하는 것이 아니라 가능한 것으로 알고있는 것을 모델링하고 관찰 결과를 제공하는 것입니다. 기본 기능이 있다고 가정하고 해당 기능이 무엇인지 판별 할 수 있으면 이벤트 결과를 예측할 수 있다고 가정하여 예측 능력을 얻습니다. 그러나 실제로 패턴이 없다면 운이 나쁘고 원하는 것이 무엇인지 알 수있는 룩업 테이블 만 있으면됩니다.


1

(1) 바이어스-분산 및 (2) 모델 복잡성이라는 두 가지 다른 엔티티를 잘못 확장하고 있습니다.

ϕ^ϕn

|ϕϕ^|eϕ as neϕ

ϕϕ^ϕϕ={m,c}

E[|yM(ϕ^)|]eM as neM

요약 : 그렇습니다. 샘플 바이어스와 모델 복잡성은 학습 된 모델의 '품질'에 기여하지만 서로 직접적으로 영향을 미치지는 않습니다. 데이터를 바이어스 한 경우, 올바른 수의 매개 변수와 무한 학습에 관계없이 최종 학습 모델에 오류가 발생합니다. 마찬가지로, 필요한 수의 매개 변수보다 적은 수의 경우 완벽하게 편향되지 않은 샘플링 및 무한 트레이닝에 관계없이 최종 학습 모델에 오류가 발생합니다.


0

과적 합에 대한 많은 좋은 설명이있었습니다. 여기 내 생각이 있습니다. 과적 합은 분산이 너무 높고 바이어스가 너무 낮을 때 발생합니다.

N 부분으로 나누는 훈련 데이터가 있다고 가정 해 봅시다. 이제 각 데이터 세트에서 모델을 학습하면 N 개의 모델이 생깁니다. 이제 평균 모델을 찾은 다음 분산 공식을 사용하여 각 모델이 평균과 얼마나 다른지 계산하십시오. 과적 합 모델의 경우이 차이는 실제로 높습니다. 이는 각 모델이 우리가 공급 한 작은 데이터 셋에 매우 특정한 추정 파라미터를 가지기 때문입니다. 마찬가지로, 평균 모델을 취한 다음 최상의 정확도를 제공 한 원래 모델과 얼마나 다른지 찾으면 전혀 다르지 않습니다. 이는 낮은 바이어스를 나타냅니다.

모델이 과적 합되었는지 여부를 확인하기 위해 이전 게시물에서 언급 한 플롯을 구성 할 수 있습니다.

마지막으로 과적 합을 피하기 위해 모델을 정규화하거나 교차 검증을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.