부본 서포트 벡터 머신이란 무엇입니까? - Unite.AI
Rescale 미팅 예약

AI 101

서포트 벡터 머신이란 무엇입니까?

mm
업데이트 on

서포트 벡터 머신이란 무엇입니까?

서포트 벡터 머신(Support Vector Machine)은 기계 학습 분류기의 한 유형으로, 가장 널리 사용되는 분류기 중 하나입니다. 서포트 벡터 머신은 수치 예측, 분류, 패턴 인식 작업에 특히 유용합니다.

지원 벡터 머신은 데이터 포인트를 클래스로 가장 잘 구분하는(또는 가장 일반화할 수 있는) 결정 경계를 목표로 데이터 포인트 간에 결정 경계를 그리는 방식으로 작동합니다. 서포트 벡터 머신을 사용할 때 목표는 포인트 사이의 결정 경계가 가능한 한 커서 주어진 데이터 포인트와 경계선 사이의 거리가 최대화되는 것입니다. 방법에 대한 간단한 설명입니다. 서포트 벡터 머신(SVM) 하지만 SVM이 어떻게 작동하는지 더 자세히 알아보고 작동 이면의 논리를 이해하는 데 시간을 좀 투자하겠습니다.

서포트 벡터 머신의 목표

X축과 Y축으로 지정된 기능을 기반으로 여러 데이터 포인트가 있는 그래프를 상상해 보십시오. 그래프의 데이터 포인트는 느슨하게 두 개의 서로 다른 클러스터로 나눌 수 있으며 데이터 포인트가 속한 클러스터는 데이터 포인트의 클래스를 나타냅니다. 이제 두 클래스를 서로 분리하는 선을 그래프 아래로 그리고 싶다고 가정합니다. 한 클래스의 모든 데이터 포인트는 선의 한쪽에 있고 다른 클래스에 속하는 모든 데이터 포인트는 다른 쪽에 있습니다. 라인의. 이 구분선을 초평면이라고 합니다.

서포트 벡터 머신은 도시 전체에 "도로"를 만들고 도로 양쪽에 있는 구역으로 도시를 분리하는 것으로 생각할 수 있습니다. 도로의 한쪽에 있는 모든 건물(데이터 포인트)은 하나의 구역에 속합니다.

서포트 벡터 머신의 목표는 초평면을 그리고 데이터 포인트를 나누는 것뿐만 아니라, 가장 큰 여백 또는 분할선과 주어진 데이터 포인트 사이에 가장 많은 공간을 가진 데이터 포인트를 분리하는 초평면을 그리는 것입니다. "도로" 은유로 돌아가서, 도시 계획가가 고속도로에 대한 계획을 그리는 경우 고속도로가 집이나 다른 건물에 너무 가까워지는 것을 원하지 않습니다. 고속도로와 양쪽 건물 사이의 여유가 많을수록 좋습니다. 이 마진이 클수록 분류기는 예측에 대해 더 "확신"할 수 있습니다. 이진 분류의 경우 올바른 초평면을 그리는 것은 서로 다른 두 클래스의 중간에 있는 초평면을 선택하는 것을 의미합니다. 결정 경계/초평면이 한 클래스에서 멀어지면 다른 클래스에 더 가까워집니다. 따라서 초평면은 서로 다른 두 클래스 간의 마진 균형을 유지해야 합니다.

분리 초평면 계산

그렇다면 서포트 벡터 머신은 최상의 분리 초평면/결정 경계를 어떻게 결정할까요? 이것은 수학 공식을 사용하여 가능한 초평면을 계산함으로써 달성됩니다. 초평면 계산 공식은 다루지 않습니다. 매우 자세하게, 그러나 선은 유명한 기울기/선 공식으로 계산됩니다.

Y = 도끼 + b

한편, 선은 점으로 구성됩니다. 즉, 모든 초평면은 다음과 같이 설명할 수 있습니다. 제안된 초평면에 평행한 점의 집합으로, 모델의 가중치와 지정된 오프셋/바이어스로 수정된 기능 집합에 의해 결정됩니다. ("디").

SVM은 많은 초평면을 그립니다. 예를 들어 경계선은 하나의 초평면이지만 분류자가 고려하는 데이터 포인트도 초평면에 있습니다. x의 값은 데이터 세트의 기능을 기반으로 결정됩니다. 예를 들어 많은 사람의 키와 몸무게가 포함된 데이터 세트가 있는 경우 "키" 및 "체중" 기능은 "X"를 계산하는 데 사용되는 기능입니다. 제안된 초평면과 분할 초평면의 양쪽에서 발견되는 다양한 "지원 벡터"(데이터 포인트) 사이의 마진은 다음 공식으로 계산됩니다.

승 * 엑스 – 비

SVM 이면의 수학에 대해 더 많이 읽을 수 있지만, SVM에 대한 보다 직관적인 이해를 찾고 있다면 목표는 제안된 분리 초평면/경계선과 이에 평행하게 실행되는 다른 초평면 사이의 거리를 최대화하는 것임을 알면 됩니다. 데이터 포인트가 발견되는 위치).

사진: Wikimedia Commons를 통한 ZackWeinberg, CC BY SA 3.0(https://commons.wikimedia.org/wiki/File:Svm_separating_hyperplanes_(SVG).svg)

다중 클래스 분류

지금까지 설명한 프로세스는 이진 분류 작업에 적용됩니다. 그러나 SVM 분류기는 비이진 분류 작업에도 사용할 수 있습니다. XNUMX개 이상의 클래스가 있는 데이터셋에서 SVM 분류를 수행할 때 더 많은 경계선이 사용됩니다. 예를 들어 분류 작업에 XNUMX개가 아닌 XNUMX개의 클래스가 있는 경우 두 개의 구분선을 사용하여 데이터 포인트를 클래스로 나누고 단일 클래스를 구성하는 영역은 하나가 아닌 두 개의 구분선 사이에 놓입니다. 두 클래스와 결정 경계 사이의 거리를 계산하는 대신 분류자는 이제 결정 경계와 데이터 세트 내의 여러 클래스 사이의 마진을 고려해야 합니다.

비선형 분리

위에서 설명한 프로세스는 데이터가 선형 분리 가능한 경우에 적용됩니다. 실제로 데이터 세트는 거의 완전히 선형적으로 분리되지 않습니다. 즉, SVM 분류기를 사용할 때 종종 다음을 사용해야 합니다. 두 가지 다른 기술: 소프트 마진 및 커널 트릭. 다른 클래스의 "클러스터"에서 한 클래스에 속하는 일부 인스턴스와 함께 서로 다른 클래스의 데이터 요소가 혼합된 상황을 고려하십시오. 분류자가 이러한 인스턴스를 처리하도록 하려면 어떻게 해야 합니까?

비선형적으로 분리 가능한 데이터 세트를 처리하는 데 사용할 수 있는 한 가지 전술은 "소프트 마진" SVM 분류기를 적용하는 것입니다. 소프트 마진 분류기는 잘못 분류된 몇 가지 데이터 포인트를 허용하여 작동합니다. 각 클래스에 속하는 대부분의 인스턴스를 포함하므로 데이터 포인트 클러스터를 서로 가장 잘 구분하는 선을 그리려고 합니다. 소프트 마진 SVM 분류기는 분류기의 두 가지 요구 사항인 정확도와 마진의 균형을 맞추는 구분선을 만들려고 시도합니다. 마진을 최대화하면서 오분류를 최소화하려고 합니다.

오류에 대한 SVM의 허용 오차는 "C"라는 하이퍼 매개변수를 조작하여 조정할 수 있습니다. C 값 컨트롤 결정 경계를 그릴 때 분류기가 고려하는 지원 벡터의 수입니다. C 값은 오분류에 적용되는 페널티입니다. 즉, C 값이 클수록 분류기가 고려하는 지원 벡터가 적어지고 마진이 좁아집니다.

커널은 데이터를 속이고 비선형 방식으로 변환합니다. 사진: Wikmedia Commons를 통한 Shiyu Ju, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Kernel_trick_idea.svg)

Kernel Trick은 데이터 세트의 기능에 비선형 변환을 적용하여 작동합니다. Kernel Trick은 데이터 세트의 기존 기능을 사용하고 비선형 수학 함수를 적용하여 새로운 기능을 생성합니다. 이러한 비선형 변환을 적용한 결과는 비선형 결정 경계입니다. SVM 분류기는 더 이상 선형 결정 경계를 그리는 데 제한되지 않으므로 지원 벡터의 실제 분포를 더 잘 캡슐화하고 오분류를 최소화하는 곡선 결정 경계를 그리기 시작할 수 있습니다. 가장 널리 사용되는 두 가지 SVM 비선형 커널은 Radial Basis Function과 Polynomial입니다. 다항식 함수는 모든 기존 기능의 다항식 조합을 생성하는 반면, 방사형 기저 함수는 중심점과 다른 모든 점 사이의 거리를 측정하여 새로운 기능을 생성합니다.

전문 분야의 블로거 및 프로그래머 기계 학습 깊은 학습 주제. 다니엘은 다른 사람들이 사회적 이익을 위해 AI의 힘을 사용하도록 돕기를 희망합니다.