본문 바로가기
BoostCamp AI Tech - U Stage

BoostCamp AI Tech - Day10

by getamped 2021. 2. 1.

딥러닝에 밀접하게 쓰일 통계학을 입문하는 것을 배웠다.

 

 

※ 확률 VS 가능도?

 

확률 :  주어진 모델 파라마티 값과 어떠한 관찰된 데이터에 대한 참조 없이, 랜덤 출력에 대한 일어날 뻔한 가능성

$f(x|\theta)$

가능도 : 주어진 특정한 관찰된 데이터를 기반으로 하여 모델 파라미터 값들이 될 뻔한 가능성

$L(x|\theta)$

 

1. 모수

 

통계적 모델링은 적절한 가정위에서 확률분포를 추정(inference)하는 것이 목표이며,기계학습과 통계학이 공통적으로 추구하는 목표이다. 그러나 유한한 개수의 데이터만 관찰해서 모집단의 분포를 정확하게 알아낸다는것은 불가능하므로, 근사적으로 확률분포를 추정할 수 밖에없다

- 데이터가 특정확률 분포를 따른다고 선험적으로(apriori)가정한 후, 그 분포를 결정하는 모수(parameter)를 추정하는 방법을 모수적(parametric)방법론이라한다

- 특정확률분포를 가정하지 않고 데이터에 따라 모델의 구조 및 모수의 개수가 유연하게 바뀌면 비모수(nonparametric)방법론이라고 한다. 이는 기계학습의 많은 방법론은 대부분 비모수 방법론이다.

- 기계적으로 확률분포를 가정해서는 안되며, 데이터를 생성하는 원리를 먼저 고려하는 것이 원칙이다. 즉, 각 분포마다 검정하는 방법들이 있으므로 모수를 추정한 후에는 반드시 검정을 해야한다

 

2. 데이터로 모수를 추정하기

 

- 표본평균

$\overline{X}=\sum_{i=1}^{N}X_i$

$E(\overline{X})=\mu$

- 표본분산

$S^2=\frac{1}{N-1}\sum_{i=1}^{N}({X-\bar{X}})^{2}

$E(S^2)={\sigma}^2$

(표본분산을 구할때 $N$이아니라 $N-1$로 나누는 이유는 불편(unbiased)추정량을 구하기위함이다)

- 통계량의 확률분포를 표집분포(samplingdistribution)라부르며, 특히, 표본평균의 표집분포는 $N$이 커질수록 정규분포 $N(\mu,\frac{{\sigma}^2}{N})$를따릅니다

 

중심극한정리

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

 

 

3. 최대가능도 추정법(Maximum Likelihood Estimation)

-  이론적으로 가장 가능성이 높은 모수를 추정하는 방법 중 하나이다. 표본평균이나 표본분산은 중요한 통계량이지만 확률분포마다 사용하는 모수가 다르므로 적절한 통계량이 달라지게 된다.

 

(가능도함수는 모수 $\theta$ 를 따르는 분포가 x를 관찰할 가능성을 뜻하지만, 확률로 해석하면 안된다.)

 

- 데이터 집합 X가 독립적으로 추출되었을 경우 로그가능도를 최적화한다.

3.1 로그가능도를 사용하는 이유

- 로그가능도를 최적화하는 모수 $\theta$ 는가능도를 최적화하는 MLE가 된다

- 데이터의 숫자가 적으면 상관없지만, 만약에 데이터의 숫자가 수억단위가 된다면 컴퓨터의 정확도로는 가능도를 계산하는것은 불가능하다

- 데이터가 독립일 경우, 로그를 사용하면 가능도의 곱셈을 로그가능도의 덧셈으로 바꿀 수 있기때문에 컴퓨터로 연산이가능해진다

- 경사하강법으로 가능도를 최적화할 때 미분연산을사용하게되는데, 로그가능도를 사용하면 연산량을 $O(n^2)$ 에서 $ O(n)$ 으로 줄여준다

- 대개의 손실함수의 경우 경사하강법을 사용하므로 음의 로그가능도 (negative log-likelihood)를 최적화한다.

 

3.2 최대가능도 추정법 예제 - 정규분포

 

정규분포를 따르는 확률변수 X로부터 독립적인 표본 ${x_1,...,x_n}$을 얻었을 때, 최대가능도 추정법을 이용하여 모수를 추정한다고 해보자. 위의 최대가능도 추정법식에서 로그가능도로 계산하는 과정은 다음과 같다. (여기서 $P(x_i|\theta)$ 는 정규분포 함수이다.)

 

두 미분이 모두 0 이 되는 $\mu $ , $\sigma $ 를 찾으면 가능도를 최대화하게 된다. 위의 식을 평균($\mu $)으로 편미분하면 다음과 같다.

 

(출처 : AI Tech 강의 자료)

(사진 짤린건 안 비밀)

(여기서 $\hat{\mu}_{MLE}$ 는 평균에 대한 최대 가능도, $\hat{\sigma}_{MLE}^{2}$은 분산에 대한 최대 가능도를 뜻한다.)

 

3.3 최대가능도 추정법 예제 - 카테코리 분포

 

이산확률 분포에 해당하는 카테고리 분포(One-Hot Vector를 사용한다.) Multinouli $(x;p_1,...,p_d)$ 를 따르는 확률변수 $X$ 로부터 독립적인 표본 ${x_1,...,x_n}$ 을 얻었을 때, 최대가능도 추정법을 이용하여 모수를 추정한다고 하자.

이 때, 카테고리 분포의 모수는 $ \sum_{k=1}^{d}p_k=1 $ 이라는 제약식을 만족해야 한다.

 

$ log(\prod_{i=1}^{n}\prod_{k=1}^{d}p_{k}^{x_{i,k}})=\sum_{k=1}^{d}(\sum_{i=1}^{n}x_{i,k})log(p_k) $

 

(단, $ n_k = \sum_{i=1}^{n}x_{i,k} $ : 주어진 $x_1$ 에 대해서 k값에 따른 데이터의 개수를 말한다)

 

위의 제약식을 만족하면서 왼쪽 목적식을 최대화하는 것이 우리가 구하는 MLE가 된다.

 

목적식을 아래와 같이 "라그랑주 승수법"을 통해 최적화 문제를 풀 수 있다고 한다.

 

$L(p_1,...,p_k,\lambda) = \sum_{k=1}^{d}n_klog p_k + \lambda(1-\sum_{k}p_k)$

 

위의 식을 각각 p_k, $ \lambda $로 미분하면 다음과 같다.

 

$0=\frac{\partial L}{\partial p_k}=\frac{n_k}{p_k}-\lambda$

 

$0=\frac{\partial L}{\partial \lambda}=1-\sum_{k=1}^{d}p_k$

 

(단, $p_k=\frac{n_k}{\sum_{k=1}^{d}n_k}$)

 

카테고리 분포의 MLE는 각각의 차원에 해당하는 경우의 수를 세어서 비율을 구하는 것이다.

 

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

 

- 최대가능도 추정법을 이용하여 기계학습 모델을 학습할 수 있다.

- 딥러닝 모델의 가중치를 $ \theta = (W^{(1)},...,W^{(L)}) $ 라 표기했을 때 분류 문제에서 소프트맥스 벡터는 카테고리분포의 모스 $ (p_1,...,p_k) $ 를 모델링 한다.

- 원핫벡터로 표현한 정답레이블 $ y=(y_1,...,y_K) $ 을 관찰데이터로 이용해 확률분포인 소프트맥스 벡터의 로그가능도를 최적화할 수 있다.

 

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

 

3.5 확률분포의 거리 구하기

 

기계학습에서 사용되는 손실함수들은 모델이 학습하는 확률분포와 데이터에서 관찰되는 확률분포의 거리를 통해 유도한다. 데이터 공간에 두 개의 확률 분포 P(x), Q(x)가 있다고 ㅎ면, 두 확률분포 사이의 거리를 계산할 때, 총변동 거리(Total Variation Distance, TV), 쿨백-라이블러 발산(Kullback-Leibler Divergence, KL), 바슈타인거리(Wasserstein Distance)를 이용한다.

 

3.6 쿨백-라이블러 발산(Kullback-Leibler Divergence, KL)

 

- 정의

 

- 쿨백 라이블러는 다음과 같이 분해할 수 있다.

- 분류문제에서 정답레이블을 P, 모델 예측을 Q라두면 최대가능도 추정법은 쿨백-라이블러발산을 최소화 하는 것과 같다

'BoostCamp AI Tech - U Stage' 카테고리의 다른 글

BoostCamp AI Tech - Day12  (0) 2021.02.02
BoostCamp AI Tech - Day11  (0) 2021.02.01
BoostCamp AI Tech - Day09  (0) 2021.01.28
BoostCamp AI Tech - Day08  (0) 2021.01.27
BoostCamp AI Tech - Day07  (0) 2021.01.26

댓글