모두를 위한 딥러닝 6장 - Logistic Classification Cost function

안녕하세요 jay입니다.
전 시간은 Logistic Regression에 대해 간단히 알아보았습니다.
이번 시간은 Logistic Regression에서 cost 함수에 대해 알아보도록 하겠습니다.

PPT : https://hunkim.github.io/ml/lec5.pdf
강의 : https://www.youtube.com/watch?v=6vzchGYEJBc&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=12



1. Linear Regression Cost function


Logistic Regression에서 Cost function을 얘기하기 전 간단하게 Linear Regression의 Cost function에 대해 간단히 알아보도록 하겠습니다.
Linear Regression에서 Cost function은 가설과 데이터 사이의 차이를 제곱한 다음 다 합하여 갯수만큼 나눈 값을 의미합니다. 즉 데이터들과 가설사이의 차이를 의미하며, 이 값이 작을수록 좋은 가설이라는 뜻입니다.



하지만 Logistic Regression의 가설은 직선형태가 아니라 Sigmoid 형태입니다. 이 Sigmoid형태를 기존 Linear Regression의 Cost function에 대입을 하면 Linear Regression과 달리 울퉁불퉁한 그래프 모양이 나옵니다. 어느 지점에서 시작하느냐에 따라 최소점이 다릅니다. 울퉁불퉁한 지점의 각각의 최솟값을 local minumum이라 하고 가장 작은 최솟값 지점을 global이라고 합니다. 이러한 울퉁불퉁한 형태로 인해 모델의 성능이 저하됩니다. 그래서 Logistic 모델에 대한 새로운 cost function을 설계해야합니다.




2. Logistic Cost function


하나의 cost function의 기본적인 기능은 element들을 다 합하고, 그 갯수만큼 나눕니다. 여기서 하나의 element는 H(x)와 y와의 관계를 가지는 c함수로 표현할 수 있습니다. 여기서 c함수는 y = 1일 때와 y = 0일 때 2가지 경우로 나눌 수 있습니다. 

H(x)는 1 / 1+ e^-2입니다. 여기서 e(exponential)를 그리면 구불구불하게 되는데, 이 구부러지는 것과 상반되는 것이 바로 log입니다. g(z) = -log(z), g(z)는 cost function입니다.

cost함수란, 실제 값(y)와 예측 값(H(x))의 차이가 없거나 혹은 비슷하면 cost는 작아지고, 
차이가 크게 나면 cost함수가 커져서 우리 모델에 penalty를 줍니다. 그래서 이 cost를 최소화 하기 위해서w(weight)값을 변경합니다.

다시 돌아와서 cost function이 y = 1과 y = 0이라고 가정합시다.

y= 1일 경우, cost function = -log(H(x))
H(x) = 1 => cost(1) = 0
H(x) = 0 => cost = 무한대에 가까워 집니다.
실제 데이터 값(1)과 우리가 예측한 값(H(x))가 1로 일치해서 cost는 0 혹은 0에 가까워지고,
실제 데이터 값(1)과 우리가 예측한 값(H(x) = 0)가 일치하지 않아서 penalty로 무한대에 가까워 집니다. 

y = 0일 경우, cost function = -log(1-(H(x))
H(x) = 1 = > cost = 무한대에 가까워 집니다.
H(x) = 0 -> cost(0) = 0입니다.
즉 실제 데이터 값(0)과 우리가 예측한 값(H(x))가 0으로 일치해서 cost는 0 혹은 0에 가까워 집니다.
실제 데이터 값(0)과 우리가 예측한 값(H(x) = 1)가 일치하지 않아서 penalty로 무한대에 가까워 집니다. 

이 두개의 함수를 합치면 Linear Regression에서 cost함수 형태와 같습니다.  따라서 Gradient decent 알고리즘 사용이 가능합니다. 하지만 지금 현재 이 형태를 가지고 programming에 사용할 수 없습니다. 왜냐하면 if condition(조건문)이 있기 때문에, 한 번의 과정을 더 거치기 때문입니다. 그래서 이를 없애는 작업을 해보겠습니다.
위의 식이 2개의 term을 하나의 term으로 합친 식입니다. y가 1일 경우 -log(H(x))입니다. y = 0이면 -log(1-H(x))입니다. 즉 이전의 식과 일치합니다. 



3. Minimize Cost


이제 주어진 cost를 Minimize를 하면 됩니다. Gradient decent algorithm을 사용하기 위해서 기울기를 구해야 합니다. cost를 미분해서 0이 되는 지점을 찾으면 그 지점이 최적의 w값입니다.
(미분은 컴퓨터 상에서 가능하므로 미분식은 생략하도록 하겠습니다.) 



댓글