히비스서커스의 블로그

[기계학습 5강] Decision boundary with margin 본문

Theory/Machine Learning

[기계학습 5강] Decision boundary with margin

HibisCircus 2021. 4. 19. 01:53
728x90

 내용들은 edwith(KAIST Open Online Course)의 인공지능 및 기계학습 개론 1 Chap. 5강 내용을 기반으로 재구성하였음을 먼저 밝힙니다.

 

 

 

 

Decision Boundary를 설정하는데 있어서 우리는 Sigmoid Function이 Bayes risk가 적으므로 더 좋다는 것을 배웠었다. Decision Boundary는 모델의 성능을 결정하는 아주 중요한 요소이다. 이제 확률론을 근거하여 Decision Boundary에 접근해보자.

 

Decision Boundary with Probability


 

위의 그림에서 빨간점과 파란점을 구분하는 Decision Boundary을 선형으로 긋는다고 하였을 때 당연히 우리는 빨간점과 파란점 사이에 선을 그을 것이다. 하지만 그 선들 중에도 여러 가지가 있을 텐데 가장 좋은 Decision Boundary를 생각해보자. 그럴 경우는 당연히 점들로부터 가장 멀리 떨어져 있는 Decision Boundary일 것이다. 우리는 점과 Decision Boundary의 거리를 Margin이라고 해보자.

 

 

Decision Boundary with Margin


이제 우리는 가장 큰 margin을 가지는 Decision Boundary를 찾아볼 것인데 우선 3개의 점을 선택해보자. 빨간점 2개를 선택하여 두 점을 지나는 선을 그려보고 이와 평행한 선이 파란점을 지나도록 하자. 그리고 평행한 두 선과 평행하면 등분하는 중간 선을 하나 지정해주자. 이는 가장 큰 margin을 가지는 Decision boundary가 되는 것이다. 이를 위해 vector의 값이 필요한 것이므로 Surpport Vector Machine이라고 하는 것이다. 

 

그렇다면 왜 3개의 vector를 필요로 하는지 살펴보자. Decision Boundary line은 다음과 같은 식으로 나타난다.

 

$w \cdot x + b = 0$

 

여기서 w는 x가 2차원이므로 2개의 값($x_1, x_2$)을 가지고 b는 바이어스로 1개의 값을 가지므로 파라미터가 3개가 필요하므로 3개의 미지수를 풀기 위해 을 3개의 vector가 필요한 것이다. 이를 통해 최적의 Decision Boundary를 구할 수 있는 것이다.

 

 

파란색 점들을 Poistive Case(y의 값이 양수)의 형태라고 한다면 Decision Boundary의 법선 벡터가 가르켜는 방향으로 점들이 대입되므로 항상 양의 값들을 가지게 된다.

 

$w \cdot x + b > 0$

 

빨간색 점들을 Negative Case(y의 값이 음수)의 형태라고 한다면 Decision Boundary의 법선 벡터가 가르켜는 방향의 반대방향으로 점들이 대입되므로 항상 음의 값들을 가지게 된다.

 

이때 Positive Case에 대해서는 $y$를 +1의 형태로 모델링을 하고 Negative Case에 대해서는$Y$를 -1의 형태로 모델링을 한다고 하자. 이때의 confidence level을 다음과 같이 나타내보면

 

$(w \cdot x_j + b) y_j$

 

Positive Case에 대해서나 Negative Case에 대해서 모두 양수의 값을 가지게 된다. 우리는 confidence level의 값이 가장 큰 값을 가지길 원하는 것이다.

 

 

 

Margin Distance


Decision Boundary를 $x$에 대한 함수 $f(x)$로 나타내보면

 

$f(x) = w \cdot x + b$

 

와 같이 나타나게 된다. 

Decision Boundary위의 점인 $x_p$점을 Decision Boundary 식에 대입을 하면 0이 되므로

 

$ f(x_p) = w \cdot x_p + b = 0 $

 

이 될 것이다. 또한, Decsion Boundary를 기준으로 positive 방향에 있는 $x$를 Decision Boundary 식에 대입하면 양수가 나오는데 이를 a라 한다면

 

$ f(x) = w \cdot x + b = a, a > 0 $

 

와 같이 표현할 수 있다.  $x_p$와 $x$의 관계를 살펴보면

 

$ x = x_p + r \frac{w}{\left \| w \right \|}, f(x_p) = 0 $

 

인데 식 $f(x) = w \cdot x + b$에 대입하면

 

$f(x) = w \cdot x + b = w(x_p + r \frac{w}{\left \| w \right \|}) + b = w \cdot x_p + b + r \frac{ww}{\left \| w \right \|} = r \left \| w \right \|$

 

이 되어 결국에는 $a$가 되는 것이다. 

 

 

 

Maximizing the Margin


앞서 좋은 Decision Boundary는 margin을 최대화할 때라고 하였다. 위의 식을 margin($r$)에 대해 나타내면

 

$r = \frac{a}{\left \| w \right \|}$

 

와 같이 나타나는데

 

 

우리는 양면을 고려해야 하므로 다음과 같이 나타낼 수 있다.

 

$max_{w, b} 2r = \frac{2a}{\left \| w \right \|}$, ($s.t.(wx_j + b )y_j \geq a, \forall j$)

 

의 식에서 a는 임의의 상수이므로 고려해주지 않고 분모 $w$를 최대화하는 것은 역수를 하여 분자 $w$의 값을 최소화하는 것과 동일하므로

 

$min_{w, b} \left \| w \right \| = \sqrt(w_{1}^{2} w_{2}^{2})$, ($s.t.(wx_j + b)y_j \geq 1, \forall j$)

 

이와 같이 나타낼 수 있다.

 

 

 

Support Vector Machine with Hard Margin


 

 

Hard margin은 어떠한 에러도 허용되지 않는 margin이다. 현실에서는 항상 에러를 포함하기에 현실성이 없다. 이를 위해서 우리는 2가지 전략이 존재한다. 첫번째로 soft margin을 도입하는 것인데 Decision boundary는 선형이라고 가정하고 에러들에 대해서는 일부 인정하는 것이다. 두번째는 Decision boudnary를 비선형으로 하여 hard margin을 만들어 에러가 하나도 없게 하는 것이다. 이는 억지로 데이터에 classifier를 끼워맞춘 것과 같은 격이다.

 

 

 

 

-히비스서커스-

728x90