[48일차]SVM(Support Vector Machine) - 선형 이론

김준석·2024년 1월 31일

SVM(Support Vector Machine) - 선형 이론

선형 SVM

선형 SVM 예시

삼각형과 원을 나누는 선

아래 두 경우 중 원과 삼각형을 더 잘 나눈 경우는 어디일까.

잘 나눈다는 정의 필요
• 정확히 나누었는가? (빨강, 파랑)
• 일반화가 잘 되었는가? (파랑)

Margin 과 Support Vector

왜 파란색이 더 일반화가 좋다고 했을까?

파란 분류 선의 경우
• 원과 삼각형을 잘 나누고 있을 뿐 아니라,
• 각 클래스의 데이터 샘플로부터 가장 멀리 위치해 있음
• 그렇기 때문에 일반화 성능이 좋음

• 샘플로부터 분류 선까지의 거리를 마진(margin)이라고 함

• 이 샘플은 학습 데이터 중 일부에 해당하며
• 마진을 구성하는 이 데이터(원, 세모)를 서포트 벡터(support vector)라고 함

선형 SVM의 목적

  • SVM은 두 데이터를 나누는 직선(고차원의 경우 초평면) 을 찾고자 함

  • 이때, 찾고자 하는 직선(혹은 초평면)과 평행한 두 개의 직선(초평면)을 만들 수 있고

  • 이 두 직선 사이의 거리를 마진이라 함

  • SVM의 경우 마진을 최대화 하는 최적 직선을 만드는 것이 목적

    • 이때의 직선을 ʻ최대 마진 초평면ʼ이라고 함
  • 최대 마진 초평면의 선형 방정식 수식은 아래와 같음

  • w와 b는 학습을 통해 찾아야 하는 값으로
    • w는 최대 마진 초평면의 법선 벡터
    • 그리고 b는 편향값에 해당

---

## 최적화 문제 1

이제 위에서 말한 w와 b를 찾아보자.

## 최적화 문제 2

---

하드 마진 SVM과 소프트 마진 SVM

앞선 예시 데이터는 모든 데이터가 이쁘게 나뉘어 있음
따라서 어떠한 오분류도 허용하지 않고 완벽한 선형 모델로 분리가 가능
이를 하드 마진 SVM 이라고 함

하지만, 일반적으로는 어느 정도 데이터가 섞인 경우가 흔함
• 따라서 완벽한 선형 분리가 불가능한 경우가 ↑

  • 이러한 경우 어느 정도의 오분류를 허용하면서 오차 발생에 따른 패널티를 비용 함수에 부과
    • 이를 통해 일반화 성능을 올릴 수 있음
    • 이를 소프트 마진 SVM 이라고 함

슬랙 변수 (slack variable)

슬랙 변수란?

소프트 마진 SVM에서 사용하는 개념으로
완벽하게 선형 분리되지 않는 데이터에 대해 SVM을 적용할 수 있도록 함

  • 각 데이터 포인트(i)당 하나의 슬랙 변수가 할당되며
    • 이 변수는 해당 데이터 포인트가 마진을 얼마나 위반하는지를 수치적으로 나타냄
  • 마진을 위반하지 않은 데이터 : 슬랙변수i = 0
    • 서포트 벡터와
    • 서포트 벡터보다 멀리 있는 데이터
  • 마진을 위반한 데이터
    • 마진 경계 ~ 결정 경계 : 0 < 슬랙변수i ≤ 1
    • 결정 경계 이후 : 1 < 슬랙변수i
    • 이 경우는 올바르지 못한 클래스로 분류 됨

소프트 마진 SVM의 최적화 함수

0개의 댓글