티스토리 뷰

ML

ML 이론 강의 필기 - 2

khe0616 2018. 10. 17. 20:48

Lec 5-1. Binary logistic classification






- Binary Classification : 둘중에 하나 고르는 것

        -> ex) Spam(1), Han(0)

        -> ex) Show(1), Hide(0)






학습 시간에 대한 합/불합 여부를 예측하기 위해 binary classification, 즉 binary logistic classification이 사용될 수 있다..







만약 합/불합 여부 예측 문제를 Linear Regression으로 학습하는 경우 여러 문제점이 발생한다.



문제점 1.

가장 오른쪽에 있는 data처럼, 학습 데이터에 엄청 많이 공부한 사람이 있고, 이를 Linear Regression으로 학습시키면,

선(가설)과 데이터의 차이를 최소로 하기 위해 선이 기울어져 버린다. -> 빨간색 data는 합격인데도 불구하고, 불합격으로 인식



문제점2.

classification에서는 반드시 0과 1사이의 값이 나와야한다.

하지만, H(x) = wx+b 에서는 0보다 훨씬 작거나 1보다 훨씬 큰 값이 나올 수 있다. -> 결과 값을 0과 1사이로 압축시켜주는 함수가 필요함




- binary Logistic Hypothesis : 문제점1, 2를 해결할 수 있는 binary Classification 맞춤형 가설



이고,               <- g(z)를 logistic function 또는 sigmoid function이라고 한다.

H(X) = g(z) 이다.



z= XW이므로,

binary Logistic Hypothesis는 위와 같다.







Lec 5-2. Binary Classification의 Cost 함수와 Gradient descent



Linear Regression과 Binary Classification 모두에게 빨간 부분의 Cost함수를 적용시켰다.


왼쪽 검정부분은 Linear Hypothesis의 cost함수 그래프이다.

    -> 매끈한 모양이므로 Gradient descent algorithm을 적용하면 목적지로 잘 타고 내려온다.    


오른쪽 검정 부분은 Binary Logistic Hypothesis의 cost함수 그래프이다.

    -> 울퉁붕퉁한 모양이므로 Gradient descent algorithm을 적용하면 문제가 있다.

    -> 임의의 점에서 시작했을때, 목적지(Global minimum)가 아닌 Local minimum(어쩃든 기울기가 0이므로)에 도착해버릴 수가 있다.

            -> 즉 시작점에 따라 끝나는점이 달라질 수가 있다.


결과적으로, Binary Logistic Hypothesis에 대해서는 빨간 부분 형태의 Cost함수를 사용할 수 없다.

우리의 목표는 Global minimum에 도달하는 것이다.




따라서 Binary Classification을 위한 새로운 cost 함수를 사용한다.







- Cost Function for Binary Logistic Classification 

Cost(W,b)는 위와 같다.

중요한건 왜 이러한 식이 나오는지 이해 하는 것이다. 그 원리에 대해서 설명하겠다.







참값 y = 1 일때 적용되는 -log(H(X)) 함수이다.


H(X) = 1 로 예측한 경우 -> C(1, 1) = 0    <- cost 함수값이 최소화 되므로 Good

H(X) = 0 로 예측한 경우 -> C(0, 1) = infinite <- cost 함수값이 무한대가 됬기 때문에 Bad ( Penalty가 매우 크다 )

 

결과적으로, 올바르게 예측했을때, Cost 값이 최소화 된다.




참값 y = 0 일떄 적용되는 -log(1-H(X)) 함수이다.


H(X) = 0 로 예측한 경우 -> C(0, 0) = 0 <- cost 함수값이 최소화 되므로 Good

H(X) = 1 로 예측한 경우 -> C(1, 0) = infinite <- cost 함수값이 무한대가 됬기 때문에 Bad ( Penalty가 매우 크다)


결과적으로, 올바르게 예측했을때, Cost값이 최소화 된다.






이제, -log(H(X))와 -log(1-H(X)) 두개를 붙이면 매끈한 U모양의 그래프가 나온다.

    -> Cost함수를 최소화 시키기 위해 Gradient descent algorithm 적용가능









최종적인 Binary Classification의 Cost함수와 Gradient descent 알고리즘








Lec 6-1. Softmax classification: Multinomial Logistic Regression




- Binary Classification :  결과가 둘 중 하나

결과는 x, 네모 중 하나이다.


z = XW를 sigmoid 함수에 통과시켜 Hypothesis를 구한다.








- Multinomial Classification : 결과가 여러개 중 하나

결과는 A, B,  C 중 하나이다.








최종적인 Hypothesis를 구하기 위해,


Hypothesis를
C인지 아닌지

B인지 아닌지

A인지 아닌지

3가지 경우로 나눌 수 가 있다.

    -> Matrix WX로 계산한다.








3가지 경우로 나눈 Hypothesis를 Matrix WX로 계산하는 과정이다.






주의 할점은 Multinomial Logistic Regression을 할 경우,

위와 같이 WX한 각각의 결과에 대해 sigmoid처리를 하지 않는다는 것이다. (출력 값을 공정하게 평가하기 어렵기 때문)

         -> 이를 해결하는 Softmax classification을 바로 아래에서 설명할 것이다.













Lec 6-2. Softmax classification: softmax and cost function



매트릭스 곱 WX를 통해 Hypothesis를 계산한 예시이다.





단, 우리가 원하는 형태는 sigmoid 등의 함수를 사용해서, Hypothesis를 0~1의 값(확률 값)으로 나타내는 것이다.

        -> 이를 Soft Max 함수가 해결해준다.












Soft Max함수를 통과하면,

수치 값 이었던 Hypothesis가 확률 값으로 변환 된다.

Soft Max function은 다움 두 조건을 만족 시켜준다.

    1. 각 hypothesis값 : 0 ~ 1 의 값을 만족
    2. hypothesis 값들의 합은 1을 만족한다. ( 위의 예시에서도 0.7 + 0.2 + 0.1 = 1 )







이렇게 구해진  확률 0.7, 0.2, 0.1 에 대해 one-hot encoding 작업이 필요하다.

tensorflow에서는 arg_max 함수를 이용하여 이 과정을 수행한다.










- Cross Entropy cost function : Multinomial Classification을 위한 Cost 함수


S(y)는 예측값, L은 참 값이다.

파란색으로 감싼 부분이 cross entropy function(아직 cost는 아님) 이다.





cross entroy function을 자세히 보면,
참 값 (1.0, 0.0, 0.0)

예측값 (0.7, 0.2, 0.1)

에 대해


L과 -log(S(y))을 곱한 값들을 모두 합하고 있다.

    -> 위의 예시에서 cross entropy function 값 : ( 1.0 * -log(0.7) ) + ( 0.0 * -log(0.2) )  + ( 0.0 * -log(0.1) ) 







왜 위의 식이 나오는지 이해하여 보자

함수 -log(S(y))의 그래프이다.

*는 각 원소끼리의 곱이라고 가정하고 설명하겠다.




참 값 L = [0, 1] -> B 일때,


S(Y) = [0, 1]로 예측한 경우 [0, 1] * -log[0, 1] = [0, 1] * [무한대, 0] = [0, 0]      <- [0, 0] 의 각 원소를 합한 값이 0이므로 Good

S(Y) = [1, 0]로 예측한 경우 [0, 1] * -log[1, 0] = [0, 1] * [0, 무한대] = [0, 무한대]      <- [0, 0] 의 각 원소를 합한 값이 무한대 이므로 Bad (Penalty가 매우 크다)


결과적으로, 올바르게 예측했을때, cross entropy function 값이 최소화 되며, cost값이 최소화 된다.




참 값 L = [1, 0] -> A 일때,


S(Y) = [0, 1]로 예측한 경우 [1, 0] * -log[0, 1] = [1, 0] * [무한대, 0] = [무한대, 0]      <- [0, 0] 의 각 원소를 합한 값이 무한대 이므로 Bad (Penalty가 매우 크다)

S(Y) = [1, 0]로 예측한 경우 [1, 0] * -log[1, 0] = [1, 0] * [0, 무한대] = [0, 0]      <- [0, 0] 의 각 원소를 합한 값이 0이므로 Good


결과적으로, 올바르게 예측했을때, cross entropy function 값이 최소화 되며, cost값이 최소화 된다.







cross entropy function은 binary classification을 위한 C(H(x), y)와 매우 흡사하다. 


C(H(x), y)에 대해 시그마 합을 하면, binary classification의 Cost Function이 완성되고, 

D(S, L) 에 대해 시그마 합을 하면, multinomial classification의 Cost Function이 완성된다.

     -> 아래에 보여줄 것임









Multinomial Logistic Regression을 위한

Cross-Entropy Cost Function이다.








Cross entropy cost(loss) function에 대해서도 Gradient descent 알고리즘을 적용할 수 있다.


step은 Linear Regression, Binary Logistic Regression에서와 동일하다.

        -> (-learning_rate) * (Cost함수에 대한 미분)






'ML' 카테고리의 다른 글

ML 이론 강의 필기 - 5  (0) 2018.11.16
ML 이론 강의 필기 - 4  (0) 2018.11.12
ML 이론 강의 필기 - 3  (0) 2018.10.27
ML 이론 강의 필기 - 1  (0) 2018.10.17
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함