[.7 .24] SVM : Support Vector Machin

2023. 7. 31. 15:19Class review

SVM(Support Vector Machine)

 

주어진 데이터를 가장 잘 분류하는 초평면(hyperplane)을 찾는 알고리즘으로, 기본적으로 선형 문제를 해결하는데 최적화되어 있습니다. 하지만 비선형 문제를 풀기 위해 차원을 늘릴 수 있으며, 이를 통해 SVM은 비선형 문제에도 적용할 수 있습니다. 차원을 늘리면 데이터를 선형적으로 분리할 수 있게 되는데, 이를 커널 트릭(kernel trick)이라고 합니다.

SVM은 두 클래스 사이의 간격(margin)을 최대화하는 결정 경계(decision boundary)를 찾는 것이 목표입니다. 커널 트릭은 원래 데이터 공간의 비선형 특성을 고려하여 새로운 고차원 공간으로 데이터를 맵핑합니다. 이때 사용되는 함수를 커널 함수라고 하는데, 가장 널리 사용되는 커널 함수 중 하나는 RBF(Radial Basis Function) 커널입니다. RBF 커널은 노말 디스트리뷰션(가우시안 커널)을 사용하여 데이터를 고차원으로 맵핑합니다.

 

주요한 커널 함수

 

1. 선형 커널 (Linear Kernel)

커널 트릭을 사용하지 않음을 의미합니다. 원래의 데이터 공간에서 선형 분류기를 사용하는 것입니다.

 

2. 다항식 커널 (Polynomial Kernel)

실제로 특성을 추가하지 않지만 다항식 특성을 추가한 것과 같은 효과를 얻을 수 있습니다.

 

3. 가우시안 RBF(Radial Basis Function) 커널

다항식 커널의 확장 버전으로, 입력 벡터를 차원이 무한한 고차원으로 매핑합니다. 감마와 d는 하이퍼파라미터로, 감마값이 높을수록 결정 경계가 더 유연해지며, 감마값이 낮을수록 훈련 데이터에 많이 의존합니다.

 

 

 

 


 

 

 

 


비선형 문제를 해결하기 위해 차원을 늘리는 것은 좋은 점이지만, 고차원으로 데이터를 맵핑하면 계산량이 증가하는 문제가 발생합니다. 따라서 비교적 작은 차원에서도 성능을 유지하면서 비선형 문제를 푸는 방법으로 커널 트릭을 사용합니다. 하지만 커널 트릭을 사용하더라도 데이터 손실이 발생할 수 있으므로 적절한 커널 함수를 선택하고 하이퍼파라미터(c, gamma 등)를 조정하여 최적의 모델을 구축하는 것이 중요합니다. 

- 데이터 손실이 생기는 것은 피할 수 없는 문제이나, 데이터간의 분포를 잃지 않는 데에 초점을 맞춰야 함

 

 

 

SVM의 하이퍼파라미터(c, gamma)

 

C (Cost 또는 Penalty):

C는 SVM 모델에서 오분류에 대한 패널티를 조절하는 매개변수입니다.
C가 작을수록 오분류에 대한 패널티가 낮아지며, 오분류를 허용하는 정도가 높아집니다. 이는 결정 경계를 좀 더 유연하게 만들어서 일반화 성능을 향상시키는 효과가 있습니다.
C가 클수록 오분류에 대한 패널티가 커지며, 오분류를 최소화하려고 합니다. 이는 결정 경계를 더 엄격하게 만들어서 학습 데이터에 더 적합하게 만드는 효과가 있습니다.
적절한 C 값을 찾는 것은 모델의 성능을 극적으로 개선시키는데 중요합니다. C 값이 너무 작으면 과소적합(underfitting)이 발생할 수 있고, C 값이 너무 크면 과적합(overfitting)이 발생할 수 있습니다.

 

 

 

gamma:


gamma는 RBF(Radial Basis Function) 커널의 폭을 조절하는 매개변수입니다.
RBF 커널은 고차원으로 데이터를 맵핑하는데 사용되는데, gamma는 이러한 맵핑의 영향 범위를 결정합니다.
gamma가 작을수록 넓은 영역이 영향을 받으며, 결정 경계가 부드러워집니다. 이는 과소적합에 가까운 모델을 만들 수 있습니다.
gamma가 클수록 좁은 영역이 영향을 받으며, 결정 경계가 더욱 복잡해집니다. 이는 과적합에 가까운 모델을 만들 수 있습니다.
적절한 gamma 값을 찾는 것도 모델의 성능에 큰 영향을 미치는데, gamma 값이 너무 작으면 과소적합이 발생할 수 있고, gamma 값이 너무 크면 과적합이 발생할 수 있습니다.
C와 gamma는 모델의 복잡도와 일반화 성능에 영향을 주는 중요한 매개변수입니다. 이러한 하이퍼파라미터들을 조정하여 최적의 모델을 찾는 것이 SVM 모델의 성능을 높이는데 중요합니다. 주어진 데이터와 문제에 따라서 적절한 C와 gamma 값을 설정하는 것이 필요합니다.

 

 

 

 


 

 

 

 

최근에는 딥러닝 기술의 발전으로 인해 SVM은 비교적 복잡한 비선형 문제를 푸는데에는 딥러닝보다 성능이 떨어지는 경우가 많아졌습니다. 딥러닝은 데이터를 end-to-end로 학습하는 데 강점이 있으며, 많은 데이터와 계산 자원을 활용하여 복잡한 문제를 효과적으로 해결할 수 있습니다. 그러나 SVM은 아직도 특정 분야에서 유용하게 사용되며, 소규모 데이터셋이나 특정 조건에서는 성능이 우수할 수 있습니다. 따라서 문제의 특성과 환경에 맞게 SVM과 딥러닝을 조화롭게 활용하는 것이 중요합니다.