ecsimsw

이진 분류 / Logistic regression / Sigmoid / Cross Entropy 본문

이진 분류 / Logistic regression / Sigmoid / Cross Entropy

JinHwan Kim 2020. 2. 28. 10:00

이진 분류 ( Binary Classification )

 

   - 적합/부적합, 합격/불합격, 스팸/햄 처럼 2가지 선택지로 분류하는 것을 이진 분류라고 한다. 놀이동산에서 범퍼카를 타려면 키가 126cm 이상이어야 한다고 생각해보자. 그럼 키에 따른 분표는 다음과 같을 것이다.

 

125cm보다 커야 적합

    - 이전 선형 회귀에서 본 분표랑은 조금 다르게 생겼다. 그래프는 직선보다는 S에 가깝고, y의 값은 적합, 또는 부적합 두가지 경우만을 갖는다. 적합을 1, 부적합을 0이라고 하면, 예측 값은 0~1 값만을 갖고, 그 모양은 S인 함수를 만들어야 이런 이진 분류를 잘 표현할 수 있을 것이다.

 

   - 이런 이진 분류를 풀기 위한 대표적인 알고리즘이 로지스틱 회귀이고, 그 분포를 가장 잘 설명하기 위해 위 조건을 충족하는 함수, 시그모이드를 이용하여 가설을 정의하는 것이 효율적이다.   

 

시그모이드 (Sigmoid function)

시그모이드 함수

   - 시그모이드 함수를 표현하면 이와  같다. 0부터 1 사이의 값을 S자 모양으로 갖기 때문에 이진 분류 가설을 표현하기 좋다. 가설을 이 함수로 표현하고, 예측 값이 0.5 이상이면 1로, 0.5 이하는 0으로 분류될 것이다. 

import numpy as np
import matplotlib.pyplot as plt

def sigmoid(x):
    return 1/(1+np.exp(-x))
	
x = np.arange(-20.0, 20.0)
y = sigmoid(x)

plt.plot(x, y)
plt.show()

 

이진 분류의 비용 함수

 

   -  위 시그모이드 함수를 MSE로 비용 함수를 구하면, 선형 회귀와 달리 Non-convex 형식의 그래프를 갖는다. 

  

Convex / Non-Convex

   - 위 그림에서처럼, Non-convex는 여러 극점이 존재하기 때문에, 경사하강법으로 접선의 기울기가 0에 가까워지도록 목표하여 W를 조정할 시, 최소점인 Global min이 아닌 Local min, Saddle point에 잡혀 최적의 가중치를 만들지 못한다.

 

   - 이런 이유로 이진 분류에서는 Cost 함수를 MSE로 만들지 못하고, 크로스 엔트로피 함수를 사용한다.

 

크로스 엔트로피 (Cross Entropy)

 

   - 그럼 이진 분류의 오차는 어떻게 표현 할 수 있을까. 시그모이드 함수는 0~1사이의 값을 반환하고, 오차는 실제값이 1일 경우 0에 가까워질수록, 실제값이 0일 때 예측이 1에 가까워질수록 커져야한다. 따라서 cost를 다음처럼 로그 함수로 표현하였다.

y값에 대한 cost

   - 이를 묶어 cost를 다음과 같이 식으로 표현할 수 있다.

 

cost

    - 즉 각 i 별로 cost를 더하여 평균낸 아래의 식이 로지스틱 회귀의 목적 함수이다.

 

 

Comments