SVM에 동기를 부여하는 방법은 적어도 두 가지가 있지만 여기서는 더 간단한 경로를 사용하겠습니다.
이제 SVM에 대해 알고있는 모든 것을 잊고 당면한 문제에 집중하십시오. 일부 레이블 ( ) 과 함께 포인트 세트가 제공 됩니다. 이제 레이블 이있는 모든 점이 선의 한쪽에 있고 레이블이 모든 점이 다른쪽에 있도록 2D에서 선을 찾으려고합니다 .Y I { 1 , - 1 } 1 - 1D={(xi1,xi2,yi)}yi{1,−1}1−1
우선, 은 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 2 ≥ 0 x i y i = 1 w 0 + w 1 x i 1 + w[w0,w1,w2]w0+w1xi1+w2xi2≥0xiyi=1x i y i = − 1w0+w1xi1+w2xi2<0xiyi=−1
그런 줄이 실제로 존재한다고 가정하면 다음과 같은 방법으로 분류자를 정의 할 수 있습니다.
분 | 승0| + | 승1| + | 승2|대상 : w0+ 승1엑스나는1+ 승2엑스나는2≥ 0 , ∀ x나는 와 Y나는= 1승0+ 승1엑스나는1+ 승2엑스나는2< 0 , ∀ x나는 와 Y나는= − 1
위의 임의의 목적 함수를 사용했지만 목적 함수가 사용되는 순간에는 실제로 신경 쓰지 않습니다. 우리는 우리 의 제약을 만족시키는 를 원합니다 . 두 클래스를 해당 행으로 분리 할 수있는 행이 있다고 가정 했으므로 위의 최적화 문제에 대한 해결책을 찾을 수 있습니다.승
위의 SVM은 아니지만 분류기를 제공합니다 :-). 그러나이 분류기는 그다지 좋지 않을 수 있습니다. 그러나 좋은 분류자를 어떻게 정의합니까? 좋은 분류기는 일반적으로 테스트 세트에서 잘 수행되는 분류기입니다. 이상적으로, 당신은 가능한 모든 이상 갈 것 훈련 데이터를 분리의 및 테스트 데이터에서 잘 수행 중 어느 참조하십시오. 그러나 무한 가 있기 때문에 이것은 절망적입니다. 대신, 좋은 분류기를 정의하기 위해 일부 휴리스틱을 고려할 것입니다. 하나의 휴리스틱은 데이터를 분리하는 선이 모든 점에서 충분히 멀리 떨어져 있다는 것입니다 (즉, 점과 선 사이에 항상 간격 또는 여백이 있음). 이 중에서 가장 좋은 분류기는 최대 마진을 가진 분류기입니다. 이것이 SVM에서 사용되는 것입니다.w승승
대신 주장의 모든 점 로 하고 모든 점 와 , 우리가 고집 모든 점 와 및 모든 점 와 , 우리는 실제로 점들이 선에서 멀리 떨어져 있다고 주장합니다. 이 요구 사항에 해당하는 기하학적 여백은 입니다.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 1승0+ 승1엑스나는1+ 승2엑스나는2≥ 0엑스나는와이나는= 1승0+ 승1엑스나는1+ 승2엑스나는2< 0엑스나는와이나는= − 1승0+ 승1엑스나는1+ 승2엑스나는2≥ 1엑스나는와이나는= 1xiyi=−11승0+ 승1엑스나는1+ 승2엑스나는2≤ - 1엑스나는와이나는= − 11∥ w ∥2
따라서 다음과 같은 최적화 문제
이것을 쓰는 간단한 간결한 형식은,
기본적으로 기본 SVM 공식입니다. 나는 간결성을 위해 많은 논의를 생략했다. 바라건대, 나는 여전히 대부분의 아이디어를 얻었습니다.
최대 1∥ w ∥2대상 : w0+ 승1엑스나는1+ 승2엑스나는2≥ 1 , ∀ x나는 와 Y나는= 1승0+ 승1엑스나는1+ 승2엑스나는2≤ − 1 , ∀ x나는 와 Y나는= − 1
최소 ∥ w ∥2대상 : y나는( 승0+ 승1엑스나는1+ 승2엑스나는2) ≥ 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 ) ≥ 1승와이나는( 승0+ 승1엑스1+ 승2엑스2) ≥ 1≥ 1와이나는( 승0+ 승티x ) ≥ 1≥ 1
기하학적 여백이란 무엇입니까? 기하 적 마진은 긍정적 예의 점과 부정적인 예의 점 사이의 최단 거리입니다. 이제 위에서 요구 한대로 가장 짧은 거리를 가진 포인트는 기능 마진이 1보다 클 수 있습니다. 그러나 초평면에 가장 가까울 때 가장 짧은 포인트의 기능 마진이 정확히 동일한 극단적 인 경우를 고려해 보겠습니다. 1.하자 양 예에 지점이 지점 같은 것이 될 및 점하여야 네거티브 예에서 점하는 것이 . 이제 와 사이의 거리는 일 때 가장 짧w T x + + w 0 = 1 x − w T x − + w 0 = − 1 x + x − x + − x −엑스+승티엑스++ 승0= 1엑스−승티엑스−+ 승0= − 1엑스+x−x+−x− 초평면에 수직이다.
이제 위의 모든 정보를 통해 기하학적 여백 인 를 찾으려고 합니다.
w T x + + w 0 = 1 w T x − + w 0 = − 1 w T ( x + − x − ) = 2 | w T ( X + - ‖∥x+−x−∥2
wTx++w0=1
wTx−+w0=−1
wT(x+−x−)=2
″ w ″ 2 ″ x + − x −|wT(x+−x−)|=2
‖ X + - X - ‖ 2 = 2∥w∥2∥x+−x−∥2=2
∥x+−x−∥2=2∥w∥2
[1] 실제로 어느 쪽을 과 선택하든 문제가되지 않습니다 . 당신은 당신이 선택한 무엇이든 일관성을 유지해야합니다.- (1)1−1