SVM (Support Vector Machine)은 어떻게 작동합니까?


108

SVM (Support Vector Machine) 은 어떻게 작동하며 선형 퍼셉트론 , 선형 판별 분석 또는 로지스틱 회귀 와 같은 다른 선형 분류기와 다른 점은 무엇 입니까? *

(* 알고리즘, 최적화 전략, 일반화 기능 및 런타임 복잡성에 대한 근본적인 동기로 생각하고 있습니다 )



답변:


126

서포트 벡터 머신은 구분하기 가장 어려운 포인트에만 초점을 맞추는 반면 다른 분류기는 모든 포인트에주의를 기울입니다.

서포트 벡터 머신 접근 방식의 직관은 분류 기가 가장 까다로운 비교 (B와 A의 점이 그림 2에서 가장 가까운 점)에 적합하면 쉽게 비교할 수 있다는 점입니다 ( 서로 멀리있는 B와 A 지점 비교).

퍼셉트론 및 기타 분류기 :

퍼셉트론은 한 번에 한 점씩 찍고 그에 따라 구분선을 조정하여 만들어집니다. 모든 점이 분리되면 퍼셉트론 알고리즘이 중지됩니다. 그러나 어디서나 멈출 수 있습니다. 그림 1은 데이터를 분리하는 여러 개의 분할 선이 있음을 보여줍니다. 퍼셉트론의 정지 기준은 간단합니다. "100 % 분리 할 때 포인트를 분리하고 라인 개선을 중지합니다". 퍼셉트론은 최상의 분리 라인을 찾도록 명시 적으로 지시되지 않습니다. 로지스틱 회귀 및 선형 판별 모형은 퍼셉트론과 유사하게 구축됩니다.

가장 좋은 구분선은 A에 가장 가까운 B 지점과 B에 가장 가까운 A 지점 사이의 거리를 최대화합니다.이를 위해 모든 점을 볼 필요는 없습니다. 실제로, 아래에서 볼 수 있듯이 멀리 떨어진 지점에서 피드백을 통합하면 선이 약간 멀리 떨어질 수 있습니다.

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

벡터 머신 지원 :

다른 분류기와 달리 서포트 벡터 머신은 가장 좋은 분리 라인을 찾도록 명시 적으로 지시됩니다. 어떻게? 서포트 벡터 머신은 가장 가까운 포인트를 검색합니다 (그림 2). "서포트 벡터"(이름 "서포트 벡터 머신"은 포인트가 벡터와 같고 가장 좋은 선이 "의존"또는 가장 가까운 지점에서 "지원"됩니다.

가장 가까운 지점을 찾으면 SVM은 해당 지점을 연결하는 선을 그립니다 (그림 2에서 'w'로 표시된 선 참조). 벡터 빼기 (점 A-점 B)를 수행하여이 연결선을 그립니다. 그런 다음, 서포트 벡터 머신은 최상의 분리선을 연결선과 이등분하는 선으로 선언합니다.

서포트 벡터 머신은 새로운 샘플 (새로운 포인트)을 얻을 때 이미 B와 A를 가능한 한 멀리 떨어 뜨리는 라인을 만들었 기 때문에 더 낫습니다. 상대방의 영토로 향하는 선.

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

나는 시각적 학습자라고 생각하며 오랫동안 지원 벡터 머신의 직관과 씨름했다. SVM 분류기에서 Duality and Geometry 라는 논문이 마침내 빛을 보는 데 도움이되었습니다. 그곳에서 이미지를 얻었습니다.


4
다른 시각 학습자로부터 +1! 독자에게는 위 그림에서 분명한 경계가 이미 변환 된 데이터 세트를 기반으로한다는 점에 유의하고 싶습니다. 원시 데이터 세트가 아닙니다.
Kingz

2 년 이상 svm을 읽은 오늘날 분리선이 식별되는 방법과 몇 가지 더 이해했습니다. 깨끗한 답변 주셔서 감사합니다.
user123

53

Ryan Zotti의 답변 은 의사 결정 경계의 최대화에 대한 동기를 설명하고, carlosdc의 답변 은 다른 분류 자와 관련하여 몇 가지 유사점과 차이점을 제공합니다. 이 답변에서는 SVM의 교육 및 사용 방법에 대한 간단한 수학적 개요를 제공합니다.

표기법

다음에서 스칼라는 이탤릭 소문자로 표시됩니다 (예 : y,b ), 굵은 소문자가있는 벡터 (예 :w,xWwTww=wTw

허락하다:

  • x 는 특징 벡터 (즉, SVM의 입력)입니다. . 여기서 은 피처 벡터의 차원입니다.xRnn
  • y 는 클래스 (즉, SVM의 출력)입니다. 즉, 분류 작업은 이진입니다.y{1,1}
  • w 및 는 SVM의 매개 변수입니다. 훈련 세트를 사용하여 학습해야합니다.b
  • (x(i),y(i)) 는 데이터 세트 의 샘플입니다. 훈련 세트에 샘플 이 있다고 가정 해 봅시다 .ithN

함께 다음과 같이 하나는 SVM의 결정 경계를 나타낼 수 있습니다 :n=2

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

클래스 는 다음과 같이 결정됩니다.y

y(i)={1 if wTx(i)+b11 if wTx(i)+b1

더 정확하게는 있습니다.y(i)(wTx(i)+b)1

SVM은 다음 두 가지 요구 사항을 충족시키는 것을 목표로합니다.

  1. SVM은 두 의사 결정 경계 사이의 거리를 최대화해야합니다. 수학적으로, 이것은 우리에 의해 정의 된 초평면 사이의 거리는 최대화하려는 의미 에 의해 정의 된 초평면 입니다. 이 거리는 . 이는 을 해결하고자한다는 의미 입니다. 마찬가지로 우리는 원합니다 .wTx+b=1wTx+b=12wmaxw2wminww2

  2. SVM은 또한 모든 올바르게 분류해야합니다 . 이는x(i)y(i)(wTx(i)+b)1,i{1,,N}

다음과 같은 이차 최적화 문제가 발생합니다.

minw,bw2,s.t.y(i)(wTx(i)+b)1i{1,,N}

이 이차 최적화 문제는 데이터를 선형으로 분리 할 수있는 경우 솔루션을 인정하기 때문에 이것은 마진 SVM 입니다.

소위 슬랙 변수 를 도입하면 제약 조건을 완화 할 수 있습니다 . 트레이닝 세트의 각 샘플에는 자체 슬랙 변수가 있습니다. 이를 통해 다음과 같은 이차 최적화 문제가 발생합니다.ξ(i)

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTx(i)+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

이것은 소프트 마진 SVM 입니다. 는 오류 항의 페널티 라는 하이퍼 파라미터 입니다. ( 선형 커널을 사용하는 SVM에서 C의 영향은 무엇입니까?SVM 최적 매개 변수를 결정하기위한 검색 범위는 무엇입니까? ).C

원래의 피처 공간을보다 높은 차원의 피처 공간에 매핑 하는 함수 를 도입하여 훨씬 더 유연성을 추가 할 수 있습니다 . 이것은 비선형 결정 경계를 허용합니다. 이차 최적화 문제는 다음과 같습니다.ϕ

minw,bw2+Ci=1Nξ(i),s.t.y(i)(wTϕ(x(i))+b)1ξ(i),i{1,,N}ξ(i)0,i{1,,N}

최적화

이차 최적화 문제는 라그랑지안 이중 문제 (이전 문제를 초기 라고 함 ) 라는 다른 최적화 문제로 변환 할 수 있습니다 .

maxαminw,bw2+Ci=1Nα(i)(1wTϕ(x(i))+b)),s.t.0α(i)C,i{1,,N}

이 최적화 문제는 (그라데이션을 으로 설정하여 ) 다음과 같이 단순화 할 수 있습니다 .0

maxαi=1Nα(i)i=1Nj=1N(y(i)α(i)ϕ(x(i))Tϕ(x(j))y(j)α(j)),s.t.0α(i)C,i{1,,N}

w 는 ( 대표자 정리에 명시된대로 ).w=i=1Nα(i)y(i)ϕ(x(i))

따라서 우리 는 훈련 세트 의 를 사용하여 를 배웁니다 .α(i)(x(i),y(i))

(FYI : SVM을 장착 할 때 이중 문제로 귀찮게하는 이유는 무엇입니까? 짧은 대답 : 빠른 계산 + 커널 트릭을 사용할 수 있지만, 원시에서 SVM을 훈련시키는 좋은 방법이 있지만 {1} 참조)

예측하기

한 번 학식, 하나는 특징 벡터와 함께 새로운 샘플의 클래스를 예측할 수 으로는 다음과 같습니다 :α(i)xtest

ytest=sign(wTϕ(xtest)+b)=sign(i=1Nα(i)y(i)ϕ(x(i))Tϕ(xtest)+b)

합산의 이 사람이 모든 훈련 샘플을 통해 요약하는 것을 의미하기 때문에, 압도적으로 보일 수 있지만, 대부분의 입니다 (볼 수 있는 이유는 Lagrange multipliers는 SVM에 대해 드문 경우 이므로 실제로는 문제가되지 않습니다. ( 모든 특수한 경우를 구성 할 수 있습니다 .) iff 은 지원 벡터입니다 . 위의 그림에는 3 개의 지원 벡터가 있습니다.i=1Nα(i)0α(i)>0α(i)=0x(i)

커널 트릭

최적화 문제는 내부 제품 에서만 를 사용한다는 것을 알 수 있습니다. . 매핑 함수 내적에 된다 라고 커널 종종 붙이고, 일명 커널 함수, .ϕ(x(i))ϕ(x(i))Tϕ(x(j))(x(i),x(j))ϕ(x(i))Tϕ(x(j))k

내부 제품이 효율적으로 계산되도록 를 선택할 수 있습니다 . 따라서 계산 비용이 적게 드는 잠재적으로 높은 기능 공간을 사용할 수 있습니다. 이를 커널 트릭 이라고합니다 . 커널 함수가 유효 하기 위해서는 , 즉 커널 트릭과 함께 사용할 수 있으려면 두 가지 주요 속성을 만족시켜야 합니다 . 이 존재 선택할 수있는 커널 함수는 . 사이드 참고로, 커널 트릭은 다른 기계 학습 모델에 적용 할 수있다 그들이이 언급되는 경우, kernelized .k

더 나아 가기

SVM에 대한 흥미로운 QA :

다른 링크들 :


참고 문헌 :


2
Franck 안녕, 답변 주셔서 감사합니다. 왜 벡터 가 SVM이 생성하는 초평면과 직교 하는지 설명해 주시겠습니까 ? 그리고 두 결정 경계 사이의 거리를 어떻게 계산하여w2w
tosik

3
이 훌륭한 답변 외에도 SVM 뒤의 수학을 살펴보고 @tosik이 youtube.com/watch?v=_PwhiWxHK8o
Nikolas Rieble을

아주 좋은 대답입니다. 이 부분에 대해 한 가지 언급 만하면됩니다. iff 은 지원 벡터 입니다. 분류의 경우, 합계는 지원 벡터 (예 : )에 효과적으로 적용 됩니다. α(i)=0x(i)α(i)0
989

13

다른 분류 기와의 유사점과 차이점에 중점을 둘 것입니다.

  • 퍼셉트론에서 : SVM은 힌지 손실과 L2 정규화를 사용하고 퍼셉트론은 퍼셉트론 손실을 사용하며 정규화를 위해 조기 중지 (또는 다른 기술 중 하나)를 사용할 수 있습니다. 실제로 퍼셉트론에는 정규화 용어가 없습니다. 정규화 용어가 없으므로 퍼셉트론은 오버 트레이닝되어야하므로 일반화 기능이 임의로 나빠질 수 있습니다. 최적화는 확률 적 경사 하강을 사용하여 수행되므로 매우 빠릅니다. 긍정적 인 측면 에서이 백서는 약간 수정 된 손실 기능으로 조기 중지를 수행함으로써 성능이 SVM과 동등 할 수 있음을 보여줍니다 .

  • 로지스틱 회귀에서 : 로지스틱 회귀는 로지스틱 손실 항을 사용하며 L1 또는 L2 정규화를 사용할 수 있습니다. 로지스틱 회귀 분석을 생성 순진 베이어의 차별적 형제라고 생각할 수 있습니다.

  • LDA에서 : LDA는 또한 생성 알고리즘으로 볼 수 있으며, 확률 밀도 함수 (p (x | y = 0) 및 p (x | y = 1)가 정규 분포를 따르는 것으로 가정합니다. 그러나 "훈련"은 (많은 특징을 가질 때) 큰 행렬의 반전을 필요로한다는 단점이있다. 동질성 하에서 LDA는 정상적으로 분산 된 데이터에 최적 인 베이 즈 인 QDA 가된다 . 가정은 당신이 정말로 이것보다 더 잘 할 수 없다고 만족합니다.

런타임 (테스트 시간)에서 모델이 학습되면 이러한 모든 방법의 복잡성이 동일합니다. 이는 훈련 절차에서 찾은 하이퍼 플레인과 데이터 포인트 사이의 점에 불과합니다.


1
SVM에 능숙 해 보이므로 의심 할 여지가 없습니다. 최고의 분리 초평면을 찾으면 무엇을 사용합니까? 먼저 SVM을 데이터 포인트를 올바르게 분류하기 위해 최고의 하이퍼 플레인을 선택하는 방법으로 정의 할 수 있으며, 둘째,이 하이퍼 플레인을 사용하여 두 클래스에서 새 데이터 포인트를 분리합니다. 권리? (나는 두 번째 부분에 약간의 의심을했습니다)
DavideChicco.it

1
@ DavideChicco.it 예, 인디케이터 함수를 사용하여 새로운 데이터를 분류 할 수 있는데, 이는 종종 분류 자의 주요 목적입니다. (그러나 이것에 대해 내 말을하지 마십시오, 나는 모든 것을 처음 사용합니다).
keyser

12

이 기법은 가능한 첫 번째 긍정적 및 부정적 예에 충분한 마진을 남기는 결정 경계선을 그릴 때 사용됩니다.

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

위의 그림에서와 같이 과 같은 직교 벡터를 선택하면 알 수없는 예제 에 대해 결정 기준을 설정 하여 형식의 양수로 카탈로그 화할 수 있습니다 .w=1u

wuC

거리 중간에있는 결정 선을 넘어 투영을 배치하는 값에 해당합니다. 그주의 .wu=uw

양성 샘플의 동등한 조건은 다음과 같습니다.

(1)wu+b0

와 함께C=b.

의사 결정 규칙이 있고 거기에 도달 하려면 와 가 필요 합니다 .bw

우리가 부과 할 첫 번째 제약 은 모든 긍정적 인 샘플에 대해 ,, ; 음수 샘플의 경우 입니다. 분할 경계 또는 초평면 ( 중앙 )에서 값은 이고 거터의 값은 및 .x+,wx++b1wx+b1011

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

벡터 는 가중치 벡터 이고 는 바이어스 입니다.wb


이 두 가지 불평등을 가져 오려면, 우리는 변수 소개 할 수 수 있도록 긍정적 예를 들어, 및 예는 부정적이며, 경우에 결론yiyi=+1yi=1

yi(xiw+b)10.

따라서이 값은 0보다 커야 하지만 , 예제가 결정 초평면과지지 벡터의 끝 (이 경우 선) 사이의 분리 마진을 최대화하는 초평면 ( "홈통")에있는 경우, 그때:

(2)yi(xiw+b)1=0

이것은 을 요구하는 것과 같습니다yi(xiw+b)=1.

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


두 번째 제약 조건 : 결정 초평면과 서포트 벡터의 끝까지의 거리가 최대화됩니다. 즉, 분리 마진 ( "거리") 이 최대화됩니다.

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

결정 경계 수직 인 단위 벡터를 가정하면 두 " 테두리 "플러스와 마이너스 예제의 차이가있는 내적 은 "거리"너비입니다 .w

width=(x+x)ww

위의 방정식에서 와 거터에 있습니다 (분리를 최대화하는 초평면에서). 따라서 긍정적 인 예 : 또는 ; 부정적인 예 : . 따라서 거리의 폭을 재구성하십시오.x+x (xiw+b)1=0x+w=1bxw=1b

width=(x+x)ww=x+wxww=1b(1b)w(3)=2w

이제 거리의 너비를 최대화해야합니다. 즉, 최대화 하거나 를 최소화하거나 최소화해야합니다.2w,w

(4)12w2

수학적으로 편리합니다.


그래서 우리는 :

  1. 제약 조건으로 를 최소화 하십시오.x2

  2. yi(wxi+b)1=0


우리는 일부 제약 조건에 따라이 표현을 최소화하고 싶기 때문에 Lagrange multiplier가 필요합니다 (방정식 2 및 4로 돌아갑니다).

(5)L=12w2λi[yi(xiw+b)1]

일러스트레이션,

Lw=wλiyixi=0
입니다.

따라서,

(6)w=λiyixi

그리고 와 관련하여 차별화b:

Lb=λiyi=0,

즉, 곱셈기와 레이블의 제로섬 곱이 있습니다.

(7)λiyi=0

방정식 Eq (6)을 다시 Eq (5)에 연결

L=12(λiyixi)(λjyjxj)(λiyixi)(λjyjxj)λiyib+λi

두 번째 항은 방정식 Eq (7)에 따라 0입니다.

따라서,

(8)L=λi12ijλiλjyiyjxixj

식 (8)은 최종 라그랑지안이다.

따라서 최적화는 예제 쌍의 내적에 의존합니다.

위의 식 (1)에서 "결정 규칙"으로 돌아가서 식 (6)을 사용하십시오.

(9)λiyixiu+b0

새로운 벡터 대한 최종 결정 규칙이 될 것u.


독창적 인 것은 ... 더 많은 엔트리 레벨의 내 노트. 기본적으로 MIT의 비디오에서 내 그림이 있습니다. 오류가 있으면 알려주십시오. 통찰력있는 답변과 자세한 내용은 전문가 수준 (Franck의 게시물 및 기타)으로 이동하십시오.
Antoni Parellada

그리고 어떻게 b를 계산 합니까?
mike

1
@ 마이크 와 지지체 벡터의 인덱스의 집합으로서의여기에서 찾을 수 있습니다 . b=ysmSαmymxmxsS(αi>0).
Antoni Parellada

@AntoniParellada 놀라운 답변 Antoni에게 많은 감사를드립니다. 그러나 당신은 이중 문제와 KTT 조건에 빠진 부분이 없습니까?
Xavier Bourret Sicotte

@XavierBourretSicotte 한동안은 작업 할 수 없습니다. 이러한 문제에 대한 대안적인 답변을 작성해 보시고, 알고 있다면 알려 주시면 의견을 개진 할 수 있습니다.
Antoni Parellada 2016 년

3

이중성 및 KTT 조건에 대한 의견

초기 문제

방정식 와 사이의 @Antoni의 게시물에서 픽업하여 원래 또는 초기 최적화 문제는 다음과 같은 형식임을 기억하십시오.(4)(5)

minw,bf(w,b)=minw,b 12||w||2s.t.  gi(w,b)=y(i)(wTx(i)+b)+1=0

라그랑주 방법

Lagrange multipliers의 방법을 사용하면 제한적인 최적화 문제를 제한되지 않은 형태로 바꿀 수 있습니다.

L(w,b,α)=12||w||2imαi[y(i)(wTx(i)+b)1]

여기서 은 Lagrangian 이라고 하고 는 Lagrangian multipliers 라고합니다 . L(w,b,α)αi

우리의 원초적 라그랑에 최적화 문제는 다음이된다 : (사용주의 , 우리는 또한 사용해야합니다으로 가장 엄격한 아니다 하고 ... 여기)minmaxinfsup

minw,b(maxαL(w,b,α))

이중 문제

@Antoni와 Proat. Patrick Winston이 도출 한 작업은 최적화 기능과 제약 조건이 다음과 같은 기술적 조건을 충족한다고 가정합니다.

minw,b(maxαL(w,b,α))=maxα(minw,bL(w,b,α))

이것은 우리가 와 대해 의 부분 도함수를 취하여 0과 같게 한 다음 결과를 라그랑지안의 원래 방정식에 다시 연결하여 동등한 것을 생성 할 수있게합니다. 형태의 이중 최적화 문제L(w,b,α)wb

maxαminw,bL(w,b,α)maxαimαi12i,jmy(i)y(j)αiαj<x(i)x(j)>s.t. αi0s.t. imαiy(i)=0

이중성과 KTT

과도한 수학적 기술을 사용하지 않고도 이러한 조건은 이중성과 Karush Kuhn Tucker (KTT) 조건의 조합으로 최적의 솔루션이 동일한 지 확인하면서 원시 문제 대신 이중 문제 를 해결할 수 있습니다. 우리의 경우 조건은 다음과 같습니다.

  • 원초 목적 및 불평등 구속 조건 함수는 볼록해야합니다
  • 동등 구속 조건 함수는 적절해야합니다
  • 제약은 엄격히 실현 가능해야합니다

그러면 있는데, 이는 초기 및 이중 문제에 대한 해결책입니다. 또한, 파라미터 는 아래 KTT 조건을 만족합니다.w,αw,α

wiL(w,α,β)=0(A)βiL(w,α,β)=0(B)αigi(w)=0(C)gi(w)0(D)αi0(E)

또한 일부 가 KTT 솔루션을 만족시키는 경우 초기 및 이중 문제에 대한 솔루션이기도합니다.w,α

상기 식 는 특히 중요하며 이중 상보성 조건 이라 불린다 . 이 의미하는 경우 후 구속을 의미 즉 그것이 평등보다는 불평등 보유 활성이다. 이것은 불평등 구속 조건이 동등 구속 조건으로 바뀌는 Antoni의 도출에서 방정식 뒤에있는 설명 입니다.α * i > 0 g i ( w * ) = 0 g i ( w ) 0 ( 2 )(C)αi>0gi(w)=0gi(w)0(2)

직관적이지만 비공식적 인 다이어그램

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

출처


2
대단히 감사합니다. 나는 그것을 빨리 읽고 나중에 더 많은 시간을 가지고 다시 돌아 오지만, 그것은 훌륭하게 들리고 내 대답에서 빠진 부분을 만집니다.
Antoni Parellada 2016 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.