Logistic Regression의 cost 함수 설명

해당 게시물은 Edwith에서 제공하는
머신러닝과 딥러닝 BASIC을 듣고 요약 정리한 글입니다.

Cost function

목표는 global minimum을 찾는 것
하나의 local에서 기울기가 변하지 않는 구간을 최솟값으로 잘못 인지 가능
기존의 Linear Regression의 Cost function 사용 불가

New cost function for logistic

cost(W)=1mc(H(x),y)cost(W) = \dfrac{1}{m}\sum c(H(x),y) C(H(x),y)={log(H(x)):y=1log(1H(x)):y=0C(H(x),y) = \begin{cases} -log(H(x)) &{: y = 1} \\ -log(1 - H(x)) &{: y = 0} \end{cases}

log함수를 사용하는 이유

예시) y가 1일 경우

H(x)=1cost(1)=0H(x) = 1 \to cost(1) = 0 H(x)=0cost(1)=H(x) = 0 \to cost(1) = \infty

예시) y가 0일 경우

H(x)=0cost(0)=0H(x) = 0 \to cost(0) = 0 H(x)=1cost(1)=H(x) = 1 \to cost(1) = \infty

위의 결과로 원하는 결과 값과 멀어질수록 무한대로 수렴
원하는 결과 값과 가까워질수록 0으로 수렴하도록 하기위해 log함수 사용

Cost function

C(H(x),y)=ylog(H(x))(1y)log(1H(x))C(H(x), y) = -ylog(H(x)) - (1 - y)log(1 - H(x))

Minimize cost - Gradient decent algorithm

cost(W)=1mylog(H(x))+(1y)log(1H(x))cost(W) = -\dfrac{1}{m}\sum ylog(H(x)) + (1 - y)log(1 - H(x)) W:=WασσWcost(W)W := W - \alpha \dfrac{\sigma}{\sigma W}cost(W)

파이썬 코드 예시

# cost function
cost = tf.reduce_mean(
    -tf.reduce_sum(Y * tf.log(hypothesis) + (1 - Y) * tf.log(1 - hypothesis))
)

# Minimize
a = tf.Variable(0.1) # Learning rate, alpha
optimizer = tf.train.GradientDescentOptimizer(a)
train = optimizer.minimize(cost)

Written by@Minsu Kim
Software Engineer at KakaoPay Corp.