※ 본 내용은 Coursera, Machine Learning - Andrew Ng 강의, 강의자료를 바탕으로 작성하였습니다.

 

<Classification>

- Classification이란?

regression과 더불어 supervised learning의 대표적인 종류 중 하나로, 

개념적인 값으로 분류하는 것이다.

ex) 이메일이 스팸인지 아닌지, 종양이 양성인지 음성인지.

 

binary classificaiton과 multiclass에 대한 classification 모두 가능하다.

<Logistic Regression>

- hypothesis, 어떤 model을 사용할 것인지.

1. 선형모델? -> (x)

선형모델이 적합하지 않은 이유

빨간 수직선 좌측의 데이터만 보면, 언뜻 선형 모델만으로 설명이 가능할 것처럼 보인다.

y = ax+b와 같은 직선을 찾고, 그 값을 기준으로 0.5 이상이면 양성 그렇지 않으면 음성으로 분류가 가능할 것 같다.

 

그러나 빨간 수직선 우측처럼 새로운 자료가 추가된다면 직선이 변화할 것이고 분류에 적합하지 않은 것을 확인할 수 있다. 

 

2. sigmoid/logistic function

따라서 classification 모델 중 Logistic regression model은 sigmoid function(= logistic function)을 사용한다.

수식은 다음과 같다.

$ h{_\Theta }(x) = g(\Theta ^{T}x) $

$ g(z) =  \frac{1}{1+e^{-z}} $

즉, $ h{_\Theta}(x) = \frac{1}{1+e^{\Theta ^{T}x}}$

sigmoid function

그래프는 다음과 같이 그려지고, $ \Theta^{T}x $의 값으로 classification이 가능하다는 것을 확인할 수 있다.

 

sigmoid function의 특징은 다음과 같다. 

- 0 <= h <= 1

- 값은 Y = 1로 분류될 확률을 의미한다. (또는 1- h 는 Y = 0으로 분류될 확률)

(해당 내용에 대한 자세한 수학적 내용이 필요하다면, 다음 사이트를 참고.

https://towardsdatascience.com/why-sigmoid-a-probabilistic-perspective-42751d82686 )

 

- Decision Boundary

Decision Boundary는 해당 경계를 기준으로 분류가 달라지는 경계를 의미하고,

hypothesis의 값이 0.5가 되는 점들의 집합이라고도 볼 수 있다.

 

* Decision Boundary는 parameter에($ {\Theta}$) 의해 결정된다.

* $ {\Theta}$는 Cost Function을 기준으로 결정된다.

 

앞서 $\Theta^{T}x $의 값을 통해 분류가 가능했던 점을 생각하면서 위 식을 함께 보면

parameter에 의해 결정된다는 것을 알 수 있다.

선형회귀에서 polynomial regression을 통해 non-linear한 데이터를 모델링했던 것처럼 

Non-linear한 decsion boundary도 가능하다. 

 

- Cost Function

parameter를 결정할 때 cost function을 기준으로 결정하는 것은 regression과 동일하다.

그렇다면 Logistic Regression에서는 어떤 cost function을 사용해야 적절할까?

 

언뜻 생각했을 때 linear regression과 동일하게 사용해도 되지 않을까 싶지만,

결과적으로 말하자면 h(x)가 복잡한 형태이기 때문에 cost function이 non-convex하게 된다고 한다.

global minimum을 gradient discent 등으로 찾을 수 없다.

따라서 Cost로 다음과 같은 식을 이용한다.

로지스틱 회귀에서 cost의 정의

그래프의 형태는 y=1인 경우만 나와있지만, 반대의 경우도 쉽게 생각할 수 있다.

예측이 정답에 가까울 수록 cost가 작아지면서, 위와 같이 정의하면 cost function이 convex하게 된다고 한다.

(자세한 수학적 증명은 생략)

 

최종적으로 J($ \Theta $) = Cost Function은 다음과 같이 정의된다.

cost function

안에 cost 식은 y가 0 또는 1인 점을 이용하여 하나의 식으로 표현되었다. 

 

- Gradient Discent

위 cost function은 convex하므로, 동일하게 gradient discent 알고리즘을 적용하여 최적의 parameter를 찾을 수 있다.

 

gradient descent 수식

알고리즘의 내용은 동일하고, cost function만 바뀌어 적용했을 때,

최종적으로 파라미터를 업데이트하는 수식은 위와 같다.

(미분식은 생략, 해보면 알 수 있음)

 

*형태는 linear regression에서와 동일하지만, h(x)가 다르기 때문에 같은 식은 아니다.

 

위 과정을 구현할 때도 vectorization을 사용하면 유용하다.

 

또한 마찬가지로 업데이트 정도를 결정할 때 feature를 곱한 후 sum 하는 식이 포함된다.

따라서 linear regression과 동일한 이유로 feature scaling을 해주면 좋다.

- 기타 알고리즘

그 외에도 최적 파라미터를 찾는 다른 알고리즘이 존재하지만, 자세히 다루기에는 많은 시간이 들기 때문에 라이브러리에 대해서만 다룸.

 

종류와 장단점

위의 장점들이 필요하면 해당 라이브러리를 찾아보고 사용하면 된다.

 

 

- Multi-Class classification

앞서 말했듯이 binary 분류가 아니더라도 가능하다. 

결론적으로 말하자면 binary 분류의 내용을 그대로 one-vs-all 형태로 적용하면 된다.

 

ex)  0, 1, 2를 구분하고자 할 때,

0과 0이 아닌 데이터.

1과 1이 아닌 데이터.

2와 2가 아닌 데이터.

로 구분하여 각 데이터 별로 binary classificaiton 모델을 적용하면 된다.

각 모델이 각 클래스일 확률을 나타내고, 최종적으로 가장 높은 확률의 클래스를 선택하도록 구현하면 된다.

 

* 각 클래스로 분류될 확률을 나타내므로, 모델들의 h(x)의 값의 합은 1이다.

* 모델별로 $ \Theta $가 달라지기 때문에 헷갈리지만, 확률 관점에서 생각해보면 합이 1이 되어야 하는 것을 알 수 있다. 

* 파라미터가 다른 각 모델 별로는 독립이기 때문에, 그 합이 1이 될 필요는 없다.

x가 1일 확률이라는 것은 모델 1의 판단이 그렇다는 것이지, 실제로 어떤 input X가 1일 확률을 의미하지는 않는다.

 

 

- 정리 

각 식에 대해 간단하게 정리.

(1) h(x)는 1로 분류될 확률을 의미.

(2) decision boudary는 파라미터에 의해 결정.

(3) 파라미터는 cost function에 의해 결정.

+ Recent posts