통계적 모델링은 적절한 가정 위해서 확률분포를 추정하는 것이 목표이다
다양한 확률분포를 사용해서 모델링할 것이냐가 중요하다
일부의 데이터로 모든 데이터의 분포를 정확하게 알아낸다는 것은 불가능하므로 근사적으로 확률분포를 추정할 수 밖에 없다.
모수 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를 최대화시키는 것과 쿨백라이블러 발산해서 구한 거리를 최소화하는 것이 동일하게 된다.
'부스트캠프 AI Tech 3기 > 이론 : U-stage' 카테고리의 다른 글
[Day6] Pytorch 2. Pytorch Basics : Tensor, data types, handling, operations, formula (0) | 2022.01.24 |
---|---|
[Day5] AI math 8. 베이즈 통계학 맛보기 (0) | 2022.01.22 |
[Day4] AI math 6. 확률론 맛보기 : 확률분포, 확률변수, 결합분포, 주변확률분포, 조건부 확률분포, 조건부 확률, 기대값, 몬테카를로 샘플링 (0) | 2022.01.21 |
[DAY4] AI math 5. 딥러닝 학습방법 이해하기 (0) | 2022.01.20 |
[DAY3] AI math 4. 경사하강법 -2 (0) | 2022.01.20 |