과적 합 :은 총알이 없습니까?


21

올바른 교차 검증 및 모델 선택 절차를 따를 때에도 모델 복잡성, 기간에 제한을 두지 않는 한 모델을 충분히 검색 하지 않으면 과적 합 발생 한다는 것을 이해 합니다. 더욱이 사람들은 종종 그들이 제공 할 수있는 보호를 약화시키는 데이터로부터 모델 복잡성에 대한 처벌을 배우려고 시도합니다.

내 질문은 : 위의 진술에 얼마나 많은 진실이 있습니까?

ML 실무자들은 종종 다음과 같이 말합니다. " 회사 / 실에서는 캐럿 이나 scikit-learn 과 같은 라이브러리에서 사용 가능한 모든 모델을 항상 사용하여 어떤 모델 이 가장 효과가 좋은지 확인 합니다." 나는 종종이 접근법이 교차 검증에 대해 진지하고 원하는 방식으로 홀드 아웃 세트를 유지 하더라도 쉽게 과적 합할 수 있다고 주장한다 . 또한 검색이 어려울수록 과도하게 적합 할 수 있습니다. 다시 말해, 과도한 최적화는 실제 문제 이며 체계적으로 대처하는 데 도움이되는 휴리스틱이 없습니다. 이런 식으로 생각하는 것이 잘못입니까?


ML 구체적 또는 다변량 모델에 대해 일반적으로 질문하십니까?
rumtscho 2016 년

@rumtscho ML의 모든 것.
Amelio Vazquez-Reina

1
감사합니다 @CagdasOzgenc : "검색 공간이 클수록 (모델이 고려할수록) 결과가 나빠집니다" . 여기서 말하는 "검색 공간"의 추상화 수준을 모르지만 "충분히 시도"한다는 것은 물론 더 많은 모델을 검색하여 "메타 모델"의 복잡성 / 검색 공간을 증가시키는 것을 의미합니다. (원한다면) 우리가 적합하려고합니다.
Amelio Vazquez-Reina

답변:


8

전체 답변은 아니지만이 토론에서 사람들이 간과하는 한 가지는 교차 검증 (예 : 교차 검증)의 의미, 사용 방법 및 그 내용을 설명하는 것입니다.

검색이 너무 어려울 경우 사람들이하는 CV가 종종 단일 모델 내에 있다는 것입니다. folds=모델 피팅 절차 의 인수를 설정하여 수행하기 쉽습니다 . 그러나 여러 모델로 이동하거나 여러 모델을 생성하기위한 여러 절차를 수행 할 때는 CV에 포함되지 않은 다른 레이어를 추가합니다.

따라서 그들은 중첩 된 CV를 사용해야합니다. 또한 전체 프로세스를 둘러싼 "Target Shuffling"(리샘플링 / 순열 테스트)을 사용하여 종속 변수와 독립 변수 간의 관계를 깨뜨릴 경우 절차가 얼마나 잘 수행되는지 확인해야합니다. 전체 프로세스를 고려하고 있습니까?


1
+1. 그리드 검색 (모델 선택)를 실행 CV의 하나 (또는 너무 적은) 레이어 모델 선택을하는 것은 확실히 overfitting을 초래할 수 (사람이 관심을, 나는 추천 등 그 안에 소스). 나는 "타겟 셔플 링 (Target Shuffling)"(다른 독자들에게는 이 설명을 추천 한다 ) 에 대해 읽었 지만 직접 사용하지는 않았다. 나는 그것이 악용 될 수 있는지 궁금합니다 (예 : 여러 번의 테스트를 통해 오 탐지로 이어지고 다시 "충분히 열심히"(?) 검색).
Amelio Vazquez-Reina

7

4 년 정도의 경험에서, 캐럿 (또는 scikit-learn)에서 사용할 수있는 모든 모델을 시도한다고해서 반드시 과적 합이되는 것은 아니라는 것을 알게되었습니다. 충분히 큰 데이터 세트 (10,000 + 행)와 다소 균형 잡힌 클래스 균형 (즉, 신용 위험이나 마케팅 문제와 같은 클래스 불균형이 없음)이 있으면 과적 합이 최소화되는 경향이 있습니다. 튜닝 매개 변수에 대한 그리드 검색이 모델 당 30 개의 순열을 넘지 않는 경향이 있습니다. 극단적으로, 모델 당 100 또는 1,000 개의 순열을 사용한 경우 아마도 초과 적합 할 수 있습니다.

당신이 당신의 질문을 표현한 방법은 대답을 꽤 쉽게 만듭니다 : 극단적으로, 맞습니다. 은 총알이 없으며 다른 사람이 제안하지 않을 것입니다. 그러나, 과적 합의 정도가 수용 할 수있을 정도로 최소 인 합리적으로 넓은 스펙트럼이 여전히 존재한다. 검증 홀드 아웃 세트에 보이지 않는 데이터가 많으면 확실히 도움이됩니다. 보이지 않는 검증 홀드 아웃 세트가 여러 개있는 것이 훨씬 좋습니다. 나는 매일 많은 양의 새로운 데이터가 들어오는 분야에서 일할 수있을만큼 운이 좋다.

2,000-3,000 회 미만의 정적 데이터 집합 (예 : 어려운 의료 데이터)에 갇혀있는 위치에있는 경우 일반적으로 그라디언트가 과적 합되는 것을 자주 보았으므로 선형 모델 만 사용합니다. 충분히 작은 데이터 세트에서 벡터 머신을 증폭 및 지원합니다. 다른 한편으로, 나는 각 경쟁에 대해 수만 개의 모델을 구축하고 최종 앙상블에 수천 개의 모델을 사용하여 앙상블을 만든다는 최고 Kaggler (최고 5 %)와 이야기했습니다. 그는 이것이 최종 리더 보드에서 성공한 주된 이유라고 말했다.


1
네. 수백만의 관측치가있는 데이터로 작업했습니다. 어떤 검증 (kfold, bootstrapping 및 심지어 간단한 홀드 아웃)을 시도하든 모델에는 거의 변화가 없었습니다. 데이터가 증가하면 검증 방법에 대한 관리가 덜 필요합니다.
Ricardo Cruz

다시 말해, 수백만의 관측치를 "기억"할만큼 충분한 자유도를 가진 모델은 없습니다.
Ricardo Cruz

5

규모에 따라 다릅니다. @RyanZotti와 같은 2,000-3,000 건 이상의 사례를 가질 수 있기를 바랍니다. 나는 그 많은 것의 1/10을 거의 가지고 있지 않습니다. 그것은 "빅 데이터"머신 러닝 사람들과 바이오 메디신과 같은 분야에서 일하는 사람들 사이의 관점에서 큰 차이가 있습니다.

이 문제에 대한 내 생각을 휴리스틱으로 설명하겠습니다. Wikipedia 페이지 에 설명 된대로 과적 합의 기본 문제 는 사례 수와 평가중인 매개 변수 수 사이의 관계입니다. 따라서 M 모델이 있고 모델 당 p 매개 변수 중 하나를 선택하면 Mp 매개 변수 순서대로 무언가를 평가 한다는 대략적인 아이디어로 시작하십시오 .

과적 합의 위험이있는 경우보다 일반적인 모델로 되돌릴 수있는 두 가지 일반적인 방법이 있습니다. 매개 변수 수를 줄이거 나 어떤 식 으로든 불이익을줍니다.

충분히 큰 데이터 세트를 사용하면 과적 합에 근접 할 수 없습니다. 모델 당 100 개의 매개 변수가있는 20,000 개의 사례와 20 개의 서로 다른 모델이있는 경우 유효 매개 변수 당 10 개의 사례가 있으므로 처벌을받지 않아도 문제가되지 않을 수 있습니다. 200 가지 사례만으로 모델링 전략을 시도하지 마십시오.

모델 평균화는 처벌의 형태로 생각할 수 있습니다. @RyanZotti가 인용 한 Kaggler의 예에서, 사례의 수는 아마도 엄청나게 많으며 최종 앙상블의 "수천"모델 각각은 최종 모델의 작은 부분에만 개별적으로 기여합니다. 특정 기고 모델에 특정한 과적 합은 최종 결과에 큰 영향을 미치지 않으며 Kaggler 경쟁에서 매우 많은 수의 사례가 과적 합의 위험을 더욱 줄입니다.

따라서 여기에 많은 문제가있는 것과 같이 합리적인 대답은 "그것은 달려 있습니다"입니다. 이 경우, 적용되는 처벌 횟수와 함께 사례 수와 검사 된 유효 매개 변수 수 사이의 관계에 따라 달라집니다.


2

나는 이것이 매우 좋은 질문이라고 생각합니다. 항상 실제 데이터를 사용한 교차 검증 실험에서 "U"모양 곡선을 관찰하고 싶습니다. 그러나 실제 데이터에 대한 나의 경험 (신용 카드 거래 및 교육 데이터에서 ~ 5 년)막대한 양 (십억 행)의 실제 데이터 에서 피팅이 쉽게 일어날 수 있다고 말하지 않습니다 .

나는 종종 훈련 세트에 가장 잘 맞도록 노력할 수 있지만 훈련 세트가 실제로 크고 많은 정보와 소음을 포함하기 때문에 너무 많이 할 수는 없습니다 (예를 들어 손실을 0으로 줄이십시오).

동시에 데이터 테스트에 대해 가장 복잡한 모델을 (정규화없이) 시도 할 수 있으며 정규화를 사용하는 것보다 더 좋고 나아 보입니다.

마지막으로, 내 진술은 훈련에 수십억 개의 데이터 포인트가있는 조건에서만 사실이라고 생각합니다. 직관적으로 데이터는 모델링하는 것보다 훨씬 복잡하므로 지나치게 적합하지 않습니다. 수십억 개의 데이터 행의 경우 수천 개의 매개 변수가있는 모델을 사용하더라도 괜찮습니다. 동시에 백만 개의 자유 매개 변수로 모델을 작성하기위한 계산을 감당할 수 없습니다.

제 생각에는 이것이 신경망과 딥 러닝이 요즘 인기를 얻은 이유이기도합니다. 인터넷에서 수십억 장의 이미지와 비교할 때 훈련을 줄 수있는 모델로는 충분하지 않습니다.


1

@ ryan-zotti에 동의합니다. 충분히 열심히 검색한다고해서 반드시 과적 합을 유발할 필요는 없습니다. 이것에 대한 내 견해를 밝히려고합니다.

상자는 한 번 말했다 :

모든 모델이 잘못되었음을 기억하십시오. 실질적인 질문은 그들이 유용하지 않아야하는 것이 얼마나 잘못 되었는가이다.

(완벽 해지기 위해서는 모든 데이터가 필요하기 때문에 처음에는 모델이 필요하지 않습니다.)

1

결국 : 우리는 항상 모델 오류 / 과부족 / 부족 을 가질 것입니다. 중요한 관심사 내 에서이 오류를 감지 / 측정하여 중요한 합리적인 선택을 할 수 있는 능력입니다 .


1

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