SVM-하드 마진 또는 소프트 마진?
선형으로 분리 가능한 데이터 세트가 주어지면 소프트 마진 SVM보다 하드 마진 SVM을 사용하는 것이 필연적으로 더 낫습니까?
훈련 데이터 세트가 선형 적으로 분리 가능한 경우에도 소프트 마진 SVM이 더 좋을 것으로 기대합니다. 그 이유는 하드 마진 SVM에서 단일 이상 치가 경계를 결정할 수 있기 때문에 분류 기가 데이터의 노이즈에 지나치게 민감하게 만듭니다.
아래 다이어그램에서 단일 빨간색 이상 치는 본질적으로 경계를 결정하며 이는 과적 합의 특징입니다.
소프트 마진 SVM이 수행하는 작업을 이해하려면 하드 마진 SVM과 동일한 마진 최대화 목표 (마진이 음수 일 수 있음)를 가지고 있음을 확인할 수있는 이중 공식에서 살펴 보는 것이 좋습니다. 그러나 지원 벡터와 관련된 각 지연 승수는 C로 제한된다는 추가 제약이 있습니다. 본질적으로 이것은 결정 경계에 대한 단일 지점의 영향을 제한합니다. 도출을 위해 Cristianini / Shaw-Taylor의 "An Introduction to Support Vector"의 제안 6.12를 참조하십시오. 기계 및 기타 커널 기반 학습 방법 ".
그 결과 소프트 마진 SVM은 데이터 세트가 선형으로 분리 가능하고 과적 합 가능성이 적더라도 0이 아닌 훈련 오류가있는 결정 경계를 선택할 수 있습니다.
다음은 합성 문제에서 libSVM을 사용하는 예입니다. 원으로 표시된 점은지지 벡터를 나타냅니다. C를 줄이면 단일 데이터 포인트의 영향이 이제 C에 의해 제한된다는 의미에서 분류 기가 안정성을 얻기 위해 선형 분리 성을 희생한다는 것을 알 수 있습니다.
지원 벡터의 의미 :
하드 마진 SVM의 경우 지원 벡터는 "마진에있는"포인트입니다. 위의 그림에서 C = 1000은 하드 마진 SVM에 매우 가깝고 원으로 표시된 점이 마진에 닿는 지점임을 알 수 있습니다 (마진은 해당 그림에서 거의 0이므로 분리하는 초평면과 동일합니다.) )
소프트 마진 SVM의 경우 이중 변수로 설명하는 것이 더 쉽습니다. 이중 변수 측면에서 지원 벡터 예측자는 다음 함수입니다.
여기서 alphas와 b는 훈련 절차 중에 발견되는 매개 변수이고, xi 's, yi 's는 훈련 세트이고 x는 새로운 데이터 포인트입니다. 지원 벡터는 예측 변수, 즉 0이 아닌 알파 매개 변수가있는 훈련 세트의 데이터 포인트입니다.
내 생각에 Hard Margin SVM은 특정 데이터 세트에 과적 합하므로 일반화 할 수 없습니다. 선형으로 분리 가능한 데이터 세트 (위의 다이어그램에 표시됨)에서도 경계 내의 이상 값이 마진에 영향을 미칠 수 있습니다. Soft Margin SVM은 C를 조정하여 지원 벡터 선택을 제어 할 수 있기 때문에 더 다양한 기능을 제공합니다.
참조 URL : https://stackoverflow.com/questions/4629505/svm-hard-or-soft-margins
'program story' 카테고리의 다른 글
Ruby에서 예외 메시지에 정보를 어떻게 추가합니까? (0) | 2021.01.06 |
---|---|
자바 스크립트 변수 이름에 $ (달러 기호)를 사용하는 이유는 무엇입니까? (0) | 2021.01.06 |
오류 메시지 : (제공자 : 공유 메모리 공급자, 오류 : 0-파이프의 다른 쪽 끝에 프로세스가 없습니다.) (0) | 2021.01.06 |
장고에서 동일한 모델에 대한 foreignKey를 만들 수 있습니까? (0) | 2021.01.06 |
Heroku의 임시 파일 시스템을 사용하는 방법 (0) | 2021.01.06 |