: find a linear hyperplane ! 데이터를 양분할 수 있는 것.
=> 머신러닝에서 가장 많이 사용
SVM - Maximum Margin Classification
- Support Vector(hyper plane으로부터 가장 가까운 점들)
- Margin = decision boundary로부터 가장 가까운 데이터 까지의 거리
- Margin!! 그걸 최대화 하는 hyper plane을 선택!
- Margin이 클 수록 generalization에러가 낮아지는 경향
-> 작을 경우, overfitting의 가능성
- 실제로도 좋은 성능 ! 이론도 뒷받침 !!
Linear SVM : separable case
- 각 class라벨이 +1, -1로 주어질 경우,
- 람다가 0보다 클때, training instance X는 yi(w*x+b)-1=0인 경우, hyberplane b1, b2 상에 위치
- 이러한 training instance 들을 = support vector
- hyperplane의 w, b 값은 support vector에 의해서만 결정됨 !! 다른건 X
- 주어진 Lagrangian primal문제는 dual문제로도 변경이 가능.
- 람다 값이 0인 데이터(support vector가 아닌 데이터)는 결정경계에 영향 X
Linear SVM : non-separable case
- 왜 주목 : 서로 섞여 있는 문제에서 어떤 hyper를 찾아도 perfect하지 않으니까!
- Soft Margin!!
- 작은 오차를 허용하여 decision boundary를 구함. = 오차허용만큼 margin은 크게 만들수 O
- 오차와 margin간의 trade-off 관계에 대한 조절 필요
- 오차를 위해 slack variable 도입!! = linear이 seperable하지 않을때~
- 새로운 목적함수, 모수C를 이용해 margin과 error의 trade-off 조절!
- seperable case와 마찬가지로 Lagrangian dual통해 풀이 ok
separable case vs non-separable case
- 둘다 같은 형태의 결정경계를 도출!
- 다만, 차이점 존재
: support vector on boundary
: bounded support vector
- 고차원 특성 공간으로 mapping해서 선형으로 분류할 수 있음
- feature mapping!!
- 얼마나 고차원 ? : 고차원으로 mapping할수록 두 mapped feature vector의 내적 계산에 너무 많은 자원
kernel trick
- Linear SVM은 입력벡터의 내적에만 의존
- 따라서 , kernel function은 데이터를 간접적으로 고차원으로 사영!
- 벡터가 복잡하므로 내적을 kernel함수로 정의하는 것 = kernel method!! zms wnfrl
- kernel 함수의 종류: linear / polynomial of power p / Gaussian (무한차원)