Support Vector Machine
- 데이터를 고차원 공간으로 맵핑하여, 데이터를 구분하는 알고리즘
- 초평면을 그린다
- 데이터를 정확히 분류하는 범위를 찾고, Margin을 최대화 되도록 구분
SVM (Support Vector Machine)은 Classification를 위한 Machine Learning 방법 중 하나입니다.
SVM은 지도 학습(Supervised Learning)으로, 분류 문제에서 케이스를 구분하는 분리자를 찾아서 케이스를 분류합니다.
SVM은 데이터를 고차원 특징 공간으로 매핑하여 데이터가 선형적으로 분리되지 않는 경우에도 카테고리별로 분류할 수 있도록 합니다.
그런 다음, 데이터를 위한 분리자를 추정합니다.
데이터는 분리자를 초평면으로 그릴 수 있도록 변형되어야 합니다.
두 가지 범주는 곡선으로 분리할 수 있지만 직선으로는 분리할 수 없는 선형적으로 분리되지 않는 데이터셋입니다.
이 데이터를 고차원 공간으로 변환하면, 두 범주 사이의 경계는 초평면으로 정의될 수 있습니다.
따라서 SVM 알고리즘은 새로운 예시를 분류하는 최적의 초평면을 출력합니다.
첫째, 어떻게 데이터를 변환하여 초평면으로 그릴 수 있을까요?
간단한 예를 위해, 데이터셋이 일차원 데이터인 경우를 상상해보겠습니다. 이것은 하나의 특징 x만 있는 것을 의미합니다.
즉 선형적으로 분리되지 않습니다. 그렇다면 여기서 어떻게 해결할 수 있을까요?
이를 위해 데이터를 이차원 공간으로 변환할 수 있습니다.
예를 들어, x를 새로운 공간에 매핑하는 함수를 사용하여 데이터의 차원을 늘릴 수 있습니다.
이제 데이터는 선형적으로 분리됩니다. 두 차원 공간에서 초평면은 양쪽에 각각 하나의 클래스가 있는 평면을 나눕니다.
이제 이 선을 사용하여 새로운 케이스를 분류할 수 있습니다.
기본적으로, 데이터를 고차원 공간으로 매핑하는 것을 커널링(kernelling)이라고 합니다.
변환에 사용되는 수학 함수를 커널 함수(kernel function)라고 하며, 선형, 다항식, RBF(Radial Basis Function) 및 sigmoid 함수와 같은 다양한 유형이 있습니다.
둘째, 변환 후 최적의 초평면 분리자를 어떻게 찾을 수 있을까요?
기본적으로 SVM은 데이터 집합을 두 클래스로 가장 잘 분리하는 초평면을 찾는 아이디어에 기반합니다.
우리는 이차원 공간에서 최적의 초평면을 두 클래스 간의 최대 분리 또는 간격을 나타내는 것으로 선택할 수 있습니다.
따라서 목표는 가능한 큰 간격을 가진 초평면을 선택하는 것입니다.
초평면에 가장 가까운 예시들은 서포트 벡터라고 합니다.
목표를 달성하기 위해 서포트 벡터만이 중요하며, 다른 트렌딩 예시들은 무시할 수 있습니다.
우리는 서포트 벡터와 가장 먼 거리에 있는 초평면을 찾으려고 합니다.
그러나 초평면은 최대 마진을 최대화하는 최적화 절차를 사용하여 학습 데이터에서 학습됩니다.
그리고 다른 많은 문제와 마찬가지로 이 최적화 문제는 경사 하강법을 사용하여 해결할 수 있습니다.
Support Vector Machine의 주요 장점
- 고차원 공간에서 정확도가 높다
- 의사결정 함수에 사용되는 훈련 포인트의 하위 집합인 서포트 벡터를 사용하여 메모리 효율적
Support Vector Machine의 단점
- 특성 수가 샘플 수보다 훨씬 많은 경우에는 과적합될 가능성이 있습니다.
- SVM은 일반적으로 대부분의 분류 문제에서 원하는 확률 추정을 직접 제공하지 않습니다.
- SVM은 데이터셋이 매우 큰 경우(예: 1,000개 이상의 행이 있는 경우) 계산적으로 효율적이지 않을 수 있습니다.
어떤 상황에서 SVM을 사용해야 할까요?
SVM은 이미지 분석 작업(예: 이미지 분류 및 필기 숫자 인식)에 적합합니다.
또한 SVM은 텍스트 마이닝 작업에서 매우 효과적이며, 특히 고차원 데이터를 처리하는 데 탁월한 성능을 발휘합니다.
예를 들어, 스팸 감지, 텍스트 카테고리 할당, 감성 분석에 사용됩니다.
SVM의 다른 응용 분야로는 유전자 발현 데이터 분류가 있습니다.
이는 고차원 데이터 분류의 강력함으로 인해 가능합니다.
또한 SVM은 Regression(회귀) 모델, 이상치 탐지, 클러스터링과 같은 다른 유형의 머신러닝 문제에도 사용할 수 있습니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
'AI' 카테고리의 다른 글
K-Means Clustering (0) | 2023.07.12 |
---|---|
Clustering (0) | 2023.07.11 |
sigmoid 함수 (0) | 2023.07.11 |
Logistic Regression (0) | 2023.07.11 |
Lab - Decision Trees (0) | 2023.07.10 |