SVM (Support vector machine)
지도 학습 알고리즘 중 하나로, 주어진 데이터를 바탕으로 클래스를 구분(분류)하는 모델
데이터를 두개의 클래스로 분류하기 위해 고차원 공간에서 최적의 초평면을 찾는 것이 목표.
초평면, 결정결계선, 서포트 벡터의 의미
- 초평면 (Hyperplane):
- SVM에서 데이터를 분리하는 결정 경계로 사용되는 개념입니다.
- 데이터 포인트들이 N차원 공간에 존재할 때, N-1 차원의 초평면으로 데이터를 나누게 됩니다.
- 예를 들어, 2차원 공간에서 초평면은 하나의 직선이 되며, 3차원 공간에서는 하나의 평면이 됩니다.
- 결정 경계선 (Decision Boundary):
- SVM에서 초평면이 데이터를 나누는 경계선을 말합니다.
- 이 경계선은 클래스를 분리하는 역할을 하며, 분류기가 새로운 데이터 포인트를 예측할 때 사용됩니다.
- 결정 경계선은 초평면을 따라 그려지는 선이나 경계면입니다.
- 서포트 벡터 (Support Vectors):
- SVM 모델을 구성하는 주요 요소 중 하나입니다.
- 서포트 벡터는 결정 경계선에 가까이 있는 데이터 포인트들을 말합니다.
- SVM은 서포트 벡터들에 의해 결정 경계선이 정해지며, 이들이 모델의 핵심적인 요소가 됩니다.
- 서포트 벡터들은 결정 경계선에 영향을 주는 주요 데이터 포인트들이므로, 모델의 효율적인 구축과 예측에 중요한 역할을 합니다.
간단히 정리하면, SVM에서 초평면은 데이터를 나누는 N-1 차원의 평면을 말하며, 결정 경계선은 이러한 평면이나 선으로 데이터 클래스를 구분하는 경계를 의미합니다. 서포트 벡터는 결정 경계선에 가까이 있는 주요 데이터 포인트들을 지칭하며, 이들이 모델의 학습과 예측에서 중요한 역할을 합니다.
결정 경계선을 이해하기 쉬운 예시를 들어 설명해 드릴게요.
예시: 과일 분류 문제
상상해보세요. 당신은 사과와 오렌지를 구분해야 하는 문제를 가지고 있습니다. 두 가지 과일을 구분하기 위해, SVM을 사용하여 데이터를 분석합니다. 이 문제를 2차원 평면으로 단순화해 보겠습니다. 여기서 X축은 과일의 무게, Y축은 과일의 당도입니다.
데이터 포인트
- 사과: 무게가 150g, 당도가 10
- 오렌지: 무게가 200g, 당도가 15
이렇게 각 과일의 무게와 당도에 대한 데이터를 수집합니다. 이제 이 데이터를 기반으로 사과와 오렌지를 분리하는 결정 경계선을 찾고 싶습니다.
결정 경계선
- 결정 경계선이란: 이 선(또는 평면)은 사과와 오렌지를 구분하는 기준입니다. 즉, 이 선을 기준으로 한 쪽에는 사과가, 다른 쪽에는 오렌지가 위치합니다.
- 시각화:
- 데이터 포인트들을 2차원 평면에 표시합니다.
- 사과와 오렌지의 데이터 포인트들이 특정 패턴을 이루며 배치됩니다.
- SVM은 이러한 패턴을 분석하여, 두 클래스 간의 최적의 구분선을 찾습니다.
서포트 벡터
- 서포트 벡터: 이 결정 경계선에 가장 가까이 위치한 데이터 포인트들입니다. 서포트 벡터는 결정 경계선의 위치를 결정하는 데 중요한 역할을 합니다.
- 이들은 결정 경계선에서 가장 가까운 지점에 위치하며, 결정 경계선이 이러한 서포트 벡터들로부터 일정한 거리를 유지하도록 설정됩니다.
전체 과정 요약
- 데이터 수집: 사과와 오렌지의 무게와 당도 정보를 수집합니다.
- 결정 경계선: 수집된 데이터를 바탕으로, 사과와 오렌지를 구분하는 선(결정 경계선)을 찾습니다.
- 서포트 벡터: 결정 경계선과 가장 가까운 데이터 포인트들을 서포트 벡터라고 합니다. 이 포인트들이 결정 경계선의 위치를 조정하는 데 사용됩니다.
결정 경계선은 새로운 과일의 무게와 당도가 주어졌을 때, 이 과일이 사과인지 오렌지인지 예측하는 데 사용되는 기준이 됩니다. 이 기준을 통해 과일을 올바르게 분류할 수 있습니다.
위의 예시에서는 2차원 평면에서의 문제를 다루고 있었기 때문에 "결정 경계선"이라는 용어를 사용했습니다. 이 경우, 결정 경계선은 직선으로 표현됩니다. 이제 초평면이 무엇인지, 그리고 어떻게 결정 경계선과 관련이 있는지를 설명해 보겠습니다.
초평면과 결정 경계선의 차이
- 초평면 (Hyperplane):
- 정의: 초평면은 N차원 공간에서 N-1차원의 평면을 의미합니다. 예를 들어, 3차원 공간에서는 초평면이 2차원의 평면이 됩니다.
- 용도: SVM에서는 데이터 포인트들을 분리하기 위해 초평면을 사용합니다. 이 초평면이 각 클래스 간의 경계를 형성합니다.
- 결정 경계선 (Decision Boundary):
- 정의: 결정 경계선은 SVM 모델이 데이터를 분류하기 위해 찾은 경계입니다. 이 경계선은 초평면의 2차원 표현으로, 실제로는 초평면이 모든 차원에서 결정 경계를 형성합니다.
- 용도: 결정 경계선은 새로운 데이터 포인트가 어떤 클래스에 속하는지 결정하는 데 사용됩니다.
2차원과 3차원에서의 차이
- 2차원 경우:
- 초평면: 2차원 공간에서 초평면은 1차원 직선입니다.
- 결정 경계선: 이 직선이 바로 결정 경계선입니다. 즉, 사과와 오렌지를 분리하는 직선입니다.
- 3차원 경우:
- 초평면: 3차원 공간에서 초평면은 2차원 평면입니다.
- 결정 경계선: 이 평면이 바로 결정 경계선입니다. 즉, 3차원 공간에서 두 클래스를 분리하는 평면입니다.
- N차원 경우:
- 초평면: N차원 공간에서 초평면은 N-1차원의 공간입니다.
- 결정 경계선: 초평면이 결정 경계선으로 작용하여 N차원 공간에서 클래스를 구분합니다.
예시를 통한 설명
- 2차원 예시:
- 2차원에서는 초평면이 직선이고, 이 직선이 결정 경계선입니다. 직선은 사과와 오렌지를 구분합니다.
- 3차원 예시:
- 3차원에서는 초평면이 평면입니다. 이 평면이 결정 경계선이 되어 3D 공간에서 사과와 오렌지를 구분합니다.
결론적으로, 초평면은 N차원 공간에서의 일반적인 개념이고, 결정 경계선은 이 초평면이 데이터의 분류를 위해 사용되는 구체적인 경계입니다. 2차원에서는 결정 경계선이 직선이지만, 3차원에서는 결정 경계선이 평면이 됩니다.
분류가 잘 되기 위해서는 초평면과 서포트 벡터의 사이의 거리가 멀어야함 이를 마진이라고 한다.
참고사항: KNN 을 적용할 때, 모든 컬럼들의 쌍의 그래프를 그려보고 각각의 그래프에서의 마진들을 계산한 후 가장 마진이 큰 그래프에 사용된 컬럼들로만 분류의 기준을 삼았었음
다시 정리하면,
마진, 코스트, 커널트릭의 의미와 중요성
1. 마진 (Margin)
- 정의: 마진은 결정 경계선(또는 초평면)과 가장 가까운 데이터 포인트(서포트 벡터)들 사이의 거리입니다.
- 중요성: SVM의 목표는 이 마진을 최대화하는 것입니다. 즉, 결정 경계선과 서포트 벡터 간의 거리를 최대한 넓게 하여 분류 성능을 향상시키려는 것이죠.
- 예시: 두 클래스가 선형으로 분리된 경우, 결정 경계선 양쪽에서 가장 가까운 포인트들 사이의 거리가 마진입니다. 마진이 클수록 모델이 새로운 데이터를 더 잘 일반화할 수 있습니다.
2. 코스트 (Cost)
- 정의: 코스트는 모델이 학습 데이터를 잘못 분류하는 것에 대한 페널티를 의미합니다. SVM에서는 주로 C라는 파라미터로 조절됩니다.
- 역할: C는 오차 허용 범위를 조절합니다. C가 크면 오차를 줄이는 데 집중하여 학습 데이터에 더 잘 맞추려 하고, C가 작으면 결정 경계선의 일반화를 강조하여 학습 데이터에 약간의 오차를 허용합니다.
- 예시: 데이터가 복잡하거나 노이즈가 많을 때 C를 크게 설정하면 모델이 학습 데이터에 과도하게 맞춰질 수 있습니다. 반대로 C를 작게 설정하면 모델이 너무 단순화되어 데이터에 충분히 맞지 않을 수 있습니다.
3. 커널 트릭 (Kernel Trick)
- 정의: 커널 트릭은 데이터를 비선형적으로 분리할 수 있는 방법입니다. 원래의 데이터 공간을 더 높은 차원으로 변환하여, 선형적으로 분리 가능하게 만듭니다.
- 역할: 실제로 데이터를 고차원 공간으로 변환하지 않고도, 선형 결정 경계선을 찾을 수 있게 해주는 수학적 기법입니다. 이는 계산 효율성을 높이면서 비선형 분리를 가능하게 합니다.
- 예시:
- 선형 데이터: 데이터가 이미 선형적으로 분리 가능하면 SVM은 기본적으로 직선이나 평면을 사용해 구분합니다.
- 비선형 데이터: 예를 들어, 원형 패턴을 가진 데이터가 있을 때, 커널 트릭을 사용하면 데이터를 고차원 공간으로 변환하여 직선으로 구분할 수 있습니다. 일반적으로 RBF(Radial Basis Function) 커널이나 다항식 커널을 사용합니다.
- 참고 블로그(그림만 참고):https://sanghyu.tistory.com/14
요약
- 마진: 결정 경계선과 서포트 벡터 사이의 거리. 마진을 최대화하는 것이 SVM의 목표입니다.
- 코스트: 데이터 분류 오류를 허용하는 정도를 조절하는 파라미터. C 값이 크면 오류를 줄이려 하고, 작으면 일반화를 강조합니다.
- 커널 트릭: 데이터를 고차원으로 변환하지 않고도 비선형 데이터 분리를 가능하게 해주는 기술. 커널 함수를 사용하여 데이터를 고차원으로 매핑하고, 선형 결정 경계를 찾습니다.
SVM 작동원리
데이터 준비 > 초형면 정의 > 마진 최대화 > 예측
SVM 장단점
SVM의 장점
- 효율적인 분류 성능:
- 정확한 분류: SVM은 마진을 최대화하여 클래스 간의 경계를 명확히 정의합니다. 이로 인해 분류 정확도가 높고, 오버피팅에 강한 특성을 보입니다.
- 고차원 데이터 처리: 데이터가 고차원일 때도 효과적입니다. 특히 텍스트 분류나 유전자 데이터와 같은 고차원 문제에서 잘 작동합니다.
- 커널 트릭을 통한 비선형 분리:
- 비선형 문제 해결: 커널 트릭을 사용하여 비선형 문제를 선형 문제로 변환하여 해결할 수 있습니다. 다양한 커널 함수(RBF, 다항식 등)를 통해 복잡한 데이터 패턴을 모델링할 수 있습니다.
- 모델의 안정성:
- 일반화 성능: 마진을 최대화하는 특성 덕분에 모델의 일반화 성능이 좋습니다. 이는 새로운 데이터에 대해서도 높은 예측 정확도를 유지하는 데 도움이 됩니다.
- 유연성:
- 다양한 용도: SVM은 분류뿐만 아니라 회귀 문제(SVR)에도 적용할 수 있습니다. 또한, 다양한 커널 함수를 활용해 다양한 데이터 패턴을 모델링할 수 있습니다.
SVM의 단점
- 계산 비용:
- 대규모 데이터 처리: 데이터셋이 크거나 특성이 많을 경우, SVM의 훈련 시간이 길어지고 메모리 소모가 커질 수 있습니다. 이는 SVM의 계산 비용이 높아질 수 있음을 의미합니다.
- 커널 함수: 커널 함수를 사용하면 고차원 공간으로의 변환 과정이 추가되어 계산 비용이 더 높아질 수 있습니다.
- 파라미터 조정의 어려움:
- 하이퍼파라미터 튜닝: C와 γ(감마)와 같은 하이퍼파라미터를 조정해야 하는데, 이 과정이 복잡하고 최적의 값을 찾기 어려울 수 있습니다. 하이퍼파라미터 튜닝에는 추가적인 시간과 노력이 필요합니다.
- 해석의 어려움:
- 모델의 해석: SVM은 결정 경계가 복잡할 수 있어 모델의 결과를 해석하기 어렵습니다. 특히 고차원 데이터에서는 모델의 동작을 이해하고 해석하는 것이 어려울 수 있습니다.
- 이진 분류의 제한:
- 다중 클래스 문제: SVM은 기본적으로 이진 분류 알고리즘입니다. 다중 클래스 문제를 해결하기 위해서는 일대일(one-vs-one) 또는 일대다(one-vs-all) 방식으로 변환해야 하는데, 이는 추가적인 복잡성을 초래할 수 있습니다.
요약
- 장점:
- 높은 정확도와 좋은 일반화 성능
- 비선형 문제를 해결할 수 있는 커널 트릭
- 다양한 용도와 유연성
- 단점:
- 대규모 데이터셋에서 높은 계산 비용
- 하이퍼파라미터 튜닝의 어려움
- 모델의 해석이 어려움
- 다중 클래스 문제 처리의 복잡성
SVM은 특정 상황에서는 매우 효과적이지만, 대규모 데이터셋이나 복잡한 모델 해석이 필요한 상황에서는 다른 알고리즘과의 비교가 필요할 수 있습니다.
'AI' 카테고리의 다른 글
파인튜닝과 RAG 차이, 언제 fine-tunning을 사용하고 RAG를 사용하나 (4) | 2024.09.24 |
---|---|
엔비디아 딥러닝 기초교육 수료 (7) | 2024.09.18 |
학습 모델 종류와 특징 (0) | 2024.08.01 |
이상치 (0) | 2024.07.26 |
머신러닝 알고리즘 종류 - K-최근접 이웃 알고리즘 (K-Nearest Neighbors, KNN) (0) | 2024.07.24 |