본문 바로가기
머신러닝 이론 (지도학습)/로지스틱 회귀분석

[손으로 푸는 로지스틱 회귀분석] 5. 비용함수 (2) log loss

by bigpicture 2023. 7. 28.
반응형

로지스틱 회귀분석에서 사용하는 모델은 아래와 같습니다. 로지스틱 함수라고 부릅니다. 

$f(x)=\frac{1}{1+e^{-(\beta_{0}+\beta_{1}x)}}$

우리는 이 함수의 계수인 $\beta_{0}$과 $\beta_{1}$을 결정해야 합니다. 우리가 가진 데이터를 가장 잘 표현하도록 계수를 정할겁니다. 데이터는 아래와 같습니다. 

 

번호 공부시간 통과여부
1 1.5 0
2 1.8 0
3 2.3 1
4 3.3 0
5 4.6 1
6 6.5 1

 

오차의 제곱을 비용으로 정의하고, 비용을 전부 더하여 비용함수를 정의하였습니다. 이 비용함수를 최소화하는 계수를 찾으면 됩니다. 지난시간에 비용함수를 아래와 같이 설정했었습니다. 

$\begin{align}
J(\beta_{0},\beta_{1})&=\sum_{i=1}^{6}\left ( \frac{1}{1+e^{-(\beta_{0}+x_{i}\beta_{1})}}-y_{i} \right )^2
\\&=\sum_{i=1}^{6}\left ( f(x_{i})-y_{i} \right )^2
\end{align}$

위 비용함수는 볼록함수가 아니라는 문제가 있어서 사용할 수 없었습니다. 오늘은 다른 형태의 비용함수를 고안해볼 것입니다.

 

로지스틱함수에 로그를 한번 취해보았습니다. 

$z=\log f(x)$

f(x)는 x가 커질 수록 1에 가까워지고, 작아질 수록 0에 가까워 집니다. 결과적으로 f(x)는 0과 1 사이 값을 갖습니다. f(x)에 대해 그래프를 그려보면 아래와 같습니다. 


-를 붙여서 z를 양수로 만들어봅시다. 


f(x)가 1에 가까워지면 $-\log f(x)$는 0에 가까워지고 f(x)가 0에 가까워지면 $-\log f(x)$는 무한대가 됩니다. $-\log f(x)$ 를 cost로 사용할 수 있을 것 같다는 생각이 듭니다. $-\log f(x)$ 를 y=1인 관측값에 대한 cost 로 해석해봅시다. f(x)가 1에 가까워진다는 것은 오차가 줄어드는 것이므로 cost가 감소해아합니다. f(x)가 1에 가까워지면 $-\log f(x)$ 는 0에 가까워집니다. f(x)가 0에 가까워지면 오차가 늘어나는 것이므로 cost가 증가해야 합니다. f(x)가 0에 가까워지면 $-\log f(x)$ 는 증가합니다. 따라서 $-\log f(x)$를 y=1 인 관측값에 대한 cost로 사용할 수 있습니다. 

y=0인 경우는 어떡해야 할까요. f(x)가 1에 가까워지면 커지고, f(x)가 0에 가까워지면 0에 가까워지는 함수를 정의하면 됩니다. 아래와 같이 정의합시다. 

 

$-\log\left ( 1-f(x) \right )$

정리하면 아래와 같습니다. 

y=1 인 학생의 비용은 $-\log f(x)$
y=0 인 학생의 비용은 $-\log\left ( 1-f(x) \right )$

우리가 다루던 데이터에 적용하여 비용을 구하면 아래와 같습니다. 

$Cost_{1}=-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+1.5\beta_{1} \right )}} \right )$

$Cost_{2}=-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+1.8\beta_{1} \right )}} \right )$

$Cost_{3}=-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+2.3\beta_{1} \right )}} \right )$

$Cost_{4}=-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+3.3\beta_{1} \right )}} \right )$

$Cost_{5}=-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+4.6\beta_{1} \right )}} \right )$

$Cost_{6}=-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+6.5\beta_{1} \right )}} \right )$

비용을 전부 더하여 비용함수를 정의합시다. 

$\begin{align}
J\left ( \beta_{0},\beta_{1} \right )=&
-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+1.5\beta_{1} \right )}} \right )
\\&-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+1.8\beta_{1} \right )}} \right )
\\&-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+2.3\beta_{1} \right )}} \right )
\\&-\log\left ( 1-\frac{1}{1+e^{-\left ( \beta_{0}+3.3\beta_{1} \right )}} \right )
\\&-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+4.6\beta_{1} \right )}} \right )
\\&-\log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+6.5\beta_{1} \right )}} \right )
\end{align}$

 

시그마 기호를 이용하여 아래와 같이 간단하게 만들어줍니다. 

 

$J\left ( \beta_{0},\beta_{1} \right )=-\left [ \sum_{i=1}^{6}
y_{i}\times \log\left ( \frac{1}{1+e^{-\left ( \beta_{0}+x_{i}\beta_{1} \right )}} \right ) 
+\left ( 1-y_{i} \right )\times \log\left (1- \frac{1}{1+e^{-\left ( \beta_{0}+x_{i}\beta_{1} \right )}} \right ) 
\right ]$

 

평균비용이라는 의미를 갖게 하기 위해 전체 학생 수로 나눠줍니다. 

 

$J\left ( \beta_{0},\beta_{1} \right )=-\frac{1}{6}\left [ \sum_{i=1}^{6}
y_{i}\times \log\left ( \frac{1}{1+e^{-\left (\beta_{0}+x_{i}\beta_{1} \right )}} \right ) 
+\left ( 1-y_{i} \right )\times \log\left (1- \frac{1}{1+e^{-\left ( \beta_{0}+x_{i}\beta_{1} \right )}} \right ) 
\right ]$

 

이 함수를 최소화하는 $\beta_{0}$와  $\beta_{1}$ 을 찾으면 됩니다. 

 

반응형

댓글