[딥러닝]

[기계학습/인공지능] Support Vector Marchine(SVM)

bestFinanceDataAnalyist 2022. 6. 8. 23:26

#기계학습#딥러닝#머신러닝#인공지능#정보시스템공학과#컴퓨터공학과 #svm #이론공부#학교공부

https://wikidocs.net/24958 / https://knowable.tistory.com/46?category=931709

​의 글과 사진을 참고하였습니다. 문제가 있을 시 삭제하겠습니다.

 

​1. Large Margin Classifier

지난 블로그 글에서 Large Margin Classifer를 인용하여 정리하였습니다. O와 X를 분류하는 최적의 선(boundary)를 WT*X-b=0 이라고 설정합니다. 각 영역에서 최적의 선과 가장 가까운 점의 거리를 margin이라고 부릅니다. 이 마진을 얻기 위해 기준을 1과 -1이라고 지정합니다.

이때, w값은 margin에 영향을 줍니다. 주는 이유는 다음과 같습니다

o와 x(각 class 입력값)을 한 직선(X)에 올려놓고 최적의선(boundary : WT*X-b)를 놓았을 때 w에 따라 기울기가 달라지는 것을 알 수 있습니다. 기울기에 따라 margin의 크기에도 변화가 일어납니다.

이를 식으로 정리하면 다음과 같습니다. w와 margin이 반비례 관계임을 알 수 있습니다. margin을 최대화하기 위해서는 w를 최소화 하면 된다는 것까지 유츄할 수 있습니다.

 

(제곱하는 이유는 밑에 식을 변형할 때, w가 사라지지 않게 함이다.)


2. Large Margin Classifier -->> Primal From(minimize)

yi(wTxi - b)-1 을 g(x)로 보고 L(x)를 함수를 만든다. 구속조건이 있을때, 최적값을 찾는 방법은 지난 포스팅에 있다. 공식은 다음과 같다.

이 형태를 Primal form이라고 한다.


3. Large Margin Classifier -->> DualFrom(minimize)

위의 Primal form 형태를 미분한다.

미분을 하여 w와 aiyi곱의 합이 0이라는 사실을 알아내었다.

susbtitute w to L(w, b)

1번 : 위의 w값을 이용하여 전개하였다. wT는i로 받아주고 w는 j로 받아준다.

2번: w대신 위에 나온 식을 대입하여 전개하면, 1번과 2번식이 동일하다는 것을 알 수 있다.

3번: aiyi곱의 합이 0라는 것을 이용하여 이 역시 0이라는 것을 파악할 수 있다.

최종적으로 정리한 식은 다음과 같다.

이 형태를 Dual form이라고 한다.

아까 w와 margin이 반비례 관계임을 이용해. margin을 최대화하기 위해서는 w를 최소화 하면 된다는 것까지 알아낼 수 있었는데 이 식을 응용할 수 있다.

이 식을 Maximize 하면 L식의 optimization이 가능해진다.

w,b 값을 정리하면 다음과 같다.

여기서 b는 class1에 속한다고 가정하였다.


4. Interpretation from KKT condition(Karush-Kuhn-Tucker)

지난 포스팅에 정리한 KKT-condition 다시 복습하자면 다음과 같은 조건들이 있다.

아까 사용했던 경계면의 kkt조건을 추가한 그림은 다음과 같다.

boundary와 가장 가까운 점들의 선을 g라고 설정하면, 그 위에 있는 점들은 ai>0이라고 정의할 수 있다. 대부분의 점이 ai=0이 된다.

전체 x값을 i라고 두고, ai=0인것을 제외한 점을 k라 두고 식을 세우며 식이 보다 더 간단해진다.


5. Dual form advantage

지난 포스팅에 정리한 KKT-condition 다시 복습하자면 다음과 같은 조건들이 있다.

primal form과 비교하여 가장 큰 차이점은 parameter 개수이다. primal은 object function의 차원과 동일한 개수를 가지며, dual 은 알파값의 개수(N)이다. 또한, primal은 식을 minimize하며 dual값은 반대로 maximize하여 optimizaiton을 한다.

다만, dual를 더 많이 사용하는데 그 만큼의 이점이 있다.

1) D+1(object function 차원 개수) 보다 N개만 이용하여 최적화가 가능하다(D+1>N)

2) dual form을 이용하면 support vector 값을 알 수 있따. 대부분 ai=0이기 때문이다.

3) inner-product(내적값)으로 포현이 가능하여 보다 쉽게 문제를 풀 수 있다.


추가적으로, 전체노트를 원하신다면 댓글 달아주세요~

#기계학습 #딥러닝 #머신러닝 #인공지능 #정보시스템공학과 #컴퓨터공학과 #SVM #DUALFORM #이론공부 #학교공부