개발/머신러닝

[요약] 핸즈온 머신러닝 - 05. SVM

소년택이 2022. 5. 24. 03:26

SVM

기본 성질과 특성

  • 클래스 사이에 가장 넓은 마진을 가지는 분류기를 찾는 과정 (= large margin clasification).
  • 결정경계는 경계에 위치한 샘플에 의해 전적으로 결정 : 이 샘플이 서포트 벡터 SV.
  • 마진 밖에 위치한 훈련 샘플은 결정 경계에 영향을 주지 않음.
  • 스케일에 민감 : 스케일링에 따라 SV 의 개수가 달라질 수 있고, 마진의 폭이 달라질 수 있으며, 결정경계의 기울기가 달라진다.

 

구분

하드 마진 분류

  • 모든 샘플이 마진 영역 밖에 위치.
  • 이상치에 민감
    • 하드 마진 분류가 불가능 할 수 있다.
    • 일반화가 어려운 결정경계가 성립할 수 있다.

소프트 마진 분류

  • 마진의 크기와 마진오류의 트레이드 오프.
  • 마진 오류가 있더라도 일반화가 쉬운 적절한 결정 경계를 구함.
  • "최적 해"를 위해 오분류도 허용 함.

 

선형 SVM

  • 결정 경계면이 선형인 SVM.
  • 간단하지만 실제 세계를 잘 반영하지 못한다.
  • 하이퍼 파라미터 C : 마진의 폭에 반영.

 

비선형 SVM

다항 특성의 추가

  • 선형으로는 해결하기 힘든 요소가 많음.
  • 선형 특성을 (제곱 등으로) 가공한 비선형 특성을 만들어 추가하면 선형 모델을 그대로 이용하되 비선형으로 사용할 수 있다.
  • 비선형 특성을 만드는 과정에서 연산량이 어머어마하게 늘어남 --> 커널 트릭 이용.

 

다항식

  • 기존 특성을 제곱, 세제곱, 서로 곱하여 비선형 특성을 만듬.
  • 비선형 특성을 이용하여 선형 다항식으로 계산함.
  • 과대 적합 시 차수를 낮추고, 과소 적합 시 차수를 올린다.
  • 하이퍼파라미터 C로 낮은 차수 대비 높은 차수의 영향도를 조정한다.

 

유사도 함수

  • 특정 지점 (또는 샘플)을 선택하여 랜드마크로 삼고, 랜드마크와 얼마나 닮았는지를 구하여 분류.
  • 가우시안 함수등을 이용하여 랜드마크에 가까운 정도로 결정 경계를 구함.
  • 하이퍼파라미터 
    • 감마 값으로 가우시안 함수의 폭을 조정한다. 감마가 높을 수록 좁은 (스팟 형태의) 결정 경계를 지닌다.
    • C 가 높을 수록 고차 방정식의 형태(복잡한 결정 경계)를 나타낸다. 

 

커널 트릭

다항 특성을 추가하면 계산이 복잡해자고 연산량이 엄청나게 늘어난다. 하지만 수식이 최종적으로 단순한 형태로 전개되는 경우 복잡한 계산을 피할 수 있다. 이런 변조 방식을 커널이라하고, 수학적 기교를 이용해 계산을 단순화 하거나 실제로는 다항 특성을 추가하지 않는것을 커널 트릭이라 한다. 커널 트릭을 이용하면 연산량이 (거의) 늘어나지 않는다.

 

SVM 회귀

  • 마진 안에 최대한 많은 샘플이 들어가도록 학습하면 결정 경계가 회귀의 형태를 띄게 된다.
  • 이를 SVM 회귀라 한다.
  • 마진 안에 새로운 훈련 샘플이 추가 되어도 모델의 예측에 영향이 없다. 

 

SVM 의 수학적 이론

결정함수

$\textbf{w}^T\textbf{x}+b$ 에 대하여...

  • $\hat{y}=0 if \textbf{w}^T\textbf{x}+b < 0$
  • $\hat{y}=1 if \textbf{w}^T\textbf{x}+b \geq 0$

SVM 분류기를 훈련한다는것은 하드 마진 또는 마진을 가능한한 크게 갖는 (소프트 마진) 결정함수를 구하는 것이다. 따라서 결정함수의 기울기($\left\| \textbf{w} \right\|$)가 작을 수록 마진이 늘어난다.

 

목적 함수

결정함수를 최적화 하기 위해 연산이 가능하며 같은 근을 가지는 형태로 변조한 함수를 목적 함수라고 한다.

ex) $max\frac{2}{\left\| \textbf{w} \right\|} \to min\frac{1}{2}\textbf{w}^T\textbf{w}$

하드 마진은 norm 의 최솟값을, 소프트 마진은 norm 의 최솟값에 마진을 얼마나 위반할지 정하는 슬랙 변수와 마진 오류를 제한하는 하이퍼파라미터 C의 곱을 더한 값의 최솟값을 구하는 문제로 일반적인 근은 없으며 다양한 기법이 있지만 ...