본문 바로가기

부스트캠프 AI Tech 3기/이론 : U-stage

[Day4] AI math 7. 통계학 맛보기 : 모수, 확률분포, 정규분포,최대가능도 추정법, MLE, 로그가능도, 확률분포 거리, 쿨백라이블러 발산

 

통계적 모델링은 적절한 가정 위해서 확률분포를 추정하는 것이 목표이다

다양한 확률분포를 사용해서 모델링할 것이냐가 중요하다

 

일부의 데이터로 모든 데이터의 분포를 정확하게 알아낸다는 것은 불가능하므로 근사적으로 확률분포를 추정할 수 밖에 없다.

모수 Parameter

  • 모수적 방법론 parametric
    데이터가 특정 확률분포를 따른다고 선험적으로 (a priori) 가정한 후 그 분포를 결정하는 모수를 추정하는 방법
    ex) 정규분포의 평균과 분산
  • 비모수 방법론 nonparametric
    특정 확률분포를 가정하지 않고 데이터에 따라 모델과 모수의 개수가 바뀌는 방법
    모수가 없는 것이 아니라 모수가 무한히 많거나 데이터에 따라 모수가 바뀌는 것이다

두 방법론의 차이는 어떤 가정을 미리 부여를 하는지 아닌지에 따라 구별된다

 

확률분포 가정하기

히스토그램, 통계치 등 데이터의 전체적인 모양을 관찰해서 확률분포를 가정해야 한다.

데이터로 추정해야하는 값이 분포
0 or 1 과 같은 2개의 값 베르누이 분포
n개의 이산적인 값 카테고리 분포
0~1사이의 값 베타 분포
0이상의 값 감마 분포, 로그정규 분포
실수 전체의 값 정규 분포, 라플라스 분포

이것에 따라서 확률분포를 가정하지 말고, 데이터의 생성원리를 고려해서 가정해야 한다.

또한, 모수를 추정하고 통계적 검정을 통해 적절하게 예측하고 있는지 확인해보아야 한다.

 

정규분포의 모수

  • 평균 $\mu=\mathbb{E}[\bar{X}]$
    모집단의 평균
    표본평균의 기대값
  • 표본평균 $\bar{X}$
    주어진 데이터들의 산술평균
    $$\bar{X}=\frac{1}{N}\sum^{N}_{i=1} X_i$$
  • 분산 $\sigma^2=\mathbb{E}[S^2]$
    모집단의 분산
    표본분산의 기대값
  • 표본분산 $S^2$
    주어진 데이터와 표본평균의 차이의 제곱의 산술평균
    $$S^2=\frac{1}{N-1} \sum^{N}_{i=1}(X_{i}- \bar{X})^2$$
    N-1로 나누는 이유는 기대값을 취했을 때 불편 추정량을 구하기 위해서이다.
    이렇게 나누면 모집단의 분산과 더욱 일치한다

표집분포 Sampling distribution

표본평균과 표본분산같은 통계량의 확률분포를 표집분포라고 부른다.

표집분포(표본평균,표본분산의 확률분포 : sampling distribution)과 표본분포 (표본들의 분포 : sample distribution)은 다르다.

 

중심극한정리 Central Limit Theorem

표집분포중에서도 특히 표본평균의 표집분포는 N(표본의 수=데이터 수)가 커질수록 정규분포를 따르게 되는 것

모집단의 분포가 정규분포를 따르지 않아도 성립한다

 

 

예측

정규분포 뿐만아니라 기계학습이 이렇게 진행된다고 생각한다.

주어진 데이터(=표본)를 가지고 데이터의 확률분포의 모수를 추정한다.

그 추정된 모수를 가지고 원래 데이터에서의 성질을 취합해볼 수 있다.

그래서 그 통계적 모델의 통계량을 사용해서 예측이나 의사결정을 할 수 있다.

최대가능도 추정법 MLE : Maximum Likelihood Estimation

정규분포에서는 표본평균이나 표본분산이 확률분포를 잘 나타내는 중요한 통계량(모수)이다.

하지만 이는 확률분포마다 달라지기 때문에 가장 가능성이 높은 모수를 추정하는 최대가능도 추정법을 이용한다.

 

$$\hat{\theta}_{MLE} = \underset{\theta}{argmax}L(\theta;\textbf{x}) = \underset{\theta}{argmax}P(\textbf{x}|\theta)$$

※모수 : $\theta$

$L(\theta;\textbf{x})$는 원래 관찰되는 확률질량함수/확률밀도함수랑 같다.

이는 모수 $\theta$가 주어져 있을 때 $\textbf{x}$에 대한 함수이다.

 

최대가능도함수는 주어진 데이터 x에 대해서 모수 $\theta$를 변수로 둔 함수이다.

$\theta$를 변형시킴에 따라 값이 바뀌는 함수이다.

모수 $\theta$를 따르는 분포가 데이터 x를 관찰할 가능성으로 생각하면 된다.

 

하지만 가능성이지 확률이 아니다.

모두 다해서 1이 되지도 않기도 하다.

그래서 확률이 아닌 대소비교가 가능한 함수로 이해하면 된다.

 

로그가능도

데이터집합 $\textbf{X}$에서 행벡터 $\textbf{x}_i$를 독립적으로 추출되었을 경우

확률질량함수/확률밀도함수의 $P(\textbf{x}_i|\theta)$ 곱으로 표현할 수 있다.

$$ L(\theta;\textbf{X})=\prod^{n}_{i=1} P(\textbf{x}_i|\theta)$$

 

로그를 사용하면 곱을 덧셈으로 사용할 수 있기 때문에 위의 식에 로그를 씌워서 덧셈으로 표현하면

$$ log L(\theta;\textbf{X})=\sum^{n}_{i=1} log P(\textbf{x}_i|\theta)$$

이렇게 된다.

그래서 이 로그가능도를 최적화한다

 

로그가능도를 사용하는 이유 ->최적화

  • 데이터의 수가 억단위가 되면 컴퓨터에서 가능도 계산이 불가능하다
    로그가능도는 덧셈으로 바꿀 수 있기 때문에 컴퓨터에서 연산이 가능해진다.
  • 가능도를 최적화할 때 경사하강법을 하는데 이때 미분연산을 한다.
    원래 최대가능도에서의 연산량은 $O(n^2)$인데 로그가능도를 사용하면 $O(n)$로 준다

최대가능도의 각 모수에 대한 편미분이 0이 되게하는 값(모수)이 가능도를 최대화할 수 있다

 

딥러닝에서 최대가능도 추정법

딥러닝 모델(Multi layer perceptron)의 가중치는 $\theta=(\textbf{W}^{(1)}, \dotsb,\textbf{W}^{(L)})$ 이다.

딥러닝 모델을 분류문제에 적용하면 마지막 layer에서 softmax벡터를 이용해서 조건부확률 분포를 계산할 수 있었다.

 

이 softmax확률 벡터가 카테고리 분포의 모수를 모델링하는데 사용된다. 여기서 softmax 벡터는 확률분포이다.

one-hot 벡터로 표현한 정답레이블 $\textbf{y}= (y_1, \dotsb, y_k)$을 사용해서 softmax벡터의 로그가능도를 최적화하는 방향으로 $\theta$를 학습시킬 수 있다.

 

$$\hat{\theta}_{MLE} = \underset{\theta}{argmax} \frac{1}{n} \sum^{n}_{i=1} \sum^{K}_{k=1} y_{i,k}log(MLP_{\theta} (\textbf{x}_i)_k)$$

※k:클래스의 갯수

※n:데이터의 총 갯수

 

각 데이터에 대한 MLP의 예측값과 그 데이터의 정답레이블 $y_{i,k}$를 곱한 것들의 덧셈으로 이루어져 있다.

 

확률분포의 거리 Distance

손실함수들은 기계학습 모델이 학습하는 확률분포와 데이터에서 관찰되는 확률분포의 거리를 통해 유도된다.

당연히 거리가 좁아야 좋은 모델이 될 것 이다.

 

데이터 공간에 두 개의 확률분포 $P(\textbf{x})$와 $Q(\textbf{x})$가 있다고 하자

이 두 확률분포 사이의 거리 distance를 구하는 방법은 여러 방법이 있다

  • 총변동거리 Total Variation Distance, TV
  • 바슈타인거리 Wasserstein Distance
  • 쿨백-라이블러 발산 Kullback-Leibler Divergence : KL

이 중 쿨백 라이블러 발산에 대해서만 알아보자

쿨백-라이블러 발산 Kullback-Leibler Divergence

  • 이산확률변수
    $$ \mathbb{KL}(P\parallel{Q})= \sum_{\textbf{x} \in X} P(\textbf{x})log(\frac{P(\textbf{x})}{Q(\textbf{x})})$$

  • 연속확률변수
    $$ \mathbb{KL}(P\parallel{Q})= \int_{X} P(\textbf{x})log(\frac{P(\textbf{x})}{Q(\textbf{x})})d\textbf{x}$$

더해주고, 적분하는 것만 다르다

이것을 두 개의 항으로 분해할 수 있다

$$\mathbb{KL}(P\parallel Q )= -\mathbb{E}_{\textbf{x}\sim P(\textbf{x})}[logQ(\textbf{x})]  +  \mathbb{E}_{\textbf{x}\sim P(\textbf{x})}[logP(\textbf{x})] $$

 

간단하게 $KL(P\parallel Q)=H(P,Q)-H(P)$

 

앞으로 항-\mathbb{E}_{\textbf{x}\sim P(\textbf{x})}[logQ(\textbf{x})]을 coross entropy 크로스 엔트로피 라고 부르고,

뒤의 항 \mathbb{E}_{\textbf{x}\sim P(\textbf{x})}[logP(\textbf{x})] $$을 엔트로피라고 한다.

 

여기에서 딥러닝에서의 정답레이블 y을 쿨백라이블러의 P(x)에 대응시키고, 딥러닝에서의 예측 모델P(x)을 쿨백라이블러의 Q(x)라고 생각하면 

최대가능도 추정법에서 손실함수가 쿨백-라이블러의 크로스 엔트로피에 -를 곱한 값와 같아지게 된다.

$$\hat{\theta}_{MLE} = \underset{\theta}{argmax} \frac{1}{n} \sum^{n}_{i=1} \sum^{K}_{k=1} y_{i,k}log(MLP_{\theta} (\textbf{x}_i)_k)$$

 

다시 말하면 최대가능도 추정법에서 log likelihood를 최대화시키는 것과 쿨백라이블러 발산해서 구한 거리를 최소화하는 것이 동일하게 된다.