본문 바로가기
ML&DL/Basics

[ML / DL] Cost function과 Maximum likelihood estimation과의 관계

by 거북이주인장 2023. 3. 19.

서울대학교 딥러닝 기초 강의를 듣고 정리하였다.

 

딥러닝에서 파라미터를 근사하기 위해 필수적으로 세워야하는 cost function와 통계학에서 파라미터를 추정하기 위해 필수적으로 세우는 maximum likelihood estimation과의 관계를 알아보자.

 

결론부터 말하면, cost function은 maximum likelihood estimation의 사촌 관계이다. 다르게 말하면 deep learning이 cost function을 최소화하는 것은, 결국 maximum likelihood을 최대화하는 것과 동일하고 따라서 cost function을 최소화함으로써 확률값이 최대가 되는 $\theta$을 찾는 것으로 해석할 수 있다.

 

머신러닝이든, 딥러닝이든, 지도학습에 한하여 문제는 회귀(regression)와 분류(classification)으로 나눌 수 있고 각각의 문제에 대해 왜 cost function을 최소화하는 것이 maximum likelihood을 최대화하는 것과 동일한지 살펴보자.

 

regression 문제

$p$차원 데이터가 $n$개 있다고 생각해보자. $\mathbb{x}_i = [x_1, \cdots, x_p], \mathbb{X} \in \mathbb{R}^{n \times p}$, $\mathbb{y} = [y_1, \cdots, y_n] \in \mathbb{R}^{n \times 1}$이다. $\boldsymbol{\theta} = [\theta_1, \cdots, \theta_p]$라고 둘 때 cost function을 아래와 같이 정의한다.

 

\[ J(\theta) = \dfrac{1}{2} \sum^n_{i=1} ( \mathbb{x}_i^T \boldsymbol{\theta} - y_i )^2 = \dfrac{1}{2} (\mathbb{X} \mathbf{\theta} - \mathbb{y})^T (  \mathbb{X} \mathbf{\theta} - \mathbb{y} ) \]

 

mse cost function의 해를 아래와 같이 바로 구할 수 있다.

물론, $\mathbb{X}^T \mathbb{X}$의 역행렬이 존재해야 하고, 만약에 $p$가 매우 크다면 $p \times p$ 행렬의 역행렬의 구하기는 힘들 수 있다.

 

이제 확률론적으로 접근해보자. 출력값 $y$가 $x_i$의 선형결합과 에러항의 합으로 이루어졌다고 생각해보자. 여기서 에러항은 정규 분포를 따른다고 가정한다. $\epsilon_i \sim N(0, \sigma^2)$

\[ y_i = \boldsymbol{\theta}^T \mathbb{x}_i + \epsilon_i \]

 

따라서 $y_i$는 아래의 분포를 따른다.

\[ y_i \sim N(y_i - \boldsymbol{\theta}^T \mathbb{x}_i, \sigma^2) \]

 

likelihood function은 아래와 같다.

\[ L(\boldsymbol{\theta}) = \prod^n_{i=1} p(y_i | \mathbb{x}_i, \boldsymbol{\theta}) \]

 

likelihood function을 maximize하는 $\boldsymbol{\theta}$은 아래와 같이 유도한다.

분포를 가정하지 않고, mse cost function으로 식을 유도했을 때와 동일한 답이 나왔다. 따라서 cost function을 최소화하는 것은 likelihood을 최대화하는 것과 동일한 의미를 가진다.

 

classification 문제

앞서 regression 문제에서 입력데이터와 출력데이터간의 모델 가정은 $h_{\boldsymbol{\theta}} (\mathbb{x}_i) = \mathbb{x}_i^T \boldsymbol{\theta}$ 이다. classification에서는 다른 모델 가정을 사용한다. regression에서는 출력값이 $(-\infty, +\infty)$인 반면에 classification 문제에서는 출력값의 범위가 $(0,1)$인 확률값으로 나오기 때문이다. 여기서는 아래의 sigmoid 함수를 사용한다.

\[ h_{\boldsymbol{\theta}} (\mathbb{x}_i) = g(\mathbb{x}_i^T \boldsymbol{\theta}) = \dfrac{1}{1 + e^{-\mathbb{x}^T_i \boldsymbol{\theta}}} \]

 

회귀 문제에서 cost function이 mean squared error로 정의됐다면, 분류 문제에서는 cost function이 cross entropy로 정의된다. cross entropy란, 두 확률 분포 사이간의 일종의 거리에 대한 개념이다. 그러면 분류 문제에서 두 확률 분포는 무엇일까?

하나는 target 분포이고, 하나는 prediction 분포이다. target 분포는 실제 레이블링에 대한 분포로, 0 아니면 1의 값을 가진다. 다시 말하면, 확률 값으로 0 아니면 1의 값을 가지는 것이다. prediction 분포는 0과 1사이의 값을 가진다. 이를 수식으로 표현해보자.

\[ J(\boldsymbol{\theta}) = \sum^n_{i=1} y_i \log h(\mathbb{x}_i) + (1-y_i) \log (1-h(\mathbb{x}_i)) \]

 

회귀문제처럼, 다시 확률분포적인 관점에서 째려보자. 아래와 같이 베르누이 분포를 가정한다.

$$ \begin{align}  P(y=1 | x ; \theta) &= h_{\theta}(x) \\ P(y=0 | x ; \theta) &= 1 - h_{\theta}(x)  \end{align}$$

 

이를 한줄로 정리하면,

\[ P(y | x ; \theta) = h_{\theta}(x)^y (1-h_{\theta}(x))^{1-y} \]

 

likelihood function은 아래와 같다.

\[ L(\boldsymbol{\theta}) = \prod^n_{i=1} p(y_i | \mathbb{x}_i, \boldsymbol{\theta}) \]

 

이를 $\boldsymbol{\theta}$에 대해 maximize하는 최적화를 진행해보면 아래와 같다.

이는 곧, 확률 분포를 가정하지 않고 cross entropy로 손실 함수를 정했을 때의 결과와 동일함을 알 수 있다.

정리

회귀 문제와 분류 문제에 있어서, 딥러닝에서 최적화하려는 손실함수가 결국 likelihood을 최대화하는 것과 동일함을 보였다. 회귀 문제에서는 손실함수를 mean squared error로 둘 때, 분류 문제에서는 손실함수를 cross entropy로 둘 때, 확률 분포를 가정하고 likelihood을 최대화하는 것과 동일한 결과를 얻었다. 교수님의 말씀에 의하면, 딥러닝의 95% 문제는 이렇게 확률론적인 방법을 차용한다고 하니 이런 이론적인 배경을 단단히 하는 것이 중요해 보인다.

댓글