본문 바로가기
공부/핸즈온 머신러닝

SVM 추가

by 계굴개굴 2021. 2. 23.

추가사항

hyperplane 식은 x∙w-d=0 이 이와같은 방식으로 나옴 

x 점들의 영역을 positive space , 원 들의 영역을 negative space 라 칭하게됨

즉 데이터를 집어넣어 값의 부호를 확인함으로써 어느 부분에 속하는지 확인을 할 수 있다.

제공되는 dataset T 가 이런 모양이라고 하자 (n 차원의 Q개의 데이터)

-d 를 +w0 로 쓴거

 

delta 를 hyperplane 에서 가장 가까운 data 까지의 거리라고 했을때 이식이 성립함.

위 식에서 양변을 delta로 나눠주면 이 식이 된다.

 

 

양변에 di 를 곱해주고 한쪽으로 넘기면 어떤 클래스간에 성립하는 식이 된다.

 

각 클래스간 경계에서 가장 가까운 data 를 x+ x- 라고 하자

1번식 - 2번식을 하면 3번식이 나옴

1번식은 margin data 를 넣었을 때고 2 번식은 hyperplane 상의 점을 넣었을 때다.

 

 

 

W 가 단위 벡터가 아니라고 하면 단위 벡터로 만들어서

식을 전개시키면 

맨 밑에 식과 같은 상태로 만들수 있는데

이 값이 1이다.

 

 

즉 이게 1 이다 (x+)-(xㅠ) <- 요게 마진 

 

 

그래서 마진의 식은 1/(w 절대값) 으로 구해진다. 

 d+ 랑 d- 는 같기때문에 total margin 은 이렇게 나온다.

즉 마진을 최대화 하기 위해서는 W를 최소화 하면 된다.

 

옆 식을 만족하는 즉 제일 가까운 data를 support vector 라고 한다.

그때의 거리를 마진이라고 한다.

마진을 최대로 한다는것은 W 를 최소화 한다는 것이다. 또 W를 최소화 한다는것은 W의 제곱을 최소화 하는것과 같은 것이므로 목적함수를 다음과 같이 표시할 수 있다.

단 제약조건이 존재하는데 모든 training data 가 아래식을 만족해야 한다.

이 식을 쿼드라틱 프로그래밍이라 하는데 라그랑주 승수법을 이용해서 푼다.

 

라그랑주 승수법

여기 있음

 람다는 0보다 커야됨.

 

 

근데 g 가 Q 개 있음

 

 

이때 Q 개의 람다를 이렇게 표현 (상수)