1. 확률분포와 모수
통계적 모델링은 주로 적절한 가정
위에서 확률분포를 추정
하는 것이 목표
이다.
해당 목표는 기계학습과 통계학이 공통적으로 추구하는 목표이다.
유한한 데이터만 관찰해서 모집단의 분포를 정확하게 알아낼 수 없으므로, 근사적으로
확률분포를 추정할 수 밖에 없다.
예측모형의 목적은 분포를 정확하게 맞추는 것보단, 데이터와 추정 방법의 불확실성을 고려해서 예측의 위험을 최소화하는 것
이다.
데이터가 특정 확률분포를 따른다고 선험적으로(a priori) 가정한 후, 그 분포를 결정하는 모수(parameter) 추정을 통해, 데이터를 학습하는 방법을 모수적(parametric) 방법론
이라 한다.
특정 확류룬포를 가정하기 않고, 데이터에 따라 모델의 구조 및 모수의 개수가 유연하게 바뀌면 비모수(nonparametric) 방법론
이라 부른다.
기계학습의 많은 방법론은 비모수 방법론에 속한다.
1.1. 예) 확률분포 가정
우선 히스토르갬을 통해 모양을 관찰하여 확률분포를 가정한다.
데이터가 2개의 값만 가지는 경우 → 베르누이분포
데이터가 n개의 이산적인 값을 가지는 경우 → 카테고리분포
데이터가 [0, 1] 사이에서 값을 가지는 경우 → 베타분포
데이터가 0 이상의 값을 가지는 경우 → 감마분포, 로그정규분포 등
데이터가 R \mathbb{R} R 전체에서 값을 가지는 경우 → 정규분포, 라플라스분포 등
위의 예시를 따라 기계적으로 확률분포를 가정하면 안 된다.
데이터를 생성하는 원리
를 고려하여 확률분포를 가정해야 한다.
모수를 추정한 후에는, 각 분포마다 검정하는 방법들로 반드시 검정
을 해야 한다.
1.2. 데이터로 모수 추정
데이터의 확률분포를 가정했다면 모수를 추정해볼 수 있다.
정규분포를 예시로 들어보자.
정규분포의 모수로는 평균 μ \mu μ 과 분산 σ 2 \sigma^2 σ 2 이 있다.
평균과 분산을 추정하는 통계량(statistic)은 다음과 같다.
표본평균: X ˉ = 1 N ∑ i = 1 N x i \bar{X} = \frac{1}{N}\sum\limits_{i=1}^Nx_i X ˉ = N 1 i = 1 ∑ N x i
E [ X ˉ ] = μ \mathbb{E}[\bar{X}] = \mu E [ X ˉ ] = μ → 표본평균의 기대값은 모집단의 평균과 같다.
표본분산: S 2 = 1 N − 1 ∑ i = 1 N ( x i − X ˉ ) 2 S^2 = \frac{1}{N-1}\sum\limits_{i=1}^{N}(x_i - \bar{X})^2 S 2 = N − 1 1 i = 1 ∑ N ( x i − X ˉ ) 2
E [ S 2 ] = σ 2 \mathbb{E}[S^2] = \sigma^2 E [ S 2 ] = σ 2 → 표본분산은 N − 1 N-1 N − 1 로 나눠야 표본분산의 기대값이 모분산과 같아진다.
표본분산과 관련된 증명은 여기 를 참고하자.
표본분산을 구할 때, N N N 이 아니라 N − 1 N - 1 N − 1 로 나누는 이유는 불편(unbiased)추정량으로 만들기 위해서이다.
편의(bias)
은 추정량의 기대값 - 모수
이다.
추정량의 기대값이 모수와 같아지는 것을 불편추정량
이라 한다.
자유도와 불편추정량의 관계를 살펴보자.
자유도
는 독립변수의 개수를 의미한다.
예) x + y + z = 3 x + y + z = 3 x + y + z = 3
→ 변수 2개만 주어지면 나머지 한개는 자동으로 결정되므로 자유도는 2이다.
표본분산은 표본의 평균이 a로 정해진 상황에서 구하게 된다. 표본평균이 a로 정해지는 순간 x 1 , ⋯ , x n x_1,\cdots,x_n x 1 , ⋯ , x n 중에 n − 1 n-1 n − 1 개가 정해지면, 나머지 하나는 종속적으로 정해지게 된다. 따라서 표본분산을 구할 때의 자유도는 n − 1 n - 1 n − 1 이다.
표본분산을 불편추정량으로 만들기 위해 n-1로 나누게 되었는데, n-1로 나눠주고 보니 표본분산을 구하는 수식의 자유도와 같았다.
라는 논리적 인과관계를 갖게된다.
2. 중심극한정리(CLT: Central Limit Theorem)
중심극한정리
는 동일한 확률분포를 가진 독립 확률 변수 n개의 평균의 분포
는 n이 적당히 크다면 정규분포
에 가까워진다는 정리이다.
통계량의 확률분포를 표집분포(sampling distribution)
라 부르며, 특히 표본평균의 표집분포는 N N N 이 커질수록 정규분포
N ( μ , σ 2 / N ) \mathcal{N}(\mu, \sigma^2/N) N ( μ , σ 2 / N ) 를 따른다.
이는 모집단이 정규분포가 아니라도 성립한다.
표본분포(sample distribution)과 표집분포(sampling distribution)은 다른 용어이다.
표본분포는 뽑힌 데이터의 통계량(표본평균, 표본분산, ⋯ \cdots ⋯ )이고, 표집분포는 이런 통계량들의 확률분포이다.
위의 사진은 이항분포에서 N N N 에 따른 표본평균의 확률분포를 나타낸 것이다.
3. 최대가능도 추정법(MLE: Maximum Likelihood Estimation)
표본평균이나 표본분산은 중요한 통계량이지만, 확률분포마다 사용하는 모수가 다르다.
따라서, 확률분포를 추정하기 위한 적절한 통계량(표본평균, 표본분산, ⋯ \cdots ⋯ )이 달라지게 된다.
기계적으로 표본평균과 표본분산만으로 확률분포를 추정하면 안된다는 것이다.
이론적으로 가장 가능성이 높은 모수를 추정하는 방법 중 하나는 최대가능도추정법이다.
최대가능도추정법(또는 최대우도법, 이하 MLE)
는 기계학습에서 여러모로 활용된다.
θ ^ M L E = a r g m a x θ L ( θ ∣ x ) = a r g m a x θ P ( x ∣ θ ) \hat{\theta}_{MLE} = \underset{\theta}{argmax} L(\theta|x) = \underset{\theta}{argmax} P(x|\theta) θ ^ M L E = θ a r g ma x L ( θ ∣ x ) = θ a r g ma x P ( x ∣ θ )
L ( θ ∣ x ) L(\theta|x) L ( θ ∣ x ) 와 P ( x ∣ θ ) P(x|\theta) P ( x ∣ θ ) 는 관점의 차이다.
PMF 또는 PDF인 P ( x ∣ θ ) P(x|\theta) P ( x ∣ θ ) 는 데이터의 확률분포를 알고 있을 때, 즉 모수 θ \theta θ 를 알고 있을 때, x x x 에 대한 함수이다.
L ( θ ∣ x ) L(\theta|x) L ( θ ∣ x ) 는 가능도 함수
로 주어진 데이터 x x x , 즉, 어떤 분포에 대해 이미 실현된 표본 값은 알고있지만, 모수 θ \theta θ 를 모르고 있는 상황으로, 모수
θ \theta θ 를 변수
로 둔 함수이다.
모수 θ \theta θ 를 변형시키면 가능도함수의 값이 변한다.
3.1. 가능도(likelihood) 함수
가능도(likelihood)는 확률분포의 모수 θ \theta θ 가, 어떤 확률변수의 표집값 x x x 와 일관되는 정도를 나타내는 값이다.
가능도 함수
는 모수 θ \theta θ 를 따르는 분포가 x x x 를 관찰할 가능성으로 확률로 해석하면 안된다.
수치적으로 가능도
를 계산하기 위해서, 각 데이터 샘플에서 후보 분포에 대한 높이(즉, likelihood)
를 계산해 다 곱한 것(독립추출 가정)
을 이용할 수 있다.
데이터 집합 행렬 X \boldsymbol{X} X 의 행벡터 x k \boldsymbol{x}_k x k 가 독립적으로 추출
되었을 경우 가능도 함수는 PMF/PDF의 곱으로 표현
할 수 있다.
L ( θ ∣ X ) = ∏ i = 1 n P ( x k ∣ θ ) L(\theta|\boldsymbol{X}) = \prod\limits_{i=1}^n P(\boldsymbol{x}_k|\theta) L ( θ ∣ X ) = i = 1 ∏ n P ( x k ∣ θ )
위의 식을 가능도 함수
이라고 하고 보통은 자연로그를 이용해 아래와 같이 로그가능도 함수(log-likelihood function) l o g L ( θ ∣ X ) \ log \ L(\theta|\boldsymbol{X}) l o g L ( θ ∣ X ) 를 이용한다.
l o g L ( θ ∣ X ) = ∑ i = 1 n l o g P ( x i ∣ θ ) log \ L(\theta|\boldsymbol{X}) = \sum\limits_{i=1}^nlog \ P(\boldsymbol{x}_i|\theta) l o g L ( θ ∣ X ) = i = 1 ∑ n l o g P ( x i ∣ θ )
log 함수는 단조증가 함수
이기 때문에 likelihood function와 log-likelihood function가 최대값을 갖게 해주는 정의역의 함수 입력값은 동일하다.
즉, 로그가능도를 최적화하는 모수 θ \theta θ 는 가능도를 최적화하는 MLE가 된다.
로그가능도 사용하는 이유
컴퓨터는 수억 단위를 계산할 때, 오차가 커진다. 만약 데이터가 독립일 경우, 곱셈을 덧셈으로 바꿀 수 있으므로 데이터가 커도 컴퓨터로 연산이 가능해진다.
경사하강법으로 가능도를 최적화할 때, 미분 연산량이 O ( n 2 ) O(n^2) O ( n 2 ) 에서 O ( n ) O(n) O ( n ) 으로 줄어든다.
대개의 손실함수의 경우 경사하강법을 사용하므로 목적식을 최소화 시킨다. 하지만, 로그 가능도의 경우 극대값을 찾게 된다. 그러므로 로그 가능도를 최소화시키는 목적식으로 변형하기 위해서, 음의 로그가능도
(negative log-likelihood)를 최적화하게 된다.
3.2. 예제: 정규분포
θ ^ M L E = a r g m a x θ L ( θ ∣ x ) = a r g m a x μ , σ 2 P ( X ∣ μ , σ 2 ) \hat{\theta}_{MLE} = \underset{\theta}{argmax} \ L(\theta|\boldsymbol{x}) = \underset{\mu, \sigma^2}{argmax} \ P(\boldsymbol{X}|\mu,\sigma^2) θ ^ M L E = θ a r g ma x L ( θ ∣ x ) = μ , σ 2 a r g ma x P ( X ∣ μ , σ 2 )
l o g L ( θ ∣ x ) = l o g ∏ i = 1 n P ( x i ∣ θ ) = ∑ i = 1 n l o g P ( x i ∣ θ ) = ∑ i = 1 n l o g e − ( x i − μ ) 2 2 σ 2 2 π σ 2 = − n 2 l o g 2 π σ 2 − ∑ i = 1 n ( x i − μ ) 2 2 σ 2 log \ L(\theta|\boldsymbol{x}) = log \ \prod\limits_{i=1}^n P(x_i|\theta) = \sum\limits_{i=1}^nlog \ P(x_i|\theta) = \sum\limits_{i=1}^n log \frac{e^{-\frac{(\boldsymbol{x}_i-\mu)^2}{2\sigma^2}}}{\sqrt{2\pi\sigma^2}} = -\frac{n}{2}log\ 2\pi\sigma^2 - \sum\limits_{i=1}^n\frac{(x_i-\mu)^2}{2\sigma^2} l o g L ( θ ∣ x ) = l o g i = 1 ∏ n P ( x i ∣ θ ) = i = 1 ∑ n l o g P ( x i ∣ θ ) = i = 1 ∑ n l o g 2 π σ 2 e − 2 σ 2 ( x i − μ ) 2 = − 2 n l o g 2 π σ 2 − i = 1 ∑ n 2 σ 2 ( x i − μ ) 2
∂ l o g L ∂ μ = 1 σ 2 ∑ i = 1 n ( x i − μ ) = 1 σ 2 { ∑ i = 1 n x i − n μ } = 0 \frac{\partial log L}{\partial \mu} = \frac{1}{\sigma^2}\sum\limits_{i=1}^n(x_i-\mu) = \frac{1}{\sigma^2}\Big\{\sum\limits_{i=1}^nx_i-n\mu\Big\} = 0 ∂ μ ∂ l o g L = σ 2 1 i = 1 ∑ n ( x i − μ ) = σ 2 1 { i = 1 ∑ n x i − n μ } = 0
l o g L ( θ ∣ x ) log \ L(\theta|\boldsymbol{x}) l o g L ( θ ∣ x ) 은 − μ 2 + ⋯ -\mu^2 + \cdots − μ 2 + ⋯ 이므로 미분해서 0이되는 지점이 극대값이다.
∴ μ ^ M L E = 1 n ∑ i = 1 n x i \therefore \hat{\mu}_{MLE} = \frac{1}{n}\sum\limits_{i=1}^nx_i ∴ μ ^ M L E = n 1 i = 1 ∑ n x i
∂ l o g L ∂ σ = − n σ − 1 2 ∑ i = 1 n ( x i − μ ) 2 ∂ ∂ σ ( 1 σ 2 ) = − n σ + 1 σ 3 ∑ i = 1 n ( x i − μ ) 2 = 0 \frac{\partial log L}{\partial \sigma} = -\frac{n}{\sigma} - \frac{1}{2}\sum\limits_{i=1}^n(x_i-\mu)^2\frac{\partial}{\partial \sigma}\Big(\frac{1}{\sigma^2}\Big) = -\frac{n}{\sigma} + \frac{1}{\sigma^3}\sum\limits_{i=1}^n(x_i-\mu)^2 = 0 ∂ σ ∂ l o g L = − σ n − 2 1 i = 1 ∑ n ( x i − μ ) 2 ∂ σ ∂ ( σ 2 1 ) = − σ n + σ 3 1 i = 1 ∑ n ( x i − μ ) 2 = 0
l o g 2 π σ 2 = 2 l o g σ + ⋯ log\ 2\pi\sigma^2 = 2log\ \sigma + \cdots l o g 2 π σ 2 = 2 l o g σ + ⋯
l o g L ( θ ∣ x ) log \ L(\theta|\boldsymbol{x}) l o g L ( θ ∣ x ) 는 σ \sigma σ 에 대해 초반에는 − c σ 2 -\frac{c}{\sigma^2} − σ 2 c 의 영향으로 − ∞ -\infin − ∞ 에서 조금 증가하다가 결국에는 l o g σ log\ \sigma l o g σ 의 영향으로 계속 감소하게 된다.
따라서 미분해서 0이되는 지점이 극대값이다.
∴ σ ^ M L E 2 = 1 n ∑ i = 1 n ( x i − μ ) 2 = ( n − 1 ) s 2 n \therefore \hat{\sigma}^2_{MLE} = \frac{1}{n}\sum\limits_{i=1}^n(x_i-\mu)^2 = \frac{(n-1)s^2}{n} ∴ σ ^ M L E 2 = n 1 i = 1 ∑ n ( x i − μ ) 2 = n ( n − 1 ) s 2
표본분산의 불편추정량을 보장하는 통계량이다.
MLE는 가능도를 최대화하는 통계량으로 불편추정량을 보장하진 않는다. 하지만, 통계에서 말하는 consistence를 보장해주므로 MLE의 장점도 존재한다.
통계량을 하나만 사용할 필요는 없다.
3.3. 예제: 카테고리 분포
카테고리 분포는 여기 를 참고하자.
카테고리 분포 C a t ( x ∣ p ) Cat(\boldsymbol{x}|\boldsymbol{p}) C a t ( x ∣ p ) 를 따르는 확률변수 X \boldsymbol{X} X 로 부터 독립적인 표본 x 1 , ⋯ , x N {\boldsymbol{x}_1, \cdots, \boldsymbol{x}_N} x 1 , ⋯ , x N 을 얻었을 때, MLE를 이용해 모수를 추정하자.
θ ^ M L E = a r g m a x θ L ( θ ∣ x ) = a r g m a x p 1 , ⋯ , p K P ( X ∣ θ ) \hat{\theta}_{MLE} = \underset{\theta}{argmax} \ L(\boldsymbol{\theta}|\boldsymbol{x}) = \underset{p_1, \cdots, p_K}{argmax} \ P(\boldsymbol{X}|\boldsymbol{\theta}) θ ^ M L E = θ a r g ma x L ( θ ∣ x ) = p 1 , ⋯ , p K a r g ma x P ( X ∣ θ )
l o g L ( θ ∣ x ) = l o g ∏ n = 1 N P ( x n ∣ θ ) = l o g ∏ n = 1 N ∏ k = 1 K p k x n , k log \ L(\boldsymbol{\theta}|\boldsymbol{x}) = log \ \prod\limits_{n=1}^N P(\boldsymbol{x}_n|\boldsymbol{\theta}) = log \ \prod\limits_{n=1}^N \prod\limits_{k=1}^K p_k^{x_{n, k}} l o g L ( θ ∣ x ) = l o g n = 1 ∏ N P ( x n ∣ θ ) = l o g n = 1 ∏ N k = 1 ∏ K p k x n , k
l o g ∏ n = 1 N ∏ k = 1 K p k x n , k = ∑ n = 1 N ∑ k = 1 K x n , k l o g p k = ∑ k = 1 K ∑ n = 1 N x n , k l o g p k log \ \prod\limits_{n=1}^N \prod\limits_{k=1}^K p_k^{x_{n, k}} = \sum\limits_{n=1}^N\sum\limits_{k=1}^Kx_{n,k}\ log\ p_k = \sum\limits_{k=1}^K\sum\limits_{n=1}^Nx_{n,k}\ log\ p_k l o g n = 1 ∏ N k = 1 ∏ K p k x n , k = n = 1 ∑ N k = 1 ∑ K x n , k l o g p k = k = 1 ∑ K n = 1 ∑ N x n , k l o g p k
x n , k x_{n,k} x n , k 의 값은 0 또는 1이다.
∑ n = 1 N x n , k \sum\limits_{n=1}^Nx_{n,k} n = 1 ∑ N x n , k 은 주어진 데이터에 대해서 k k k 번째 원소 중 1인 값을 세는 것과 같다.
이를 n k n_k n k 라고 하자. n k = ∑ n = 1 N x n , k n_k = \sum\limits_{n=1}^Nx_{n,k} n k = n = 1 ∑ N x n , k
l o g ∏ n = 1 N ∏ k = 1 K p k x n , k = ∑ k = 1 K n k l o g p k , with ∑ k = 1 K p k = 1 log \ \prod\limits_{n=1}^N \prod\limits_{k=1}^K p_k^{x_{n, k}} = \sum\limits_{k=1}^Kn_k\ log\ p_k \ , \ \ \text{with} \ \ \ \sum\limits_{k=1}^K p_k = 1 l o g n = 1 ∏ N k = 1 ∏ K p k x n , k = k = 1 ∑ K n k l o g p k , with k = 1 ∑ K p k = 1
l o g L ( θ ∣ x ) = L ( p 1 , ⋯ , p K , λ ) = ∑ k = 1 K n k l o g p k − λ ( ∑ k = 1 K p k − 1 ) log \ L(\boldsymbol{\theta}|\boldsymbol{x}) = \mathcal{L}(p_1, \cdots, p_K, \lambda) = \sum\limits_{k=1}^Kn_k\ log\ p_k - \lambda(\sum\limits_{k=1}^Kp_k-1) l o g L ( θ ∣ x ) = L ( p 1 , ⋯ , p K , λ ) = k = 1 ∑ K n k l o g p k − λ ( k = 1 ∑ K p k − 1 )
L \mathcal{L} L 의 gradient vector가 0인 지점이 최적점이다.
∂ l o g L ( θ ∣ x ) ∂ p k = ∂ L ( p 1 , ⋯ , p K , λ ) ∂ p k = ∂ ∂ p k { ∑ k = 1 K n k l o g p k − λ ( ∑ k = 1 K p k − 1 ) } = 0 \frac{\partial log \ L(\boldsymbol{\theta}|\boldsymbol{x})}{\partial p_k} = \frac{\partial\mathcal{L}(p_1, \cdots, p_K, \lambda)}{\partial p_k} = \frac{\partial}{\partial p_k}\Bigg\{\sum\limits_{k=1}^Kn_k\ log\ p_k - \lambda\Big(\sum\limits_{k=1}^Kp_k-1\Big)\Bigg\} = 0 ∂ p k ∂ l o g L ( θ ∣ x ) = ∂ p k ∂ L ( p 1 , ⋯ , p K , λ ) = ∂ p k ∂ { k = 1 ∑ K n k l o g p k − λ ( k = 1 ∑ K p k − 1 ) } = 0
∴ n k p k = λ \therefore \frac{n_k}{p_k} = \lambda ∴ p k n k = λ
∂ l o g L ( θ ∣ x ) ∂ λ = ∂ L ( p 1 , ⋯ , p K , λ ) ∂ λ = ∂ ∂ λ { ∑ k = 1 K n k l o g p k − λ ( ∑ k = 1 K p k − 1 ) } = 0 \frac{\partial log \ L(\boldsymbol{\theta}|\boldsymbol{x})}{\partial \lambda} = \frac{\partial\mathcal{L}(p_1, \cdots, p_K, \lambda)}{\partial \lambda} = \frac{\partial}{\partial \lambda}\Bigg\{\sum\limits_{k=1}^Kn_k\ log\ p_k - \lambda(\sum\limits_{k=1}^Kp_k-1)\Bigg\} = 0 ∂ λ ∂ l o g L ( θ ∣ x ) = ∂ λ ∂ L ( p 1 , ⋯ , p K , λ ) = ∂ λ ∂ { k = 1 ∑ K n k l o g p k − λ ( k = 1 ∑ K p k − 1 ) } = 0
∴ ∑ k = 1 K p k = 1 \therefore \sum\limits_{k=1}^Kp_k = 1 ∴ k = 1 ∑ K p k = 1
n k p k = λ \frac{n_k}{p_k} = \lambda p k n k = λ 를 ∑ k = 1 K p k = 1 \sum\limits_{k=1}^Kp_k = 1 k = 1 ∑ K p k = 1 에 대입하자.
∑ k = 1 K n k λ = 1 → λ = ∑ k = 1 K n k = N \sum\limits_{k=1}^K \frac{n_k}{\lambda} = 1 \ \ \rightarrow \ \ \lambda = \sum\limits_{k=1}^Kn_k = N k = 1 ∑ K λ n k = 1 → λ = k = 1 ∑ K n k = N
∴ p k = n k N \therefore p_k = \frac{n_k}{N} ∴ p k = N n k
MLE를 통해 기계학습 모델을 학습할 수 있다.
딥러닝 모델의 가중치를 θ = ( W ( 1 ) , ⋯ , W ( L ) ) \theta = (\boldsymbol{W}^{(1)}, \cdots ,\boldsymbol{W}^{(L)}) θ = ( W ( 1 ) , ⋯ , W ( L ) ) 라고 했을 때, 분류 문제
에서 softmax vector는 카테고리분포의 모수 ( p 1 , ⋯ , p K ) (p_1, \cdots, p_K) ( p 1 , ⋯ , p K ) 를 모델링한다.
one-hot vector로 표현한 정답레이블 y = ( y 1 , ⋯ , y K ) \boldsymbol{y} = (y_1,\cdots,y_K) y = ( y 1 , ⋯ , y K ) 을 관찰데이터로 이용해 확률분포인 sofrmax vector의 log MLE를 최적화할 수 있다.
θ ^ M L E = a r g m a x θ 1 N ∑ n = 1 N ∑ k = 1 K y n , k l o g { M L P θ ( X n ) } k \hat{\theta}_{MLE} = \underset{\theta}{argmax} \ \frac{1}{N}\sum\limits_{n=1}^N\sum\limits_{k=1}^K y_{n,k} \ log \ \{MLP_\theta(\boldsymbol{X}_n)\}_k θ ^ M L E = θ a r g ma x N 1 n = 1 ∑ N k = 1 ∑ K y n , k l o g { M L P θ ( X n ) } k
위의 수식을 잘 기억하자.
4. 확률분포의 거리
기계학습에서 사용되는 손실함수들
은 모델이 학습하는 확률분포와 데이터 에서 관찰되는 확률분포의 거리를 통해 유도
된다.
즉, 손실함수는 정답 레이블 y y y 의 확률분포와 예측 레이블 y ^ \hat{y} y ^ 의 확률분포 거리를 통해 유도된다.
MLE를 사용 하는 모델 학습 방법론은 확률분포 거리를 최적화하는 것과 밀접한 관련이 있다.
데이터 공간에, 실제 값의 확률분포 P ( X ) P(X) P ( X ) 와 예측 값의 확률분포 Q ( X ) Q(X) Q ( X ) 가 있을 때, 두 확률분포 사이의 거리
를 계산할 때 다음과 같은 함수들을 이용한다.
총변동 거리(TV: Total Variation Distance)
쿨백-라이블러 발산(KL: Kullback-Leibler Divergence)
바슈타인 거리(Wasserstein Distance)
이번 포스트에선 쿨백-라이블러 발산(KL: Kullback-Leibler Divergence)에 대해서 알아볼 것이다.
Entroy는 여기 를 참고하자.
Cross entropy
와 쿨백-라이블러 발산(KL: Kullback-Leibler Divergence)
는 밀접한 관계
를 가지고 있기 때문에 같이 정리하겠다.
Cross entropy는 두 확률 분포 P , Q P, Q P , Q 사이의 차이를 측정하는 지표
이다.
Entropy는 하나의 확률 분포에 대한 측정 지표라면, Cross entropy는 두 확률 분포에 대한 측정 지표이다.
Cross entropy의 수학적 정의는 아래와 같다.
H ( P , Q ) = H ( P ) + D K L ( P ∣ ∣ Q ) H(P, Q) = H(P) + D_{KL}(P||Q) H ( P , Q ) = H ( P ) + D K L ( P ∣ ∣ Q )
첫번째 term
은 true probability distribution p의 entropy를 의미한다.
두번째 term
에서 확률분포 P P P 와 Q Q Q 의 정보량 차이가 정의되는데, 이것은 확률분포 P , Q P, Q P , Q 의 차이를 나타내는 지표인 cross entropy의 핵심인 KL divergence
이다.
Cross entropy
는 확률분포 P , Q P, Q P , Q 의 차이를 나타내는 지표이고, KL divergence
는 확률분포 P P P 와 Q Q Q 의 정보량 차이를 정의한다.
optimization 동안 고정되어 있고, optimization 과정에서 approximation probability distribution Q Q Q 가 바뀌며, 이에 따라 KL divergence이 바뀐다.
4.1. KL divergence
두 확률 분포 간의 KL divergence는 정보 이론적인 관점
에서 보면 굉장히 다양한 해석이 가능하며, 놀라움
의 표현이기도 하다.
두 확률 분포 P , Q P, Q P , Q 가 가까웠다는 가정 하에, 만약 P 와 Q P와 Q P 와 Q 가 가깝지 않다면 놀라운 일이며, 이 때 KL divergence는 높은 값을 갖게 되며, 반대로 가정대로 P 와 Q P와 Q P 와 Q 가 가깝다면, 이는 놀랍지 않은 일이며 KL divergence도 낮은 값을 갖게 된다.
Bayesian 관점
에서 보면 KL divergence는 prior distribution Q Q Q 에서 posterior distribution P P P 로 이동할 때 얻어지는 information을 의미합니다.
KL divergence
의 표현은 likelihood ratio approach
를 통해 나타낼 수 있습니다. likelihood ratio는 아래와 같이 쉽게 표현이 가능하다.
L R = P ( x ) Q ( x ) LR = \frac{P(x)}{Q(x)} L R = Q ( x ) P ( x )
만약 어떠한 값 x가 임의의 분포로부터 sampling 되었을 때, likelihood ratio
는 sample이 분포 Q Q Q 보다 분포 P P P 에서 나왔을 확률 을 의미한다.
P P P 에서 나왔을 가능성이 높은 경우 LR은 1보다 큰 값을 갖고, 반대의 경우 1보다 작은 값을 갖는다.
독립적인 sample
이 많이 있고, 이 모든 것들을 고려하여 likelihood function을 추정한다고 가정하면, 아래와 같이 LR을 나타낼 수 있습니다.
L R = ∏ i = 0 n P ( x i ) Q ( x i ) → l o g ( L R ) = ∑ i = 0 n l o g ( P ( x i ) Q ( x i ) ) LR = \prod\limits_{i=0}^n\frac{P(x_i)}{Q(x_i)} \ \ \ \ \rightarrow \ \ \ \ log(LR) = \sum\limits_{i=0}^nlog\Bigg(\frac{P(x_i)}{Q(x_i)}\Bigg) L R = i = 0 ∏ n Q ( x i ) P ( x i ) → l o g ( L R ) = i = 0 ∑ n l o g ( Q ( x i ) P ( x i ) )
왼쪽 식을 ratio에서 l o g log l o g 를 씌워주면 오른쪽과 같은 식을 얻을 수 있다. 이를 l o g log l o g likelihood ratio라 부른다.
l o g log l o g 를 통해 likelihood ratio를 모종의 합으로 표현할 수 있게 된다. 이때, 각 sample들이 평균적으로 Q Q Q 보다 P P P 에서 나왔는지를 어떻게 정량화
하는지에 대해 알아보자.
l o g log l o g likelihood ratio에 기대값
을 취하면 정량화
할 수 있다.
E [ l o g ( L R ) ] = ∑ i = 0 n P ( x i ) l o g ( P ( x i ) Q ( x i ) ) \mathbb{E}[log(LR)] = \sum\limits_{i=0}^nP(x_i)log\Bigg(\frac{P(x_i)}{Q(x_i)}\Bigg) E [ l o g ( L R ) ] = i = 0 ∑ n P ( x i ) l o g ( Q ( x i ) P ( x i ) )
l o g log l o g likelihood ratio에 기대값
을 취해준 값이 바로 KL divergence
이다.
D K L ( P ∣ ∣ Q ) = ∑ i = 0 n P ( x i ) l o g ( P ( x i ) Q ( x i ) ) = ∑ i = 0 n P ( x i ) l o g ( P ( x i ) ) + ( − ∑ i = 0 n P ( x i ) l o g ( Q ( x i ) ) ) D_{KL}(P||Q) = \sum\limits_{i=0}^nP(x_i)log\Bigg(\frac{P(x_i)}{Q(x_i)}\Bigg) = \sum\limits_{i=0}^nP(x_i)log(P(x_i)) +\Big(-\sum\limits_{i=0}^nP(x_i)log(Q(x_i))\Big) D K L ( P ∣ ∣ Q ) = i = 0 ∑ n P ( x i ) l o g ( Q ( x i ) P ( x i ) ) = i = 0 ∑ n P ( x i ) l o g ( P ( x i ) ) + ( − i = 0 ∑ n P ( x i ) l o g ( Q ( x i ) ) )
정리하면 KL divergence
는 얼마나 sampled data가 Q Q Q 분포 대신 P P P 분포로부터 나왔는지를 나타내는 l o g log l o g likelihood ratio의 기대값
이다.
첫번째 term
은 P P P 분포에 대한 negative entropy
를 의미한다.
두번째 term
은 P P P 분포에 대한 Q Q Q 분포의 cross entropy
를 의미한다.
두번째 term은 P P P 분포에 의해 weighted 되어서 계산이된 Q Q Q 분포의 entropy이다.
만약 P P P 가 true distribution(실제 값의 확률분포)인 경우, KL divergence
는 Q Q Q 를 통해 표현할 때 손실된 정보의 양
을 의미합니다.
추상적으로 생각해보면, 만약 P P P 분포와 Q Q Q 분포가 거의 같은 분포였다면, P P P 를 Q Q Q 로 나타내도 정보의 손실이 거의 발생하지 않을 것이다.
하지만 두 분포가 차이가 있었다면, P P P 를 Q Q Q 로 나타내는 과정에서 정보가 손실이 될 것이며, 이를 수식적으로 나타낸 값이 위의 식이다.
KL divergence의 가장 중요한 특징은 교환법칙이 성립하지 않는다는 것이다.
K L ( P ∣ ∣ Q ) ≠ K L ( Q ∣ ∣ P ) \mathbb{KL}(P||Q) \ne \mathbb{KL}(Q||P) K L ( P ∣ ∣ Q ) = K L ( Q ∣ ∣ P ) → 부산-서울 최적 거리 ≠ \ne = 서울-부산 최적 거리
쿨백-라이블러 발산(KL: Kullback-Leibler Divergence)은 다음과 같이 정의된다.
이산확률변수 → K L ( P ∣ ∣ Q ) = ∑ x ∈ X P ( x ) l o g ( P ( x ) Q ( x ) ) \mathbb{KL}(P||Q)=\sum\limits_{x\in\mathcal{X}}P(x)log\Big(\frac{P(x)}{Q(x)}\Big) K L ( P ∣ ∣ Q ) = x ∈ X ∑ P ( x ) l o g ( Q ( x ) P ( x ) )
연속확률변수 → K L ( P ∣ ∣ Q ) = ∫ x ∈ X P ( x ) l o g ( P ( x ) Q ( x ) ) d x \mathbb{KL}(P||Q)=\int\limits_{x\in\mathcal{X}}P(x)log\Big(\frac{P(x)}{Q(x)}\Big)dx K L ( P ∣ ∣ Q ) = x ∈ X ∫ P ( x ) l o g ( Q ( x ) P ( x ) ) d x
분류 문제에서 정답 레이블 y y y 를 P P P , 모델 예측 y ^ \hat{y} y ^ 를 Q Q Q 라 두면, MLP에서 MLE의 가능도함수
L ( θ ∣ x ) L(\theta|x) L ( θ ∣ x ) 는 쿨백-라이블러 발산의 -크로스 엔트로피
E x ∼ P ( X ) [ l o g Q ( x ) ] \mathbb{E}_{x \sim P(X)}[logQ(x)] E x ∼ P ( X ) [ l o g Q ( x ) ] 와 같게 된다.
다시말해, MLP에서 MLE를 하는 것은 가능도함수의 최대값
을 찾는 것이고, 쿨백-라이블러 발산의 크로스 엔트로피
− E x ∼ P ( X ) [ l o g Q ( x ) ] -\mathbb{E}_{x \sim P(X)}[logQ(x)] − E x ∼ P ( X ) [ l o g Q ( x ) ] 의 최솟값
을 찾는 것과 같다.
분류 문제에서 정답 레이블 y y y 를 P P P , 모델 예측 y ^ \hat{y} y ^ 를 Q Q Q 라 두면, MLE은 쿨백-라이블러 발산을 최소화하
는 것과 같다.
4.2. Cross entropy
위에서 정의했던 cross entropy 함수를 보면, P P P 와 Q Q Q 의 cross entropy는 true distribution P P P 의 entropy와, P P P 와 Q Q Q 의 KL divergence의 합으로 정의가 되어있다.
이 두 term을 더하면 cross entropy를 아래와 같은 식으로 나타낼 수 있다.
H ( P , Q ) = H ( P ) + D K L ( P ∣ ∣ Q ) = − ∑ i = 0 n P ( x i ) l o g P ( x i ) + ∑ i = 0 n P ( x i ) l o g P ( x i ) − ∑ i = 0 n P ( x i ) l o g ( Q ( x i ) ) H(P,Q) = H(P) + D_{KL}(P||Q) = -\sum\limits_{i=0}^nP(x_i)\ log_\ P(x_i) + \sum\limits_{i=0}^nP(x_i)\ log_\ P(x_i) -\sum\limits_{i=0}^nP(x_i)log(Q(x_i)) H ( P , Q ) = H ( P ) + D K L ( P ∣ ∣ Q ) = − i = 0 ∑ n P ( x i ) l o g P ( x i ) + i = 0 ∑ n P ( x i ) l o g P ( x i ) − i = 0 ∑ n P ( x i ) l o g ( Q ( x i ) )
∴ H ( P , Q ) = − ∑ i = 0 n P ( x i ) l o g ( Q ( x i ) ) \therefore H(P,Q) = -\sum\limits_{i=0}^nP(x_i)log(Q(x_i)) ∴ H ( P , Q ) = − i = 0 ∑ n P ( x i ) l o g ( Q ( x i ) )
주로 classification 문제를 풀 때 cross entropy loss를 사용한다.
예를 들어 0~9까지 손으로 쓴 숫자를 분류하는 MNIST classification에서 숫자 2의 경우 GT: ground truth은 {0, 0, 1, 0, 0, 0, 0, 0, 0, 0}이 된다.
Classification의 경우, NN(nerual network) 모델의 output layer에 보통 softmax layer를 마지막에 붙여줘서 output 값들이 0~1사이의 확률 값이 되고 다 더하면 1이 되도록 만들어준다.
NN 모델이 다음과 같이 예측하였다고 가정하다.
Q Q Q = {0.01, 0.02, 0.75, 0.05, 0.02, 0.1, 0.001, 0.02, 0.009, 0.02}
neural network가 예측한 Q Q Q 와 P P P 의 차이를 측정하려면 어떻게 하면 좋을까? 두 확률 분포 간의 차이를 측정하는 지표인 cross entropy
를 사용하면 된다.
P P P 는 이미 one-hot encoding이 되어있기 때문에 2번째 값을 제외하면 모두 0 값을 갖게 된다.
이렇게 P P P 가 one-hot encoding 되어있는 경우 하나를 제외하고 모두 0이므로, cross entropy는 시그마를 사용하지 않고 나타낼 수 있다.
H ( P , Q ) = − 1 × l o g ( Q ( x i ) ) H(P,Q) = -1 \times log(Q(x_i)) H ( P , Q ) = − 1 × l o g ( Q ( x i ) )
여기 예시에서 cross entropy loss는 − l o g ( 0.75 ) = 0.287 -log(0.75)=0.287 − l o g ( 0 . 7 5 ) = 0 . 2 8 7 값을 갖는다.
Q ( x i ) Q(x_i) Q ( x i ) 가 1 1 1 에 가까워질수록 loss는 0으로 수렴할 것이다.
이렇게 cross entropy를 최소화
하면서 neural network를 학습시키게 되는데, 이 cross entropy 식 자체가 P P P 에 대한 Entropy와 P , Q P, Q P , Q 간의 KL divergence의 합으로 구성이 되어있기 때문에 어떻게 보면 KL divergence를 최소화
하는 것과 같다.
References