Support Vector Machines 이해를 도와주세요 분 동안

Support Vector Machines의 목표가 입력 집합을 여러 클래스로 분류한다는 점의 기본 사항을 이해하지만 이해하지 못하는 것은 몇 가지 중요한 세부 사항입니다. 우선, Slack Variables를 사용하면 약간 혼란 스럽습니다. 그들의 목적은 무엇입니까?

신발 깔창에 놓은 센서에서 압력 측정 값을 캡처하는 분류 문제를 겪고 있습니다. 압력 데이터가 기록되는 동안 피험자는 몇 분 동안 앉아서 서서 걷는다. 나는 사람이 앉아 있는지, 서 있는지 또는 걷는지를 결정할 수 있고 미래의 테스트 데이터에 대해 그렇게 할 수 있도록 분류자를 훈련시키고 싶습니다. 어떤 분류기 유형을 사용해야합니까? 내가 캡처 한 데이터에서 분류기를 훈련시키는 가장 좋은 방법은 무엇입니까? 앉고, 서고, 걷고있는 1000 개의 항목 (총 3×1000 = 3000)이 있으며 모두 다음과 같은 특징 벡터 형식을 갖습니다. (압력 센서 1, 압력 센서 2, 압력 센서 3, 압력 센서 4)



답변

나는 당신이 나쁜 끝에서 시작하려고 생각합니다. SVM이 사용하기 위해 알아야 할 것은이 알고리즘이 두 클래스를 가장 잘 분리하는 속성의 초 공간에서 초평면을 찾는 것입니다. 다음과 같이 유명한 그림으로 표시된 것처럼 전체 그림이 흐리게 표시됩니다.

이제 몇 가지 문제가 남아 있습니다.
우선, 다른 계급의 점 구름 중심에 뻔뻔스럽게 누워있는 불쾌한 이상 치들과 어떻게해야합니까?

이를 위해 우리는 옵티마이 저가 특정 샘플에 라벨을 붙인 채로 두지 않고 각 예제를 처벌합니다. 다목적 오미 네이션을 피하기 위해 잘못 레이블이 지정된 사례에 대한 처벌은 목표 사이의 균형을 제어하는 ​​추가 매개 변수 C를 사용하여 여백 크기와 병합됩니다.
다음으로 때때로 문제는 선형 적이 지 않으며 좋은 초평면을 찾을 수 없습니다. 여기서는 커널 트릭을 소개합니다. 우리는 비선형 변환을 통해 원래의 비선형 공간을 더 높은 차원의 공간으로 투영합니다. 물론 여러 가지 추가 매개 변수로 정의되어 결과 공간에서 문제가 일반에 적합하기를 바랍니다. SVM :

다시 한 번, 약간의 수학으로 우리는 객체의 내적을 소위 커널 함수로 대체하여 목적 함수를 수정 함으로써이 전체 변환 절차를 우아하게 숨길 수 있음을 알 수 있습니다.
마지막으로, 이것은 모두 2 개의 클래스에서 작동하며 3 개의 클래스가 있습니다. 그것으로 무엇을해야합니까? 여기에서 우리는 3 개의 2 급 분류기 (앉기-앉지 않음, 서 있지 않음-서 있지 않음, 걷기 없음-걷기 없음)를 만들고 분류에서 투표와 그것들을 결합합니다.

문제가 해결 된 것처럼 보이지만 커널을 선택하고 (직관과상의하고 RBF를 선택) 최소한의 매개 변수 (C + 커널)를 맞 춥니 다. 그리고 교차 검증으로 인한 오차 근사와 같이이를 위해 과적 합 안전 목적 함수가 있어야합니다. 그래서 우리는 컴퓨터를 작동시키고 커피를 마시고 돌아와서 최적의 매개 변수가 있는지 확인합니다. 큰! 이제 우리는 중첩 된 교차 유효성 검사를 시작하여 오류 근사와 짜잔을 갖습니다.

이 간단한 워크 플로는 물론 완벽하게 수정하기에는 너무 단순화되었지만 , 거의 매개 변수에 독립적이고 기본적으로 멀티 클래스 인 랜덤 포레스트를 먼저 시도해야하는 이유를 보여줍니다 . 이는 편향되지 않은 오류 추정을 제공하며 거의 적합한 SVM만큼 성능을 ​​발휘합니다. .