Taeoh Kim's Blog

Computer Vision and Machine Learning Study Post 6

Cross Entropy의 정확한 확률적 의미



김성훈 교수님의 딥러닝 강의를 듣다 보면, Logistic Regression으로 넘어가면서 Cross Entropy라는 Loss Function을 사용하게 된. 하지만, 이 부분에 대해서 깊은 고찰이 없이 넘어가게 되고, 나중에 왜 Cross Entropy를 사용하나요? 그게 Convex한가요? 에 대한 대답은 명쾌하지가 않았다.

이번 글에서는 의미론적인, 즉 정보 이론(Information Theory)에서 다루는 Entropy로서의 Cross Entropy가 아니라, 확률적으로 정확하게 유도되는 Cross Entropy식의 의미와, Logistic Regression의 해를 구하는 과정에 대해서 다뤄보고자 한다.



1. Logistic Function Review


우선, 저번 포스트에서 Binary Classificaiton에서의 Class 1에 대한 Posterior는 다음과 같이 쓸 수 있다고 언급하였다.

$$ P(Y_1|X) = \frac{1}{1+e^{-a}} $$

여기서 a는 Log Odds라고 부르고, 여기서는 다음과 같았다.

$$ a = ln(\frac{P(X|Y_1)P(Y_1)}{P(X|Y_2)P(Y_2)}) $$

그렇다면 한 번 Decision을 생각해 보면,

$$ P(X|Y_1)P(Y_1) > P(X|Y_2)P(Y_2) $$

인 경우에 Class 1을 선택하게 되는데, Log Odds로 부터,

$$ a > 0 $$

인 경우와 같다. 이 말은 달리 말하면,

$$ a = 0 $$

이 바로 Decision Boundary Function이 되는 것이다.

그렇다면 Prior를 각각 Constant로 두고, 각 Likelihood가 Gaussian 분포라고 가정해 보자, 그리고 하나 더, 두 Class의 Covariance는 같다고 가정해 보자.

그렇다면 Log Odd는 다음과 같이 된다.

$$ a = ln \frac{exp(-\frac{1}{2}(x-\mu_1)^T \Sigma^{-1} (x-\mu_1)) P(Y_1)}{exp(-\frac{1}{2}(x-\mu_2)^T \Sigma^{-1} (x-\mu_2)) P(Y_2)} $$

정리하면,

$$ a = \mu_1 \Sigma^{-1} x - \mu_2 \Sigma^{-1} x - \frac{1}{2} {\mu_1}^T \Sigma^{-1} \mu_1 + \frac{1}{2} {\mu_2}^T \Sigma^{-1} \mu_2 + ln(\frac{P(Y_1)}{P(Y_2)}) $$

가 되는데, x에 대한 식으로 정리해 보면 결국은 다음과 같은 Linear Function 형태임을 알 수 있다.

$$ a = w^T x + w_0 $$

이 결론을 가지고 Discriminant Model로 넘어가 보도록 하자.



2. From Generative Logistic Function to Discriminative Logistic Regression


지금까지 다뤘던 Generative Model과는 다르게, Discriminative Model에서는 바로 Posterior를 추정하게 된다.

Logistic Regression은 바로 다음과 같이 Logistic Function 식을 두고,

$$ P(Y_1 | X) = \sigma(w^T x) $$

Data로부터 Parameter인 w를 추정하게 된다.

그렇다면 이 가정이 타당한가?에 대한 질문에 대한 답으로는, 우리가 Generative Logistic Model에서 다음과 같이 정의했고.

$$ P(Y_1|X) = \frac{1}{1+e^{-a}} $$

여기서 a는 두 Class가 Gaussian이고 Covariance Matrix를 공유할 경우,

$$ a = w^T x + w_0 $$

라는 결론을 얻어냈기에,

두 Class가 Gaussian이며 같은 Covariance를 가진다라는 가정 하에서는

$$ P(Y_1 | X) = \sigma(w^T x) $$

과 같은 설정이 타당해 지는 것이다. 그렇다면 결국에 남은 것은 w를 구하는 것 뿐이다.



3. Maximizing Likelihood is Minimizing Cross-Entropy


지지난 포스트에서도 보았듯이, 우리가 어떠한 확률 분포의 Parameter를 추정할 때 가장 만만한 것이 Maximum Likelihood 방법이다. 주어진 Data로부터 어떠한 Parameter를 선택하였을 경우 주어진 Data가 가장 잘 설명이 될 까? 라는 즉, 다음과 같은

$$ P(Classes | X, w) $$

Likelihood가 최대가 될 것인가? 라는 문제였다.

여기서 Notation을 Posterior를 t로 정의해 보면,

$$ Likelihood = \prod _{n=1}^{N}{P(t_n | x_n, w)} = \prod _{n=1}^{N}{\begin{cases} P(t_n = 1|x_n) \text{ when} (t_n = 1) \\ 1 - P(t_n = 1|x_n) \text{ when} (t_n = 0) \end{cases}} $$

여기서,

$$ y_n = P(t_n = 1 | x_n) = P(Y_1 | X) = \sigma(w^T x) $$

이므로 이것을 Bernoulli 분포로 표현할 수 있다.

$$ Likelihood = \prod _{n=1}^{N}{{y_n}^{t_n} {(1-y_n)}^{1-t_n}} $$

Log Likelihood로 바꾸면, 결국 우리는 아래 식을 Maximize해야 한다.

$$ LogLikelihood = \sum _{n=1}^{N}{t_n log(y_n) + (1-t_n) log(1-y_n)} $$

어디서 많이 본 식 같은데, t가 결국 실제 Label값이고, y는 Logistic Function으로서 우리의 예측값이 된다.

결국 이것이 Negative Cross Entropy가 되는 것이고.

t는 Bernoulli 분포에서 0 또는 1이기에,

이것이 우리가 Classifiaction에서 One-Hot Vector를 쓰는 이유이다.


결국 Logistic Regression에서 Log Likelihood를 최대화 하는 것이 Cross Entropy를 최소화 하는 것과 확률적 관점에서 완벽하게 같은 의미가 되는 것이다.

즉 우리의 Objective는,

$$ Loss = - \sum _{n=1}^{N}{t_n log(\sigma (w^T x)) + (1-t_n) log(1 - \sigma (w^T x))} $$

를 Minimize하는, 딥러닝 강의에서 자주 보던 Logistic Regression의 Cost Function을 Minimize하게 되는 과정과 같게 된다.

남은 것은, 위 Cost Function이 Convex함을 보이면 된다.



4. Cross Entropy of Logistic Regression is Convex


다음 Cost Function이 Convex하다는 것을 증명해야 하는데, 왜냐하면 Convex하게 되면, Unique한 Solution이 존재하게 되고, Gradient 방법을 사용해서 쉽게 해를 구할 수 있기 때문이다.

$$ Loss = - \sum _{n=1}^{N}{t_n log(\sigma (w^T x)) + (1-t_n) log(1 - \sigma (w^T x))} $$

그 전에 Convex의 조건을 살펴보면,

어떠한 함수를 2차함수로 근사하고자 한다면, Taylor 급수를 사용해서

$$ f(x) = f(a) + D f(a) (x-a) + \frac{1}{2} (x-a)^T H f(a) (x-a) $$

처럼 근사해서 (여기서 D는 미분, H는 2차 미분이다) 마치 우리가 일반적인 2차함수

$$ f(x) = ax^2 + bx + c $$

에서 a > 0이면 Convex하듯이 따져보면 되는데,

Multi-variate Function에서는 D는 Vector가 되고 H (Hessian이라 부른다)는 Matrix형태가 된다.

저 Hessian이 Positive Definite하게 되면, 일반적인 2차함수에서 a > 0과 같은 의미가 되어, Convex함이 보장되는데,

다음과 같을 때 Positive Definite하다고 한다.

$$ x^T H x > 0 $$

그 이유는 일반적인 2차함수에서 a > 0 도 조건이지만,

$$ ax^2 > 0 $$

도 같은 조건이기 때문이다.

아무튼 결국 다시 Cost Function

$$ Loss = - \sum _{n=1}^{N}{t_n log(\sigma (w^T x)) + (1-t_n) log(1 - \sigma (w^T x))} $$

의 Hessian을 구해 보면 다음과 같게 되는데,

$$ \sum _{n=1}^{N}{y_n (1-y_n) x_n {x_n}^T} $$

x는 vector이고, y는 Logistic Function의 Output으로서 0에서 1 사이의 값을 가지므로, Positive Definite가 되어 Convex를 보장하게 된다.