※ 본 내용은 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}}$
그래프는 다음과 같이 그려지고, $ \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하게 된다고 한다.
따라서 Cost로 다음과 같은 식을 이용한다.
그래프의 형태는 y=1인 경우만 나와있지만, 반대의 경우도 쉽게 생각할 수 있다.
예측이 정답에 가까울 수록 cost가 작아지면서, 위와 같이 정의하면 cost function이 convex하게 된다고 한다.
(자세한 수학적 증명은 생략)
최종적으로 J($ \Theta $) = Cost Function은 다음과 같이 정의된다.
안에 cost 식은 y가 0 또는 1인 점을 이용하여 하나의 식으로 표현되었다.
- Gradient Discent
위 cost function은 convex하므로, 동일하게 gradient discent 알고리즘을 적용하여 최적의 parameter를 찾을 수 있다.
알고리즘의 내용은 동일하고, 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에 의해 결정.
'머신러닝 > Machine Learning(Ng)' 카테고리의 다른 글
[5주차] Neural Network - 2 (0) | 2021.08.14 |
---|---|
[4주차] Neural Network (0) | 2021.08.11 |
[3주차-2] Regularization (0) | 2021.08.10 |
[2주차] 다변수 선형 회귀, Normal Equation (0) | 2021.08.07 |
[1주차] 머신러닝이란, model and cost function, (linear algebra) (0) | 2021.08.06 |