본문 바로가기

인공지능

마진 유형 (Types of Margin in SVM)

마진 유형 (Types of Margin in SVM)

1. 정의 (Definition)

마진(Margin) 서포트 벡터 머신(SVM)에서 결정 초평면(Hyperplane) 서포트 벡터(Support Vector) 간의 거리를 의미하며, 데이터 분류의 정확도와 일반화 성능을 결정하는 핵심 요소이다.
마진의 유형은 **하드 마진(Hard Margin)** **소프트 마진(Soft Margin)**으로 나뉜다.

 

2. 마진 유형 비교 (Comparison of Margin Types)

구분 하드 마진 (Hard Margin) 소프트 마진 (Soft Margin)
정의 데이터가 완벽하게 선형 분리되는 경우 적용 일부 오차를 허용하여 현실적인 데이터 분류 가능
오차 허용 여부 오차 허용 X (완벽한 분리) 일부 오차 허용
적용 데이터 노이즈가 없는 데이터 노이즈가 있는 데이터
일반화 성능 낮음 (과적합 위험) 높음 (과적합 방지 가능)
수식
슬랙 변수 (ξ) 사용하지 않음 사용 오차 허용량)
과적합 가능성 높음 낮음
사용 사례 이상치가 없는 실험 데이터 금융, 의료, 자연어 처리 노이즈가 많은 데이터

결론: 현실 세계에서는 데이터에 노이즈가 존재하기 때문에 **소프트 마진(Soft Margin)** 일반적으로 사용된다.

 

3. 하드 마진 (Hard Margin)

특징

  • 데이터가 완벽하게 선형 분리되는 경우에 적용.
  • 결정 초평면(Hyperplane) 오차 없이 데이터를 분류.
  • 노이즈가 없는 경우 성능이 뛰어나지만, 현실적인 데이터에서는 적용이 어렵다.
  • 과적합(Overfitting) 위험이 높다.

공식 

 

 

 

시각적 예제

           [하드 마진 SVM]

    --------------------------------

           | ×  ×  ×  

           | ×  ×  ×  

           | ×  ×  ×  

  • 선형적으로 완벽하게 분리된 데이터.

한계점

  • 현실적인 데이터에서는 노이즈(Outliers) 중첩된 데이터가 존재하여 적용이 어려움.
  • 새로운 데이터에 대한 일반화 성능(Generalization Performance) 낮을 가능성이 있음.

 

4. 소프트 마진 (Soft Margin)

특징

  • 일부 오차를 허용하여 일반화 성능을 향상.
  • 노이즈가 포함된 데이터에도 적용 가능.
  • 서포트 벡터 일부가 결정 초평면에 가깝거나 초평면을 넘어갈 있도록 허용.
  • 과적합을 방지하기 위해 **슬랙 변수(Slack Variable,ξ)** 도입.

공식 

시각적 예제

           [소프트 마진 SVM]

    --------------------------------

           | ×  ×  ×  

           X | ×  ×  ×  

           X | ×  ×  ×  

     (일부 데이터가 초평면을 넘어감)

 

  • 일부 데이터가 초평면을 넘어가도 허용됨.

 

장점

  • 현실적인 데이터 처리 가능 (노이즈, 이상치 허용).
  • 새로운 데이터에 대한 일반화 성능이 높음.
  • 하드 마진보다 유연하게 데이터 분류 가능.

단점

  • 슬랙 변수(ξ) 조정해야 최적의 성능을 얻을 있음.
  • 최적의 C 값을 찾기 위해 하이퍼파라미터 튜닝 필요.

5. 마진 유형 선택 기준 (How to Choose a Margin Type?)

상황 추천 마진 유형 설명
완벽한 선형 분리 데이터 하드 마진 (Hard Margin) 데이터가 완전히 분리되면 하드 마진 적용 가능
노이즈가 많은 데이터 소프트 마진 (Soft Margin) 일부 오차를 허용해야 현실적인 분류 가능
고차원 데이터 소프트 마진 (Soft Margin) 커널 기법과 함께 사용하여 최적화
과적합을 방지하려면? 소프트 마진 (Soft Margin) 오차 패널티를 조정하여 최적의 일반화 성능 도출

결론:

  • 이상치가 없고 완벽하게 분리 가능한 경우 하드 마진
  • 이상치가 존재하거나 현실적인 데이터 분류 소프트 마진
  • 일반적으로 SVM에서는 소프트 마진을 많이 사용함.

 

6. 마진 최적화 구현 (Implementation in Python)

🔹 SVM 하드 마진 구현

 

from sklearn.svm import SVC

import numpy as np

import matplotlib.pyplot as plt

 

# 데이터 생성

X = np.array([[1,2], [2,3], [3,3], [5,5], [6,6], [7,7]])

y = np.array([1, 1, 1, -1, -1, -1])

 

# 하드 마진 SVM 모델 (C 값이 매우 )

model = SVC(kernel='linear', C=1000)

model.fit(X, y)

🔹 SVM 소프트 마진 구현

# 소프트 마진 SVM 모델 (C 값이 작음)

soft_model = SVC(kernel='linear', C=1.0)  # C 작을수록 소프트 마진 적용

soft_model.fit(X, y)

 

  • C 값이 클수록 하드 마진, 작을수록 소프트 마진을 적용.

7. 최신 이슈 트렌드 (Trends)

  • AutoML 기반 SVM: 마진 최적화를 자동화하는 하이퍼파라미터 튜닝 기법.
  • 퀀텀 SVM (Quantum SVM): 양자 컴퓨팅을 이용한 초고속 마진 최적화.
  • SVM 딥러닝 융합: CNN-SVM, RNN-SVM 하이브리드 모델 개발.

 

8. 결론 (Conclusion)

항목 설명
정의 결정 초평면과 서포트 벡터 간의 거리
마진 유형 하드 마진(오차 없음) vs. 소프트 마진(일부 오차 허용)
공식
적용 사례 금융, 의료, 자연어 처리 다양한 분야에서 사용
최신 트렌드 퀀텀 SVM, AutoML 기반 최적화 증가

최종 결론:

  • 현실적인 데이터에는 소프트 마진(Soft Margin) 일반적으로 적합하다.
  • 마진 최적화를 통해 SVM 모델의 일반화 성능을 향상시킬 있다.