Connect with us

AI 101

서포트 벡터 머신이 무엇인가?

mm

서포트 벡터 머신이 무엇인가?

서포트 벡터 머신은 유형의 기계 학습 분류기이며, 아마도 가장 인기 있는 유형의 분류기 중 하나입니다. 서포트 벡터 머신은 특히 수치 예측, 분류 및 패턴 인식 작업에 유용합니다.

서포트 벡터 머신은 데이터 포인트 사이에 결정 경계를 그음으로써 작동하며, 데이터 포인트를 클래스로 분류하는 데 가장 좋은 결정 경계를 찾는 것을 목표로 합니다. 서포트 벡터 머신을 사용하는 목표는 결정 경계와 데이터 포인트 사이의 거리가 최대가 되도록 하는 것입니다. 이것은 서포트 벡터 머신(SVM)이 작동하는 방식에 대한 간단한 설명이지만, SVM이 작동하는 방식과 작동 논리를 더 깊이 이해하기 위해 시간을 들여보겠습니다.

서포트 벡터 머신의 목표

X와 Y 축으로 지정된 특징에 따라 그래프에 여러 데이터 포인트가 있는 것을 상상해 보세요. 그래프의 데이터 포인트는 대략 두 가지 클러스터로 나눌 수 있으며, 데이터 포인트가 속한 클러스터는 데이터 포인트의 클래스를 나타냅니다. 이제 두 클래스를 서로 분리하는 그래프에 선을 그리려고 합니다. 이 선은 하이퍼플레인으로 알려져 있습니다.

서포트 벡터 머신을 도시를 구역으로 나누는 “도로”를 만드는 것으로 생각할 수 있습니다. 도로 한쪽에 있는 모든 건물(데이터 포인트)은 한 구역에 속합니다.

서포트 벡터 머신의 목표는 데이터 포인트를 나누고 하이퍼플레인을 그리는데만 있는 것이 아닙니다. 결정 경계와 데이터 포인트 사이에 가장 큰 여유 공간 또는 가장 많은 공간을 갖는 하이퍼플레인을 그리는데 있습니다. “도로” 비유로 돌아가면, 도시 계획자가 고속도로 계획을 그릴 때, 고속도로가 집이나 다른 건물에 너무 가까이 있지 않기를 원합니다. 여유 공간이 클수록 분류기가 예측에 대해 더 확신을 가질 수 있습니다. 이진 분류의 경우 올바른 하이퍼플레인을 그리면 두 클래스 사이에 정확히 중간에 있는 하이퍼플레인을 선택하는 것입니다. 결정 경계/하이퍼플레인이 한 클래스에서 더 멀면 다른 클래스에서 더 가까울 것입니다. 따라서 하이퍼플레인은 두 클래스 사이의 여유 공간을 균형있게 해야 합니다.

분리 하이퍼플레인 계산

서포트 벡터 머신은 어떻게 최적의 분리 하이퍼플레인/결정 경계를 결정합니까? 이것은 수학적 공식으로 가능한 하이퍼플레인을 계산함으로써 달성됩니다. 우리는 하이퍼플레인을 계산하는 공식에 대해 자세히 다루지 않겠지만, 선은 유명한 기울기/선 공식으로 계산됩니다.

Y = ax + b

한편, 선은 점으로 구성되므로, 하이퍼플레인은 모델의 가중치와 특징의 집합을 수정한 지정된 오프셋/바이어스(“d”)에 의해 결정되는 제안된 하이퍼플레인에 평행한 점의 집합으로 설명될 수 있습니다.

SVM은 많은 하이퍼플레인을 그립니다. 예를 들어, 경계선은 하나의 하이퍼플레인이지만, 분류기가 고려하는 데이터 포인트도 하이퍼플레인에 있습니다. 데이터셋의 특징에 따라 X의 값이 결정됩니다. 예를 들어, 사람들의 키와 몸무게가 많은 데이터셋이 있다면, “키”와 “몸무게” 특징이 “X”를 계산하는 데 사용될 것입니다. 제안된 하이퍼플레인과 하이퍼플레인의 양쪽에 있는 다양한 “서포트 벡터”(데이터 포인트) 사이의 여유 공간은 다음 공식으로 계산됩니다.

W * X – b

SVM의 수학에 대해 더 읽을 수 있지만, SVM에 대한 더 직관적인 이해를 찾고 있다면, 목표는 제안된 분리 하이퍼플레인/결정 경계와 평행하게 그려지는 다른 하이퍼플레인(데이터 포인트가 있는 하이퍼플레인) 사이의 거리를 최대화하는 것입니다.

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

다중 클래스 분류

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

비선형 분리

위에서 설명한 과정은 데이터가 선형적으로 분리될 수 있는 경우에 적용됩니다. 그러나 실제로 데이터셋은 거의 완전히 선형적으로 분리될 수 없습니다. 따라서 SVM 분류기를 사용할 때 종종 두 가지 기술을 사용해야 합니다. 소프트 마진과 커널 트릭. 다른 클래스의 인스턴스가 혼합되어 있는 상황을 고려해 보세요. 분류기가 이러한 인스턴스를 어떻게 처리할 수 있을까요?

비선형적으로 분리할 수 없는 데이터셋을 처리하는 하나의 전략은 “소프트 마진” SVM 분류기를 사용하는 것입니다. 소프트 마진 분류기는 몇 개의 잘못 분류된 데이터 포인트를 허용합니다. 그것은 데이터 포인트의 클러스터를 서로 분리하는 선을 그리려고 시도합니다. 소프트 마진 SVM 분류기는 정확도와 여유 공간의 두 가지 요구 사항을 균형 있게 하는 분리선을 생성하려고 시도합니다. 그것은 오분류를 최소화하면서 여유 공간을 최대화하려고 시도합니다.

SVM의 오류 허용 범위는 “C”라는 하이퍼파라미터를 조작함으로써 조정될 수 있습니다. C 값은 분류기가 결정 경계를 그리는데 고려하는 서포트 벡터의 수를 제어합니다. C 값은 오분류에 대한 페널티로, C 값이 클수록 분류기가 고려하는 서포트 벡터가 적어지고 여유 공간이狭く 됩니다.

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

커널 트릭은 데이터셋의 특징에 비선형 수학적 함수를 적용함으로써 작동합니다. 커널 트릭의 적용 결과는 비선형 결정 경계가 생성됩니다. SVM 분류기가 더 이상 선형 결정 경계만을 그리도록 제한되지 않기 때문에, 데이터 분포를 더 잘 캡처하고 오분류를 최소화하는 곡선 결정 경계를 그리기 시작할 수 있습니다. SVM의 두 가지 인기 있는 비선형 커널은 RBF와 다항식 함수입니다. 다항식 함수는 기존 특징의 조합을 생성하는 반면, RBF는 중앙 점/점에서 모든 다른 점까지의 거리를 측정하여 새로운 특징을 생성합니다.

Blogger and programmer with specialties in Machine Learning and Deep Learning topics. Daniel hopes to help others use the power of AI for social good.