또한 F-Margin의 값이 크면 클수록, 더 confident 하고 reliable한 prediction이라고 할 수 있다.
2.3 Geometric margin
2.2에서 functional 하게 margin을 정의 해보았다. 이번에는 Geometric Margin을 생각해보자. (이하 G-Margin)
위의 그래프를 살펴보자. 어떤 data(index = i)는
좌표에 위치 하고 있다. (
: position of data) 그 데이터와 hyperplane
과의 euclidean distance가
라고 하자.
추가개념 1에서 설명했듯이 W는 Hyperplane의 법선벡터이다. 그러므로 유닛 법선 벡터는
이 된다. 그림 참고우리는 거리와 법선벡터를 이용해 Hyperplane 위에 있는 점
(
) 을 다음과 같이 알 수 있다. 이는 Hyperlane 위에 있는 점이므로 다음을 만족 한다.
이 식을 정리 하면
값은 다음과 같다.
이 식의 결과는 positive training example 에만 적용이 된다. negative의 경우 값이 음수가 되기 때문에 이를 막기 위해 다음과 같이 정의 한다.
.................. (5)이 결과를 F-Margin에서 구한 결과와 비교해보자. 식 (4)와 식 (5)를 비교해보면
.................. (4)
................... (5)
일 경우 식 (4)와 (5)가 같은 식이 됨을 알 수 있다.즉 Geometric 하게 구한 Margin과 Functional 하게 구한 Margin이 서로 비슷한 경향을 보임을 알 수 있다.
3 The optimal margin classifier
사실 SVM에서 고려해야하는 Margin은 F-Margin 이든 G-Margin이든 가장 작은 값이다. 그 이유는 간단하다. 가장 작은 Margin만 고려해서 hyperplane을 생성하면 다른 training example들 간의 Margin은 고려할 필요가 없기 때문이다. 다시 말해 가장 가까운 training example을 정확하게 분류 할 수 있는 hyperplane은 나머지 example 또한 자명하게 분류 할 수 있다.
그렇다면 최적의 Margin을 가지는 hyperplane(classifier)은 어떻게 생성 할 수 있을까.
이라는 constraint는 모든 상황에서 항상 유효하지 않다 (non-convex) 그러므로 optimal margin classifier를 구하기 위해서는 F-Margin 대신에 G-Margin을 이용한다.
............ (6)
*
은
로부터 만든 constraint 이다.
여기서 또 한가지의 constraint를 걸어 줄 수 있다.
hyperplane의 성분 W,b를
과 같이 일정한 배수배로 조정을 해도 hyperplane의 성질이 변하지가 않는다. 그 이유는 식(3)에서 정의한
의 값은 sign값에 의해 결정되지 magnitude에 의해서 결정되는 것이 아니기 때문이다.
그렇기 때문에 우리는
를 적절히 조절해서
= 1 로 설정 할 수 있다는 이야기다.
위 그림을 참고하면,
= 1 로 설정해도 오른쪽처럼 전체적인 변동은 있지만 hyperplane은 동일한 역할을 수행한다.
그렇다면 식 (6)의 optimization 문제는 다음과 같이 간단화 될 수 있다.
optimization할 term을
으로 정의 하는 것은, 뒤에 나올 primal optimization problem 과 연관이 있는 듯하다 (아마 문제를 정의하기 유리한 form이기 때문일 것이다.) <- 이부분은 뒷부분이 공부된뒤 다시 기입
최종적으로 우리는 다음의 간단화 된 optimization 문제를 풀면 된다.
4 Lagrange duality
............. 이 부분은 optimization을 공부 하고...
naive하게 적어보자면
Lagrange duality를 이용해, vector를 support vector들과의 inner product로 표현 가능하게 변환 시킬수 있다.
이렇게 변환 하게 되면, kernel을 적용 하기에 유리한 모양이 되므로
kernel trick을 이용할 수 있게 되고, 보다 다양한 mapping function을 적용 할 수 있게 된다.
댓글남기기