SVM, 과적 합, 차원의 저주


37

내 데이터 세트는 작지만 (120 개의 샘플) 기능의 수가 많으면 (1000-200,000)입니다. 기능의 하위 집합을 선택하기 위해 기능을 선택하고 있지만 여전히 초과 적합 할 수 있습니다.

첫 번째 질문은 SVM이 과적 합을 어떻게 처리하는지입니다.

둘째, 분류의 경우 과적 합에 대해 더 많이 연구함에 따라 소수의 기능을 가진 데이터 세트조차도 과적 합할 수 있다는 결론에 도달했습니다. 클래스 레이블과 관련된 기능이없는 경우 어쨌든 과적 합이 발생합니다. 클래스 레이블에 적합한 기능을 찾을 수없는 경우 자동 분류의 요점이 무엇인지 궁금합니다. 문서 분류의 경우 레이블과 관련된 단어 사전을 수동으로 작성하는 데 많은 시간이 소요됩니다. 내가 말하려는 것은 올바른 기능을 손으로 고르지 않으면 일반화 된 모델을 만드는 것이 매우 어렵다는 것입니다.

또한 실험 결과에 결과가 과적 합이 낮거나 없음을 나타내지 않으면 의미가 없습니다. 그것을 측정하는 방법이 있습니까?

답변:


41

실제로 SVM이 관측치보다 많은 경우에도 SVM이 과적 합에 저항하는 경향이있는 이유는 정규화를 사용하기 때문입니다. 과적 합을 피하기위한 핵심은 정규화 매개 변수 의 신중한 튜닝 과 비선형 SVM의 경우 신중한 커널 선택 및 커널 매개 변수 튜닝에 있습니다.C

SVM은 일반화 오류에 대한 경계의 대략적인 구현으로, 여백 (실제로 결정 경계에서 각 클래스의 가장 가까운 패턴까지의 거리)에 따라 다르지만 피쳐 공간의 차원과 무관합니다 (이유 커널 트릭을 사용하여 데이터를 매우 높은 차원의 공간에 매핑하는 것은 좋지 않은 생각이 아닙니다). 따라서 원칙적으로 SVM은 과적 합에 대한 저항력이 높아야하지만 실제로 는 와 커널 매개 변수를 신중하게 선택 해야합니다. 안타깝게도 저의 주요 연구 분야 인 하이퍼 파라미터를 튜닝 할 때 과적 합도 매우 쉽게 발생할 수 있습니다.C

GC Cawley 및 NLC Talbot, 하이퍼 파라미터의 베이지안 정규화를 통해 모델 선택에서 과적 합 방지, Journal of Machine Learning Research, 8 권, 841-861 페이지, 2007 년 4 월. ( www )

GC Cawley 및 NLC Talbot, 성능 평가에서 모델 선택 및 후속 선택 바이어스에 과적 합, Journal of Machine Learning Research, 2010. Research, vol. 11, pp. 2079-2107, 2010 년 7 월. ( www )

이 두 논문 모두 SVM 대신 커널 릿지 회귀를 사용하지만 SVM과 마찬가지로 동일한 문제가 쉽게 발생합니다 (KRR에도 비슷한 범위가 적용되므로 실제로는 그 중에서 선택할 것이 많지 않습니다). 따라서 어떤 방식으로 SVM은 과적 합 문제를 실제로 해결하지 못하고 문제를 모델 피팅에서 모델 선택으로 전환합니다.

먼저 일종의 기능 선택을 수행하여 SVM의 삶을 조금 더 쉽게 만들고 싶은 유혹이 있습니다. SVM과 달리 특성 선택 알고리즘은 특성 수가 증가함에 따라 더 많은 적합치를 나타내는 경향이 있습니다. 유익한 속성이 무엇인지 알고 싶지 않은 경우 일반적으로 기능 선택 단계를 건너 뛰고 정규화를 사용하여 데이터가 과도하게 적합하지 않도록하는 것이 좋습니다.

즉, 정규화 매개 변수가 올바르게 조정 되면 120 개의 관측치 및 수천 개의 속성이있는 문제에 대해 SVM (또는 능선 회귀, LARS, 올가미, 탄성 그물 등의 기타 정규화 된 모델)을 사용하는 데 고유 한 문제가 없습니다 .


정보 획득 기반 순위와 같은 기능 선택 방법을 보여주는 논문이 더 적합 할 가능성이있는 논문이 있습니까?
user13420

1
내가 아는 바는 요점은 SVM에 몇 가지 속성이 있기 때문에 과적 합에 내성이 있음을 시사하는 이론적 결과가 있지만 기능 선택 방법에는 해당 사항이 없다는 것입니다. FWIW의 "회귀에서 부분 집합 선택"에 대한 Miller의 논문은 예측 성능 만 필요한 경우 정규화 방법을 사용하도록 권장합니다. 기능 선택에 대한 몇 가지 공개적인 문제가 있었는데, 이는 정규화가 기능 선택보다 성능이 뛰어나다는 것을 암시합니다 ( nipsfsc.ecs.soton.ac.ukcausality.inf.ethz.ch/challenge.php 참조 ).
Dikran Marsupial

첫 번째 단락에서 언급했듯이 SVM은 과적 합에 강한 경향이 있으며 정규화 (매개 변수 C) 를 사용하므로 기본적 svm으로이 정규화 매개 변수 C ? 내가하지 않도록 변수이 제어 무엇을 해요 C , 당신은 그 의미 슬랙 변수를 ?
아보카도

10

두 번째 질문과 마지막 질문으로 시작하겠습니다.

머신 러닝의 결과를 일반화 할 수 없으면 완전히 쓸모가 없기 때문에 일반화 문제는 분명히 중요합니다.

일반화를 보장하는 방법은 통계에서 나옵니다. 일반적으로 데이터는 실제로 발생하는 확률 분포에서 생성된다고 가정합니다. 예를 들어 2000 년에 태어난 남성 인 경우 10 세에 도달했을 때 체중 / 신장 / 눈 색깔의 확률 분포가 있으며, 이는 2000 년에 이용 가능한 유전자 풀, 가능한 환경 적 요인 등으로 인해 발생합니다. 우리는 많은 데이터를 가지고 있습니다. 예를 들어 확률이 높은 가우스 또는 다항식과 같은 기본 분포에 대해 말할 수 있습니다. 우리가 정확한 분포 그림을 가지고 있다면, 2010 년에 10 살짜리 아이의 키, 몸무게 및 눈 색깔이 주어지면, 아이가 남성 일 확률에 대한 근사치를 얻을 수 있습니다. 그리고 확률이 0 또는 1에 가까워지면 아이들의 섹스가 실제로 무엇인지 잘 알 수 있습니다.

보다 공식적으로, 우리는 훈련 오차가 이면 확률이 높고 ( ) 동일한 분포에서 생성 된 일부 데이터의 오차는 보다 작습니다 . 훈련 세트의 크기, 엡실론과 초과하는 테스트 오류 확률 사이에는 알려진 관계가 있습니다 . 여기에 소개 된 접근 방식은 Probably 대략 올바른 학습으로 알려져 있으며 학습 알고리즘의 일반화 문제를 다루는 계산 학습 이론의 중요한 부분입니다. 엡실론을 낮추고 델타를 증가시킬 수있는 다른 요소들도 있습니다. 가설 공간의 복잡성.δ k + ϵ k + ϵkδk+ϵk+ϵ

이제 SVM으로 돌아갑니다. 커널을 사용하지 않거나 유한 차원 공간에 매핑되는 커널을 사용하는 경우 소위 Vapnik-Chervonenkis 차원은 가설 공간 복잡성의 척도이며 유한하며 그에 대한 충분한 훈련 예제를 통해 높은 수준으로 얻을 수 있습니다 테스트 세트의 오류가 훈련 세트의 오류보다 크지 않을 확률. 무한 차원의 피처 공간에 매핑되는 커널을 사용하는 경우 Vapnik-Chervonenkis 차원도 무한하며 훈련 샘플만으로도 일반화 할 수는 없습니다. 다행히도 SVM의 여백 크기는 일반화를 보장하기위한 좋은 매개 변수로 판명되었습니다. 큰 마진과 훈련을 설정하면 시험 오차가 훈련 오차보다 훨씬 크지 않도록 보장 할 수 있습니다.


7

고려할만한 과적 합의 두 가지 주요 원인이 있습니다.

  1. 사용 가능한 교육 샘플에서 너무 많이 추론 한 알고리즘으로 과적 합합니다. 이것은 모델의 일반화 능력을 측정하여 경험적으로 보호하는 것이 가장 좋습니다. 교차 검증은 이러한 인기있는 방법 중 하나입니다.

  2. 기본 분포가 언더 샘플링 되었기 때문에 과적 합. 더 많은 데이터를 수집하거나 문제에 대한 도메인 지식을 모델에 추가 할 수 없다면 일반적으로 이에 대해 할 수있는 일은 거의 없습니다.

120 개의 샘플과 많은 기능을 사용하면 2의 파울이 발생할 가능성이 높으며 1이되기 쉽습니다.

테스트 및 훈련 오류에 대한 모델 복잡성의 영향을주의 깊게 관찰하여 약 1을 수행 할 수 있습니다.


그러나 과적 합을 어떻게 감지합니까? 모델이 교차 검증에서 꽤 잘하는 경우 실제로 우수하거나 1 또는 2로 인해 과적 합 때문에 모델을 수행합니까? 또한 수천 개의 기능을 사용하면 각 기능을 직접 분석하는 것이 번거로울 수 있습니다. 과적 합을 식별 할 수없는 경우 교차 검증 결과를 어떻게 신뢰할 수 있습니까?
user13420

1
추가 데이터가 없으면 표본이 부족한 모집단에 비해 과적 합하고 있는지 알기가 매우 어렵습니다. 유효성 검사 세트를 사용하여 모델을 조정 한 다음 별도의 테스트 세트를 사용하여 데이터를 세 세트로 나눌 수 있습니다. 또 다른 방법은 모델 복잡성을 수정하고 교육 및 테스트 세트 정확도가 어떻게 다른지 확인하는 것입니다. 테스트 세트 오류의 상승은 데이터에서 어느 정도의 모델 과적 합을 나타냅니다.
image_doctor

반복적 인 50/50 홀드 아웃 시험을 적용하면 훈련 및 테스트 세트가 균형을 이루는 지 느낄 수 있습니다. 아마 아닐 것입니다. KNN과 같은 일부 모델은 훈련 세트에서 완벽한 정확도를 달성하므로 본질적으로 어떤 의미로 과장되어 있습니다. 그러나 테스트 세트에서 여전히 적절한 성능을 달성 할 수 있습니다. 머신 러닝에서와 마찬가지로 결국에는 데이터의 정확한 특성에 따라 달라집니다.
image_doctor

@image_doctor "모델 복잡성 수정"에 대해 자세히 설명해 주시겠습니까?
Keith Hughitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.