머신러닝

4. Logistic Classification의 가설 함수 정의 / cost 함수 설명

저긍 2025. 3. 14. 09:58
반응형

(https://www.youtube.com/watch?v=PIjno6paszY&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=11)

 

(https://www.youtube.com/watch?v=6vzchGYEJBc&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=12)

 

Logistic Classification은 머신러닝에서 중요 알고리즘이다.

linear regression은 숫자를 예측하는 것이라면, CalssificationBinary Classificatoin이라고도 할 수 있다. 둘 중 하나를 고르는 것. ex) Spam Detection: Spam(1) or Ham(0)

linear regression에서는 너무 동떨어진 데이터가 입력된다면, linear가 기울어져 원래 패스였던 점수도 논패스가 될 수 있다.

또 다른 문제는 Hypothesis0보다 작거나, 1보다 크다면, 모양이 좋지 않게 된다.

linear regression은 간단하고 좋지만, Wx+b01 사이로 압축시킨 것이 있으면 좋겠다 했을 때, 나온 게 이거다.

 

이 함수를 그리면 이와 같다.

이는 sigmoid라고 한다. , logistic function이라고 한다. 그래프를 보면, z가 작아지면 0과 가까워지고, 커진다면 z1과 엄청 가깝게 간다.

Logistic Hypothesis는 아래와 같으며, 출력값이 항상 0과 1 사이다.

 

이는

linear

와 달리 매끈한 밥그릇 모양이 아니라, 구불구불 밥그릇이기 때문에 그레디언트 디센트 알고리즘을 쓰지 못 한다.

새로운 코스트 함수다.

밑 식을 보자. y=1일 때를 봤을 때, 성공적으로 예측하여 H(x)=1일 때, cost(1)=0이다. 하지만 틀려서 H(x)=0이라면, cost가 무한으로 커져서 우리가 잘못 예측했음을 알게 된다. 다음으로 y=0일 때. 성공적으로 예측하여 H(x)=0일 때 cost=0이고, 틀려서 H(x)=1이라면 cost가 무한으로 간다.

위 식은 if가 들어가서 불편하니 이와 같이 합칠 수 있다.

보면 똑같음을 쉽게 알 수 있다. y=1이면 우측 식이 사라지고, y=0이면 좌측 식이 사라진다.

이를 이용한 cost함수는 이와 같다.

cost는 매끈한 밥그릇 모양이다. 기울기는 이와 같다.

# 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)

 

반응형