머신러닝 스터디

[핸즈온 머신러닝 3판] 5장 서포트 벡터 머신

min-sk 2024. 11. 5. 13:34

 

서포트 벡터 머신(SVM)은 매우 강력할 뿐 아니라 선형이나 비선형 분류, 회귀, 특이치 탐지에도 사용할 수 있는 다목적 머신러닝 모델입니다.

5.1 선형 SVM 분류

 

이와 같은 경우 왼쪽 그림은 샘플을 잘 분류하였지만, 새로운 샘플에 대해서는 잘 작동하지 않습니다. 하지만 오른쪽 그림은 두 개의 클래스를 잘 분류하였고, 새로운 샘플에 대해서도 대체적으로 잘 작동할 것입니다. 이러한 분류를 라지 마진 분류라고 합니다.

도로 바깥쪽에 훈련 샘플을 더 추가해도 결정 경계에는 전혀 영향을 미치지 않습니다. 도로 경계에 위치한 샘플에 의해 전적으로 결정됩니다. 이런 샘플을 서포트 벡터라고 합니다.

 

5.1.1 소프트 마진 분류

모든 샘플이 도로 바깥쪽에 올바르게 분류되어 있다면 이를 하드 마진 분류라고 합나다.

하드 마진 분류는 데이터가 선형적으로 구분될 수 있어야 제대로 작동하며 이상치에 민감하다는 단점을 지니고 있는데, 이런 문제를 피하기 위해서는 좀 더 유연한 모델이 필요합니다. 

1. 도로의 폭을 가능한 한 넓게 유지
2. 마진 오류 사이에 적절한 균형 잡기

 

-> 이를 소프트 마진 분류라고 합니다.

 

5.2 비선형 SVM 분류

선형 SVM 분류기는 효율적이며 아주 잘 작동하지만 선형적으로 분류할 수 없는 데이터셋이 많습니다.

비선형 데이터셋을 다루는 한 가지 방법은 다항 특성과 같은 특성을 더 추가하는 것입니다.

x1과 같은 선형 그래프 만으로 오른쪽에 있는 데이터셋을 선형적으로 구분할 수는 없습니다.

하지만 x2 = &(x1)^2&을 추가하여 만들어진 2차원 데이터셋은 완벽하게 선형적으로 구분할 수 있습니다.

5.2.1 다항식 커널

다항 특성을 추가하는 것을 간단하고 모든 머신러닝 알고리즘에서 잘 작동합니다. 하지만 낮은 차수의 다항식은 매우 복잡한 데이터셋을 잘 표현하지 못하고 높은 차수의 다항식은 굉장히 많은 특성을 추가하므로 모델을 느리게 만듭니다.

 

다행히도 SVM을 사용할 땐 커널 트릭이라는 거의 기적에 가까운 수학적 기교를 적용할 수 있습니다.

커널 트릭은 실제로는 특성을 추가하지 않으면서 매우 높은 차수의 다항 특성을 많이 추가한 것과 같은 결괴를 얻게 해줍니다.

5.2.2 유사도 특성

비선형 특성을 다루는 또 다른 기법은 각 샘플이 특정 랜드마크와 얼마나 닮았는지 측정하는 유사도 함수로 계산한 특성을 추가하는 것입니다. 앞에서 본 1차원 데이터셋에 두 개의 랜드마크 x1 = -2, x1 = 1을 추가하고 y=0.3인 가우스 방사 기저 함수(RBF)를 유사도 함수로 정의하겠습니다. 

 

이렇게 하면 차원이 매우 커져 변환된 훈련 세트가 선형적으로 구분될 가능성이 높습니다. 단점은 훈련 세트에 있는 n개의 특성을 가진 m개의 샘플이 m개의 특성을 가진 m개의 샘플로 변환된다는 것입니다.

 

5.2.3 가우스 RBF 커널

어떤 커널은 특정 데이터 구조에 특화되어 있습니다.

문자열 커널은 가끔 텍스트 문서나 DNA 서열을 분류할 때 사용됩니다.

ex) 문자열 서브시퀀스 커널이나 레벤슈타인 거리 기반의 커널

 

5.2.4 계산 복잡도

 

5.3 SVM 회귀

SVM을 분류가 아니라 회귀에 적용하는 방법은 목표를 조금 바꾸는 것입니다. 일정한 마진 오류 안에서 두 클래스 간의 도로 폭이 가능한 한 최대가 되도록 하는 대신, SVM 회귀는 제한된 마진 오류(즉, 도로 밖의 샘플) 안에서 도로 안에 가능한 한 많은 샘플이 들어가도록 학습합니다. 도로의 폭은 하이퍼파라미터 &\varepsilon&으로 조절합니다.

&\varepsilon&을 줄이면 서포트 벡터의 수가 늘어가서 모델이 규제됩니다. 마진 안에서는 훈련 샘플이 추가되어도 모델의 예측에는 영향이 없는데, 그래서 이 모델을 &\varepsilon&에 민감하지 않다고 말합니다.

 

5.4 SVM 이론

선형 SVM 분류기 모델은 단순히 결정 함수를 계산해서 새로운 샘플 x의 클래스를 예측합니다. 결괏값이 0보다 크면 예측된 클래스 y은 양성 클래스(1)가 됩니다.

 

는 편향(b)와 가중치(w)를 분리한 식인 와 같습니다.

 

선형 SVM 분류기 훈련은 마진 오류 횟수를 제한하면서 도로(마진)을 가장 넓게 만드는 가중치 벡터  편향  찾으면 됩니다. 즉,

도로 폭 조정(만 관여, 는 관여하지 않는다), 가중치 가 작을 수록 마진이 커집니다.

 

마진 오류도 줄이려면 결정 함수가 모든 양성 훈련 샘플에서는 1보다 크고, 음성 훈련 샘플에서는 -1보다 작으면 됩니다.

 

 (양성 클래스)일 때, ,  (음성 클래스)일 때, 

 

 

 

하드 마진과 소프트 마진 문제는 모두 선형적인 제약 조건이 있는 볼록 함수의 이차 최적화 문제입니다. 이런 문제를 콰드라틱 프로그래밍(QP) 문제라고 합니다.

 

SVM를 훈련하는 한 가지 방법은 QP 솔버를 사용하는 것입니다. 또 다른 방법은 경사 하강법을 사용하여 힌지 손실 또는 제곱 힌지 손실을 최소화하는 것입니다.

 

5.5 쌍대 문제

원 문제라고 하는 제약이 있는 최적화 문제가 주어지면 쌍대 문제라고 하는 깊게 관련된 다른 문제로 표현할 수 있습니다.

일반적으로 쌍대 문제의 해는 원 문제 해의 하한 값이지만 어떤 조건 하에서는 원 문제와 똑같은 해를 제공합니다. 다행히도 SVM 문제는 이 조건을 만족시킵니다. 따라서 원 문제 또는 쌍대 문제 중 하나를 선택하여 풀 수 있습니다.

5.5.1 커널 SVM

2차원 데이터셋에 2차 다항식 변환을 적용하고 선형 SVM 분류기를 변환된 이 훈련 세트에 적용한다고 생각해봅시다.