ecsimsw
이진 분류 / Logistic regression / Sigmoid / Cross Entropy 본문
이진 분류 / Logistic regression / Sigmoid / Cross Entropy
JinHwan Kim 2020. 2. 28. 10:00이진 분류 ( Binary Classification )
- 적합/부적합, 합격/불합격, 스팸/햄 처럼 2가지 선택지로 분류하는 것을 이진 분류라고 한다. 놀이동산에서 범퍼카를 타려면 키가 126cm 이상이어야 한다고 생각해보자. 그럼 키에 따른 분표는 다음과 같을 것이다.
- 이전 선형 회귀에서 본 분표랑은 조금 다르게 생겼다. 그래프는 직선보다는 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 형식의 그래프를 갖는다.
- 위 그림에서처럼, Non-convex는 여러 극점이 존재하기 때문에, 경사하강법으로 접선의 기울기가 0에 가까워지도록 목표하여 W를 조정할 시, 최소점인 Global min이 아닌 Local min, Saddle point에 잡혀 최적의 가중치를 만들지 못한다.
- 이런 이유로 이진 분류에서는 Cost 함수를 MSE로 만들지 못하고, 크로스 엔트로피 함수를 사용한다.
크로스 엔트로피 (Cross Entropy)
- 그럼 이진 분류의 오차는 어떻게 표현 할 수 있을까. 시그모이드 함수는 0~1사이의 값을 반환하고, 오차는 실제값이 1일 경우 0에 가까워질수록, 실제값이 0일 때 예측이 1에 가까워질수록 커져야한다. 따라서 cost를 다음처럼 로그 함수로 표현하였다.
- 이를 묶어 cost를 다음과 같이 식으로 표현할 수 있다.
- 즉 각 i 별로 cost를 더하여 평균낸 아래의 식이 로지스틱 회귀의 목적 함수이다.
'Machine Learning' 카테고리의 다른 글
DTM / TF-IDF / 문서 유사도 (0) | 2020.03.07 |
---|---|
벡터와 텐서 / Batch size / Epoch (0) | 2020.02.28 |
경사 하강법 / Gradient descent / Optimizer (2) | 2020.02.28 |
선형 회귀 / Linear Regression / MSE / cost function (0) | 2020.02.28 |
머신러닝/ 지도, 비지도, 강화 / 혼동 행렬 / 과적합, 과소적합 (0) | 2020.02.28 |