2 차원 공간에 일련의 포인트가 주어지면 어떻게 SVM을위한 하나의 설계 결정 기능을 수행 할 수 있습니까?


10

누군가가 SVM 의사 결정 기능을 설계하는 방법을 설명해 줄 수 있습니까? 또는 구체적인 예를 설명하는 리소스를 알려주십시오.

편집하다

아래 예에서 방정식 는 클래스를 최대 마진으로 구분합니다. 그러나 다음과 같은 형식으로 가중치를 조정하고 초평면에 대한 방정식을 작성하는 방법은 무엇입니까?X2=1.5

H1:w0+w1x1+w2x21forYi=+1H2:w0+w1x1+w2x21forYi=1.

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

더 높은 차원에 대해 생각하기 전에 2D 공간에서 시각화하기 쉽도록 기본 이론을 얻으려고합니다.

나는 이것에 대한 해결책을 찾았다. 이것이 올바른지 누군가가 확인할 수 있습니까?

가중치 벡터는 (0, -2)이고 W_0은 3입니다.

H1:3+0x12x21forYi=+1H2:3+0x12x21forYi=1.

여기 에 R 그림이 있지만 귀하의 질문은 알고리즘 측면에 더 가깝습니다. 이 경우 의도 한 응용 프로그램이나 사용 가능한 리소스에 대한 정보를 조금 더 추가 할 수 있으면 도움이됩니다.
chl

@chl 나는 세부 사항으로 질문을 업데이트했습니다
naresh

답변:


12

SVM에 동기를 부여하는 방법은 적어도 두 가지가 있지만 여기서는 더 간단한 경로를 사용하겠습니다.

이제 SVM에 대해 알고있는 모든 것을 잊고 당면한 문제에 집중하십시오. 일부 레이블 ( ) 과 함께 포인트 세트가 제공 됩니다. 이제 레이블 이있는 모든 점이 선의 한쪽에 있고 레이블이 모든 점이 다른쪽에 있도록 2D에서 선을 찾으려고합니다 .Y I { 1 , - 1 } 1 - 1D={(x1i,x2i,yi)}yi{1,1}11

우선, 은 2D의 선이고 은 선의 "한 쪽"을 나타내고 은 "다른 쪽"을 나타냅니다. 선.w 0 + w 1 x 1 + ww0+w1x1+w2x2=0w 0 + w 1 x 1 + w 2 x 2 < 0w0+w1x1+w2x2>0w0+w1x1+w2x2<0

우리 위에 우리가 어떤 벡터한다고 결론 지을 수 가입일 되도록, 모든 점 로 및 모든 점 와 [1].w 0 + w 1 x i 1 + w 2 x i 20 x i y i = 1 w 0 + w 1 x i 1 + w[w0,w1,w2]w0+w1x1i+w2x2i0xiyi=1x i y i = 1w0+w1x1i+w2x2i<0xiyi=1

그런 줄이 실제로 존재한다고 가정하면 다음과 같은 방법으로 분류자를 정의 할 수 있습니다.

min|w0|+|w1|+|w2|subject to:w0+w1x1i+w2x2i0,xi with yi=1w0+w1x1i+w2x2i<0,xi with yi=1

위의 임의의 목적 함수를 사용했지만 목적 함수가 사용되는 순간에는 실제로 신경 쓰지 않습니다. 우리는 우리 의 제약을 만족시키는 를 원합니다 . 두 클래스를 해당 행으로 분리 할 수있는 행이 있다고 가정 했으므로 위의 최적화 문제에 대한 해결책을 찾을 수 있습니다.w

위의 SVM은 아니지만 분류기를 제공합니다 :-). 그러나이 분류기는 그다지 좋지 않을 수 있습니다. 그러나 좋은 분류자를 어떻게 정의합니까? 좋은 분류기는 일반적으로 테스트 세트에서 잘 수행되는 분류기입니다. 이상적으로, 당신은 가능한 모든 이상 갈 것 훈련 데이터를 분리의 및 테스트 데이터에서 잘 수행 중 어느 참조하십시오. 그러나 무한 가 있기 때문에 이것은 절망적입니다. 대신, 좋은 분류기를 정의하기 위해 일부 휴리스틱을 고려할 것입니다. 하나의 휴리스틱은 데이터를 분리하는 선이 모든 점에서 충분히 멀리 떨어져 있다는 것입니다 (즉, 점과 선 사이에 항상 간격 또는 여백이 있음). 이 중에서 가장 좋은 분류기는 최대 마진을 가진 분류기입니다. 이것이 SVM에서 사용되는 것입니다.www

대신 주장의 모든 점 로 하고 모든 점 와 , 우리가 고집 모든 점 와 및 모든 점 와 , 우리는 실제로 점들이 선에서 멀리 떨어져 있다고 주장합니다. 이 요구 사항에 해당하는 기하학적 여백은 입니다.x i y i = 1 w 0 + w 1 x i 1 + w 2 x i 2 < 0 x i y i = 1 w 0 + w 1 x i y i = 1 w 0 + w 1w0+w1x1i+w2x2i0xiyi=1w0+w1x1i+w2x2i<0xiyi=1w0+w1x1i+w2x2i1xiyi=1xiyi=11w0+w1x1i+w2x2i1xiyi=11w2

따라서 다음과 같은 최적화 문제 이것을 쓰는 간단한 간결한 형식은, 기본적으로 기본 SVM 공식입니다. 나는 간결성을 위해 많은 논의를 생략했다. 바라건대, 나는 여전히 대부분의 아이디어를 얻었습니다.

max1w2subject to:w0+w1x1i+w2x2i1,xi with yi=1w0+w1x1i+w2x2i1,xi with yi=1
minw2subject to:yi(w0+w1x1i+w2x2i)1,i

예제 문제를 해결하기위한 CVX 스크립트 :

A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end

부록-기하 여백

위에서 우리는 이미 또는 일반적으로 과 같은 찾도록 요청했습니다 . 여기 보이는 LHS를 기능 마진이라고합니다. 여기서 요청한 기능 마진은 입니다. 이제이 기능 마진 요구 사항이 주어지면 기하학적 마진을 계산해 보겠습니다.y i ( w 0 + w 1 x 1 + w 2 x 2 ) 1wyi(w0+w1x1+w2x2)11yi(w0+wTx)11

기하학적 여백이란 무엇입니까? 기하 적 마진은 긍정적 예의 점과 부정적인 예의 점 사이의 최단 거리입니다. 이제 위에서 요구 한대로 가장 짧은 거리를 가진 포인트는 기능 마진이 1보다 클 수 있습니다. 그러나 초평면에 가장 가까울 때 가장 짧은 포인트의 기능 마진이 정확히 동일한 극단적 인 경우를 고려해 보겠습니다. 1.하자 양 예에 지점이 지점 같은 것이 될 및 점하여야 네거티브 예에서 점하는 것이 . 이제 와 사이의 거리는 일 때 가장 짧w T x + + w 0 = 1 x w T x + w 0 = 1 x + x x +x x+wTx++w0=1xwTx+w0=1x+xx+x 초평면에 수직이다.

이제 위의 모든 정보를 통해 기하학적 여백 인 를 찾으려고 합니다. w T x + + w 0 = 1 w T x + w 0 = 1 w T ( x +x ) = 2 | w T ( X + - x+x2

wTx++w0=1
wTx+w0=1
wT(x+x)=2
w 2x +x
|wT(x+x)|=2
X + - X - 2 = 2
w2x+x2=2
x+x2=2w2

[1] 실제로 어느 쪽을 과 선택하든 문제가되지 않습니다 . 당신은 당신이 선택한 무엇이든 일관성을 유지해야합니다.- (1)11


1
@naresh Yeap, 이것을 cvx로 해결하면 과 동일한 솔루션을 얻을 수 있습니다 . w=[0,2,3]
TenaliRaman

1
@ 엔트로피 덕분에 오타를 수정했습니다. 기하학적 여백 설명을 추가하겠습니다.
TenaliRaman

1
@entropy 기하학적 여백 설명으로 답변을 업데이트했습니다.
TenaliRaman

1
@entropy 는 원점을 통과하는 초평면입니다. 모든 선형 방정식의 공간을 포괄하려면 바이어스 항이 필요합니다. 2D에있는 점을 생각해보고이 점을 구분하는 선을 찾으려고합니다. 그러나이 점들은 모두 1 사분면에 있습니다. 이제이 점들을 분리 할 수 ​​있지만 원점을 통과하는 선이 아닌 점을 정렬 할 수 있습니다. 그러나 적절한 치우침이있는 선으로 할 수 있습니다. wTx
TenaliRaman

1
@entropy 위에서 말했듯이 점을 올바르게 회전하고 이동하면 원점을 통과하는 선조차도 클래스를 분리 할 수 ​​있어야한다는 것을 알았을 것입니다. 그러나 일반적으로 바이어스 용어를 배우는 것보다이 올바른 회전 및 이동을 찾는 것은 쉽지 않습니다.
TenaliRaman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.