[기계학습] Logistic regression

개요

Logistic regression은 binary classification에 사용되는 방법이다.

혈압 고혈압여부
110 X(0)
108 X(0)
128 O(1)
130 O(1)
113 X(0)

위와 같이 결과가 연속적이지 않은 데이터는 linear regression으로는 표현하기 어렵다.
linear regression은 결과값의 범위가 연속적이고 무한하기 때문이다.

이를 해결하기 위해 결과값의 범위를 제한시키고 불연속적으로 만들어 줄 필요가 있다.

결론부터 말하면 sigmoid함수를 사용해 결과값의 범위를 (0,1)로 제한하고 기준값을 정해 그 값보다 크면 1, 작으면 0으로 출력하도록 해주면 된다.

sigmoid함수는 $\frac{1}{1+e^{z}}$꼴의 함수로 Neural network에서 activation function으로도 쓰이는 매우 중요한 함수다.

최종적으로 logistic regression의 수식은 다음과 같다.

$f(\frac{1}{1+e^{-wx}})=\begin{cases}1&\frac{1}{1+e^{-wx}}>0.5\0&\frac{1}{1+e^{-wx}}<=0.5\end{cases}$

0.5를 기준으로 값을 구분하도록 했는데 기준값은 sigmoid출력값의 범위 안이면 무엇이든 상관없다.

Cost function

Cost function을 linear regression처럼 mse를 사용하면 local minima 문제에 빠질 수 있다.

가설함수의 형태가 비선형이기 때문이다.

따라서 mse대신 binary cross entropy함수를 사용한다.

시그모이드의 값을 H(x)라 하고, 훈련 데이터의 정답을 y라 하자. bce는 다음과 같다.

$bce(H(x),y)=\begin{cases}-log(H(x))&y=1\-log(1-H(x))&y=0\end{cases}$

Updated:

Leave a comment