인공지능 실습

서포트 벡터 머신 (SVM) 시뮬레이터

두 그룹을 가장 안전하게 나누는 「최적의 선」은 무엇일까요? 여백(Margin)을 가장 넓게 확보하는 선을 긋는 SVM의 원리를 시각적으로 체험해 봅니다.

Core Mechanism

SVM은 어떻게 최적의 선을 찾을까요?

SVM은 경계선과 데이터 사이의 「여백(Margin)」을 최대한 넓게 만드는 것을 목표로 합니다.

1단계

결정 경계 (Decision Boundary)

두 그룹(클래스) 사이를 나누는 기준선(Hyperplane)을 찾습니다. 집단의 평균 위치가 아니라 서로 맞닿은 쪽의 데이터를 보고 자리를 잡습니다.

2단계

마진 최대화 (Maximize Margin)

기준선 양쪽으로 선을 평행하게 확장하여 만들어지는 빈 공간인 「마진(Margin)」이 가장 넓어지도록 선의 방향과 위치를 조정합니다.

3단계

서포트 벡터 (Support Vectors)

이때 마진의 끝(경계)에 닿거나 그 안쪽으로 들어와서 선의 위치를 떠받치는 데이터 포인트들을 서포트 벡터라고 부릅니다. 마진 바깥에 여유 있게 떨어진 점은 아무리 많아도 선을 움직이지 못합니다.

Interactive Simulator

SVM 시각화 시뮬레이터

데이터를 배치하고 「학습」 버튼을 눌러 보세요. SVM이 선을 움직이며 마진을 찾아가는 과정을 볼 수 있습니다.

배치할 데이터의 클래스를 선택하고 캔버스를 클릭하세요.
0단계데이터 입력 1·2단계마진 최대화 훈련 3단계서포트 벡터 추출

자료

적당함

학습

1.0

표준 마진

작은 C = 너그러운 벌점 😌 큰 C = 엄격한 벌점 😡

결정 경계

w₁x₁ + w₂x₂ + b = 0
결정 경계 마진 (w·x + b = ±1) 서포트 벡터 마진 안으로 들어온 데이터
Advanced Theory

SVM의 숨겨진 기하학적 원리

수식과 파라미터가 실제로 어떤 의미를 가지는지 조금 더 깊이 알아볼까요?

결정 경계와 마진의 크기

시뮬레이터에서 보았던 방정식 w₁x₁ + w₂x₂ + b = 0 은 두 클래스를 나누는 결정 경계선(실선)입니다.

SVM은 이 선을 기준으로 양쪽에 w·x + b = ±1 이라는 마진(점선)을 만듭니다.

마진의 폭(Width) = 2 / ||w||

즉, 모든 데이터가 마진 밖에 놓인다는 조건 아래에서 여백을 최대화(Maximize Margin)한다는 것은 가중치 벡터인 w의 크기를 최소화하는 것과 같습니다. 조건을 빼고 w만 줄이면 w = 0 이 되어 선 자체가 사라집니다.

규제 파라미터 C (Cost)

현실의 데이터는 완벽하게 나누어지지 않는 경우가 많습니다. 이때 마진 안으로 들어오거나 아예 반대편으로 넘어간 데이터를 얼마나 봐줄지 조절하는 것이 규제 파라미터 C입니다.

C는 무엇의 약자일까요?

주로 Cost(비용/벌점)를 의미합니다. 모델이 오차를 냈을 때 치러야 하는 「벌점」의 크기라고 생각하면 이해하기 쉽습니다.

  • C가 클 때 (High Cost):

    「오차 하나당 벌점 10,000점!」 😡
    벌점이 너무 무서워서 모델이 오차를 절대 안 내려고 깐깐하게 선을 긋습니다. 그 결과 여유 공간인 마진의 폭이 더 좁아집니다 (Hard Margin).

  • C가 작을 때 (Low Cost):

    「오차 하나당 벌점 0.1점~」 😌
    모델이 「뭐 현실 데이터에 노이즈가 좀 있을 수도 있지~」 하고 오차를 너그럽게 봐주면서 마진을 넓고 여유롭게 가져갑니다 (Soft Margin).

Mathematical Notation

왜 수식에서 y 대신 x₂를 쓸까요?

수학 시간에 배운 일차함수(y = ax + b)와 머신러닝의 수식 표기법은 조금 다릅니다. 그 이유를 알아볼까요?

y는 이미 「정답지」로 예약됨

머신러닝에서 알파벳 y는 데이터가 속한 클래스(예: +1 또는 -1, 개 또는 고양이)를 의미하는 「정답 라벨」로 고정되어 쓰입니다. 세로축을 y라고 부르면 좌표와 정답이 혼동될 수 있습니다.

x는 「데이터의 특징」

데이터가 가진 속성들을 묶어 x라고 부릅니다. 2차원 화면에서 첫 번째 특징(가로 위치)은 x₁, 두 번째 특징(세로 위치)은 x₂가 됩니다. 즉, 전통적인 x, y축이 이름만 바뀐 것입니다.

무한한 차원 확장성

실제 인공지능이 다루는 데이터는 특징이 수백 개를 넘는 경우도 흔합니다. x, y, z를 쓰면 알파벳이 부족해지지만, x₁, x₂, ... x₁₀₀ 방식의 아래첨자를 쓰면 특징이 몇 개든 하나의 규칙적인 수식으로 표현할 수 있습니다.

방정식 요약 정리

수식 -2.20x₁ + 1.52x₂ + 0.15 = 0 에서 x₁은 캔버스의 가로 좌표를, x₂는 캔버스의 세로 좌표를 의미합니다.

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1. 서포트 벡터 머신(SVM)에서 「서포트 벡터」가 의미하는 것은 무엇인가요?