[AI] 선형 서포트 벡터 머신(SVM) 분류

2026. 3. 30. 22:39·AI/Machine Learning
반응형

들어가며

우리가 분류 문제를 해결할 때 일반적으로 로지스틱 회귀로도 잘 해결이 되지만

데이터가 고차원이고 분류하기 까다로우면 결정 경계가 애매해질 수 있다

이럴 때 쓰면 좋은 모델이 바로 서포트 벡터 머신이다

 

서포트 벡터 머신(SVM)은 분류, 회귀, 특이치 탐지 등 여러가지에서 사용가능한 다목적 머신러닝 모델이다

SVM은 그 중 분류 작업에서 높은 효율을 보이므로 이번 글에서는 선형 SVM 분류에 대해 알아볼 것이다

참고로 선형 분류라는 것은 데이터를 하나의 직선으로 나눌 수 있는 것을 의미한다

 

선형 SVM 분류

서포트 벡터 머신(SVM)을 활용한 분류를 SVC(Support Vector Classification)라고한다

SVC의 목표는 클래스 사이의 가장 폭이 넓은 도로를 찾는 것이다

그래프으로 보면 이해가 쉬울 것이다

위 그래프의 실선은 두 클래스를 나누는 결정 경계이다

이 직선은 두 클래스를 나누고 있을 뿐만 아니라 가장 가까운 샘플로부터 최대한 멀리 떨어져있다

이를 라지 마진 분류라고도 부른다

 

폭이 넓을수록 새로운 샘플이 들어왔을 때 여유 공간이 넓으니까

더 안정적으로 분류가 가능하다 즉 일반화 능력이 올라간다

 

결정 경계는 끝 쪽에 위치한 샘플에 의해 결정되며

뒤쪽에 훈련 샘플을 더 추가해도 결정 경계에는 영향을 미치지 않는다

 

하드 마진 분류

정확히 모든 샘플이 도로 바깥 쪽에 분류되어 있는 완벽한 선형 분리 상태라면

이를 하드 마진 분류라고 부른다

 

하지만 이는 이상치에 예민하며 일반화 성능이 떨어질 수 있다

위 그래프를 보면 이상치로 인해 마진이 매우 작아진 것을 볼 수 있다

이렇게되면 일반화 성능이 떨어진다는 것도 이해할 수 있다

 

이 문제를 해결하기 위한 한가지 아이디어는

도로의 폭을 가능한 넓게 유지하면서 마진 오류 사이의 적절한 균형을 잡아야한다

 

마진 오류란 샘플이 마진 안 쪽에 들어오거나 반대에 있는 경우를 말한다

마진 안 쪽에 있어도 분류는 잘 되었지만 결정 경계와의 여유가 없고 안정성이 떨어져 오류라고 판단한다

 

소프트 마진 분류

소프트 마진 분류는 어느정도의 마진 오류를 허용하며 마진을 설정하는 모델을 의미한다

하드 마진 분류처럼 빡빡하게 분류시키는 것이 아니라

어느정도 유연하게 모델을 분류하는 개념이다

 

소프트 마진 분류는 하이퍼파라미터 C를 사용해 마진을 적절히 설정한다

C는 규제강도 λ의 역수로

C가 커질수록 규제는 줄어들고 

C가 작아지면 규제가 커진다

 

C를 줄일 경우 마진 넓이가 커지며 과대적합의 위험이 줄어든다(규제가 커졌으니)

너무 많이 줄이게되면 과소적합이 될 위험도 있다

 

위 그래프는 C가 1일 때와 100일 때 마진 넓이의 차이를 보여준다

C=1인 경우 마진이 넓어지고 과대적합의 위험은 줄어들지만 마진 오류 발생 빈도가 커지게된다

C=100인 경우 마진은 좁아지고 마진 오류 빈도도 줄어든 것을 볼 수 있다

 

위의 모델의 경우 C=100인 모델이 1인 C=1인 모델보다 더 잘 일반화될 것이라고 판단 가능하다

적절한 하이퍼파라미터 설정값을 통해 일반화 성능을 올리는 것이 중요하다

 

마치며

이번 글에서는 SVM을 통한 분류 중 선형 분류에 대해 알아보았다

소프트 마진 분류에서 C가 변함에 따라 마진 간격과 일반화 정도가 어떻게 바뀌는 지

그 관계를 이해하는 데에 시간이 조금 걸렸다

결국 적당한 마진 오류를 허용하며 일반화 성능을 끌어올릴 적당한 하이퍼파라미터를 찾는 것이 중요하다

아직 결정 경계라는 것에대한 이해도가 부족한 것 같아 추가적인 공부를 해야할 것 같다고 느꼈다

반응형

'AI > Machine Learning' 카테고리의 다른 글

[AI] 비선형 서포트 벡터 머신(SVM) 분류  (0) 2026.04.05
[AI] 서포트 벡터 머신(SVM) 회귀  (0) 2026.03.31
[AI] 로지스틱 회귀(logistic regression)  (0) 2026.03.17
[AI] 릿지 회귀(ridge regression), 라쏘 회귀(lasso regression), 엘라스틱넷 회귀(elastic net regression)  (1) 2026.03.15
[AI] 학습 곡선(Learning Curve)  (0) 2026.03.15
'AI/Machine Learning' 카테고리의 다른 글
  • [AI] 비선형 서포트 벡터 머신(SVM) 분류
  • [AI] 서포트 벡터 머신(SVM) 회귀
  • [AI] 로지스틱 회귀(logistic regression)
  • [AI] 릿지 회귀(ridge regression), 라쏘 회귀(lasso regression), 엘라스틱넷 회귀(elastic net regression)
20puddle
20puddle
20puddle 님의 블로그 입니다.
  • 20puddle
    20puddle 님의 블로그
    20puddle
  • 전체
    오늘
    어제
    • 분류 전체보기 (100)
      • Spring boot (5)
      • git & github (5)
      • algorithm (47)
        • theory (3)
        • 배열 (7)
        • 연결 리스트 (3)
        • 스택 (5)
        • 큐 (3)
        • 덱 (2)
        • 기초 코드 (19)
        • BFS (5)
      • AI (43)
        • Machine Learning (35)
        • Deep Learning (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Aimers
    DL
    인공지능
    홀드아웃 검증
    list
    딥러닝
    Java
    ML
    AI
    연결리스트
    Spring Boot
    백준
    github
    그레디언트 클리핑
    알고리즘
    git
    주성분변환
    머신러닝
    게시판
    오프라인 학습
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
20puddle
[AI] 선형 서포트 벡터 머신(SVM) 분류
상단으로

티스토리툴바