AI Math
확률론
딥러닝에서 확률론이 필요한 이유
딥러닝은 확률론 기반 의 기계학습 이론
손실함수(Loss Function)들의 작동 원리: 데이터 공간을 통계적으로 해석해서 유도
L2 노름은 예측오차의 분산을 최소화 하는 방향으로 학습하도록 유도
교차엔트로피(Cross Entropy)는 모델 예측의 불확실성을 최소화 하는 방향으로 학습하도록 유도
분산 및 불확실성 을 최소화하기 위해서는 측정 방법을 알야야 함
확률분포
cf) 데이터가 항상 정당레이블을 가지는 지도학습으로 상정
이산(Descrete)확률변수 와 연속(Continuous)확률변수 는 데이터 공간이 아니라 확률분포의 종류에 따라 구분
실수 영역의 공간이어도 무조건 연속하는 것이 아님.
이산형 확률변수 는 확률변수가 가질 수 있는 모든 경우의 수 를 고려하여 확를을 더해서 모델링
확률질량함수: P ( X ∈ A ) = ∑ x ∈ A P ( X = x ) \mathbb{P}(X\in A) = \sum_{\mathrm{x}\in A}P(X=\mathrm{x}) P ( X ∈ A ) = ∑ x ∈ A P ( X = x )
이 때 P ( X = x ) P(X=\mathrm{x}) P ( X = x ) 는 확률변수가 x값을 가질 확률로 해석
연속형 확률변수 는 데이터 공간에 정의된 확률변수의 밀도(Density) 위에서 적분 을 통해 모델링
밀도함수: P ( x ) = lim h → 0 P ( x − h ≤ X ≤ x + h ) 2 h P(\mathrm{x})=\lim_{h\to0}\cfrac{\mathbb{P}(\mathrm{x}-h\le X \le \mathrm{x}+h)}{2h} P ( x ) = lim h → 0 2 h P ( x − h ≤ X ≤ x + h )
적분: P ( X ∈ A ) = ∫ A P ( x ) d x \mathbb{P}(X\in A) = \int_{A}P(\mathrm{x})d\mathrm{x} P ( X ∈ A ) = ∫ A P ( x ) d x
cf) 밀도는 누적확률분포의 변화율을 모델링 → 확률로 해석하면 안됨
P ( x ) P(\mathrm{x}) P ( x ) 는 입력 x에 대한 주변확률 분포로 *y에 대한 정보를 주지는 않음).
다만, 주변확률분포 P ( x ) P(\mathrm{x}) P ( x ) 는 결합확률분포 P ( x , y ) P(\mathrm{x},y) P ( x , y ) 를 각각의 y에 대해서 더해주거나 적분했을 때 유도 가능
조건부확률분포 P ( x ∣ y ) P(\mathrm{x}|y) P ( x ∣ y ) 는 특정 클래스가 주어진 조건에서 데이터의 확률분포를 보여주며, 데이터 공간에서 입력 x와 출력 y사이의 관계를 모델링
조건부확률과 기계학습
조건부확률 P ( y ∣ x ) P(y|\mathrm{x}) P ( y ∣ x ) 는 입력변수 x에 대한 정답이 y일 확률을 의미하며, 연속확률분포의 경우 P ( y ∣ x ) P(y|\mathrm{x}) P ( y ∣ x ) 는 확률이 아닌 밀도 로 해석
분류문제 에서 softmax(W ϕ + b W\phi+b W ϕ + b )은 데이터 x로부터 추출된 특징패턴 ϕ ( x ) \phi(\mathrm{x}) ϕ ( x ) 과 가중치행렬 W를 통해 조건부확률 P ( y ∣ x ) P(y|\mathrm{x}) P ( y ∣ x ) 을 계산 하며, 이는 P ( y ∣ ϕ ( x ) ) P(y|\phi(\mathrm{x})) P ( y ∣ ϕ ( x ) ) 라고 써도 됨.
회귀문제 (y가 연속하기 때문에 적분으로 표현)의 경우 조건부기대값 E [ y ∣ x ] \mathbb{E}[y|\mathrm{x}] E [ y ∣ x ] 을 추정.
조건부기대값 E y ∼ P ( y ∣ x ) [ y ∣ x ] = ∫ y y P ( y ∣ x ) d y \mathbb{E}_{y\sim P(y|\mathrm{x})}[y|\mathrm{x}]=\int_y yP(y|\mathrm{x})dy E y ∼ P ( y ∣ x ) [ y ∣ x ] = ∫ y y P ( y ∣ x ) d y 이며, 이는 y와 f(x)의 차이의 L2노름(예측 오차의 분산) E ∣ ∣ y − f ( x ) ∣ ∣ 2 \mathbb{E}||y-f(x)||_2 E ∣ ∣ y − f ( x ) ∣ ∣ 2 을 최소화하는 함수 f(x)와 일치함.
딥러닝 은 다층신경망(MLP)을 사용하여 데이터로부터 특징패턴 ϕ \phi ϕ 을 추출하며, 이후 조건부확률을 계산 하거나 조건부기대값을 추정 하는 식으로 학습을 진행
이 때, 특징패턴을 학습하기 위해 어떤 손실함수(Loss Function) 를 사용할 것인지는 기계학습 문제와 모델에 의해 결정
기대값
확률분포가 주어지면 이를 분석하기 위한 여러 종류의 통계적 범함수(Statistical Functional)를 계산 가능.
기대값(Expectation) 은 데이터를 대표하는 통계량이라는 대표적 범함수이면서 다른 통계적 범함수를 계산하는데 사용됨.
연속확률분포(밀도함수)의 경우엔 적분 / 이산확률분포(질량함수)의 경우엔 급수
기대값으로 계산 가능한 통계량은 분산 / 첨도 / 공분산 등이 있음.
분산: V ( x ) = E x ∼ P ( x ) [ ( x − E [ x ] ) 2 ] \mathbb{V}(\mathrm{x}) = \mathbb{E}_{x\sim P(\mathrm{x})}[(\mathrm{x}-\mathbb{E}[\mathrm{x}])^2] V ( x ) = E x ∼ P ( x ) [ ( x − E [ x ] ) 2 ]
첨도: Skewness ( x ) = E [ ( x − E [ x ] V ( x ) ) 3 ] \text{Skewness}(\mathrm{x})=\mathbb{E}\Bigg[\Bigg( \cfrac{\mathrm{x}-\mathbb{E}[\mathrm{x}]}{\sqrt{\mathbb{V}(\mathrm{x})}} \Bigg)^3\Bigg] Skewness ( x ) = E [ ( V ( x ) x − E [ x ] ) 3 ]
공분산: Cov ( x 1 x 2 ) = E x 1 , x 2 ∼ P ( x 1 , x 2 ) [ ( x 1 − E [ x 1 ] ) ( x 2 − E [ x 2 ] ) ] \text{Cov}(\mathrm{x}_1\mathrm{x}_2) = \mathbb{E}_{\mathrm{x}_1,\mathrm{x}_2\sim P(\mathrm{x}_1,\mathrm{x}_2)}[(\mathrm{x}_1-\mathbb{E}[\mathrm{x}_1])(\mathrm{x}_2-\mathbb{E}[\mathrm{x}_2])] Cov ( x 1 x 2 ) = E x 1 , x 2 ∼ P ( x 1 , x 2 ) [ ( x 1 − E [ x 1 ] ) ( x 2 − E [ x 2 ] ) ]
몬테카를로(Monte Carlo) 샘플링
앞으로 해결할 일반적인 문제들은 확률분포를 명시적으로 모를 때가 대부분.
몬테카를로 샘플링 방법을 사용하면 확률분포를 모를 때 데이터를 이용하여 기대값 계산이 가능하며, 이산형이든 연속형이든 상관없이 성립 함.
다만 항상 독립적으로 샘플링 해야만 몬테카를로 샘플링이 작동함. == 독립추출만 보장된다면 대수의 법칙(Law of Large Number)에 의해 수렴성을 보장.
E x ∼ P ( x ) [ f ( x ) ] ≈ 1 N ∑ i = 1 N f ( x ( i ) ) \mathbb{E}_{\mathrm{x}\sim P(\mathrm{x})}[f(\mathrm{x})]\approx\cfrac{1}{N}\sum_{i=1}^{N}f(\mathrm{x}^{(i)}) E x ∼ P ( x ) [ f ( x ) ] ≈ N 1 ∑ i = 1 N f ( x ( i ) ) , x ( i ) ∼ i.i.d. P ( x ) \mathrm{x}^{(i)}\overset{\text{i.i.d.}}{\sim}P(\mathrm{x}) x ( i ) ∼ i.i.d. P ( x )
예제
함수 f ( x ) = e − x 2 f(x) = e^{-x^2} f ( x ) = e − x 2 의 [-1, 1] 상에서 적분 값을 계산하여라
여기서 [-1, 1]은 확률분포가 아닌 공간이므로 f(x)의 적분을 해석적으로 구하는 것은 불가능함.
몬테카를로 방법을 사용할 경우 구간 [-1, 1]의 길이는 2이므로 적분 값을 2로 나누면 기대값을 계산하는 것과 같음
적분 ∫ − 1 1 e − x 2 d x \int_{-1}^{1}e^{-x^2}dx ∫ − 1 1 e − x 2 d x 를 길이 2로 나누면 아래와 같음1 2 ∫ − 1 1 e − x 2 d x ≈ 1 N ∑ i = 1 N f ( x ( i ) ) , x ( i ) ∼ U ( − 1 , 1 ) \cfrac{1}{2}\int_{-1}^{1}e^{-x^2}dx \approx\cfrac{1}{N}\sum_{i=1}^{N}f(x^{(i)}), x^{(i)} \sim U(-1,1) 2 1 ∫ − 1 1 e − x 2 d x ≈ N 1 i = 1 ∑ N f ( x ( i ) ) , x ( i ) ∼ U ( − 1 , 1 )
import numpy as np
def mc_int ( fun, low, high, sample_size= 100 , repeat= 10 ) :
int_len = np. abs ( high - low)
stat = [ ]
for _ in range ( repeat) :
x = np. random. uniform( low= low, high= high, size= sample_size)
fun_x = fun( x)
int_val = int_len * np. mean( fun_x)
stat. append( int_val)
return np. mean( stat) , np. std( stat)
def f_x ( x) :
return np. exp( - x ** 2 )
print ( mc_int( f_x, low= - 1 , high= 1 , sample_size= 10000 , repeat= 10000 ) )
통계학
모수
통계적 모델링은 적절한 가정 위에서 확률분포를 추정(Inference)하는 것이 목표
but, 데이터로만 모집단의 분포를 정확히 알아낼 순 없고, 근사적 확률분포 추정만 가능 (예측모형의 목적은 불확실성을 고려하여 위험을 최소화하는 것)
확률분포 추정을 위한 방법론
모수적(Parametric) 방법: 데이터가 특정 확률분포를 따른다고 선험적(a priori)으로 가정한 뒤 그 분포를 결정하는 모수(Parameter)를 추정하는 방법
비모수적(Non-parametric) 방법: 특정 확률분포를 가정하지 않고, 데이터에 따라 모델의 구조 및 모수의 개수가 유연하게 바뀌는 경우
히스토그램(Histogram)의 모양에 따른 확률분포
데이터 확률분포 2개의 값(0 or 1) 베르누이 분포 n개의 이산적인 값 카테고리 분포 [0, 1] 사이의 값 베타 분포 0 이상의 값 감마 분포, 로그 정규분포 등 R \reals R 전체 중의 값정규분포, 라플라스 분포 등
[모수의 추정]
확률분포를 가정했다면 모수 추정이 가능한데, 정규분포의 모수는 평균과 분산으로, 이를 추정하는 통계량(Statistic)은 다음과 같음
표본평균X ˉ = 1 N ∑ i = 1 N X i E [ X ˉ ] = μ \bar{X} = \frac{1}{N}\sum_{i=1}^{N}X_i \quad \quad \quad \mathbb{E}[\bar{X}]=\mu X ˉ = N 1 i = 1 ∑ N X i E [ X ˉ ] = μ
표본분산: N-1로 나누는 이유는 불편추정량(Unbiased)를 구하기 위함S 2 = 1 N − 1 ∑ i = 1 N ( X i − X ˉ ) 2 E [ S 2 ] = σ 2 S^2 = \frac{1}{N-1}\sum_{i=1}^{N}(X_i-\bar{X})^2 \quad \quad \quad \mathbb{E}[S^2]=\sigma^2 S 2 = N − 1 1 i = 1 ∑ N ( X i − X ˉ ) 2 E [ S 2 ] = σ 2
표집분포(Sampling Distribution): 통계량의 확률분포를 말하며, 특히 표본평균의 표집분포는 N이 커질수록 정규분포 N ( μ , σ 2 / N ) \mathcal{N}(\mu, \sigma^2/N) N ( μ , σ 2 / N ) 를 따름
이를 중심극한정리(Central Limit Theorem)라고 부르며, 모집단의 분포가 정규분포를 따르지 않아도 성립함
최대가능도 추정법(MLE)
최대가능도 추정법(Maximum Likelihood Estimation)은 이론적으로 가장 가능성이 높은 모수를 추정하는 방법 중 하나θ ^ = arg max L ( θ ; x ) = arg max P ( x ∣ θ ) \hat{\theta} = \argmax{L(\theta;\mathrm{x})} = \argmax P(\mathrm{x}|\theta) θ ^ = a r g m a x L ( θ ; x ) = a r g m a x P ( x ∣ θ )
데이터 집합 X가 독립적으로 추출되었을 경우 로그가능도 를 최적화L ( θ ; X ) = ∏ i = 1 n P ( x i ∣ θ ) ⇒ log L ( θ ; X ) = ∑ i = 1 n l o g P ( x i ∣ θ ) L(\theta;\mathrm{X}) = \prod_{i=1}^{n}P(\mathrm{x}_i|\theta) \quad \rArr \quad \log L(\theta;\mathrm{X}) = \sum_{i=1}^{n}log P(\mathrm{x}_i|\theta) L ( θ ; X ) = i = 1 ∏ n P ( x i ∣ θ ) ⇒ log L ( θ ; X ) = i = 1 ∑ n l o g P ( x i ∣ θ )
[정규분포에서의 MLE]
μ ^ M L E = 1 n ∑ i = 1 n x i σ ^ M L E = 1 n ∑ i = 1 n ( x i − μ ) 2 \hat\mu_{\mathrm{MLE}} = \frac{1}{n}\sum_{i=1}^{n}x_i \quad \quad \quad \\ \hat\sigma_{\mathrm{MLE}} = \frac{1}{n}\sum_{i=1}^{n}(x_i-\mu)^2 μ ^ M L E = n 1 i = 1 ∑ n x i σ ^ M L E = n 1 i = 1 ∑ n ( x i − μ ) 2
[카테고리 분포에서의 MLE]
카테고리 분포 Multinoulli ( x ; p 1 , . . . , p d ) (\mathrm{x}; p_1, ..., p_d) ( x ; p 1 , . . . , p d ) 를 따르는 확률번수 X로부터 독립적인 표본 { x 1 , . . . , x n } \{\mathrm{x}_1, ..., \mathrm{x}_n\} { x 1 , . . . , x n } 을 얻었을때 MLE를 이용하여 모수 추정
θ ^ M L E = arg max p 1 , . . . , p d log P ( x i ∣ θ ) = arg max p 1 , . . . , p d log ( ∏ i = 1 n ∏ k = 1 d p k x i , k ) log ( ∏ i = 1 n ∏ k = 1 d p k x i , k ) = ∑ k = 1 d ( ∑ i = 1 n x i , k ) log p k ⇐ ( n k = ∑ i = 1 n x i , k ) ∴ log ( ∏ i = 1 n ∏ k = 1 d p k x i , k ) = ∑ k = 1 d n k log p k ( ∵ ∑ k = 1 d p k = 1 ) \hat\theta_{\mathrm{MLE}} = \underset{p_1, ..., p_d}{\argmax} \space \log P(\mathrm{x}_i|\theta) = \underset{p_1, ..., p_d}{\argmax} \space \log \Bigg( \prod_{i=1}^{n} \prod_{k=1}^{d}p_{k}^{x_{i,k}} \Bigg) \\ \log \Bigg( \prod_{i=1}^{n} \prod_{k=1}^{d}p_{k}^{x_{i,k}} \Bigg) = \sum_{k=1}^{d} \Bigg( \sum_{i=1}^{n} x_{i, k}\Bigg) \log p_k \lArr \Big( n_k = \sum_{i=1}^{n}x_{i,k}\Big) \\ \therefore \log \Bigg( \prod_{i=1}^{n} \prod_{k=1}^{d}p_{k}^{x_{i,k}} \Bigg) = \sum_{k=1}^{d} n_k \log p_k \quad \quad \Bigg (\because \sum_{k=1}^{d}p_k = 1 \Bigg) θ ^ M L E = p 1 , . . . , p d a r g m a x log P ( x i ∣ θ ) = p 1 , . . . , p d a r g m a x log ( i = 1 ∏ n k = 1 ∏ d p k x i , k ) log ( i = 1 ∏ n k = 1 ∏ d p k x i , k ) = k = 1 ∑ d ( i = 1 ∑ n x i , k ) log p k ⇐ ( n k = i = 1 ∑ n x i , k ) ∴ log ( i = 1 ∏ n k = 1 ∏ d p k x i , k ) = k = 1 ∑ d n k log p k ( ∵ k = 1 ∑ d p k = 1 )
제약식을 만족하면서 마지막 줄 목적식을 최대화 하는 것이 우리가 구하는 MLE
라그랑주 승수법 을 통해 최적화 문제를 풀 수도 있음
⇒ L ( p 1 , . . . , p k , λ ) = ∑ k = 1 d log p k + λ ( 1 − ∑ k p k ) \rArr \mathcal{L}(p_1,...,p_k,\lambda) = \sum_{k=1}^{d} \log{p_k} + \lambda(1-\sum_k p_k) ⇒ L ( p 1 , . . . , p k , λ ) = k = 1 ∑ d log p k + λ ( 1 − k ∑ p k )
[딥러닝에서의 MLE]
모델의 가중치를 θ = ( W ( 1 ) , . . . , W ( L ) ) \theta = (\mathrm{W}^{(1)}, ...,\mathrm{W}^{(L)}) θ = ( W ( 1 ) , . . . , W ( L ) ) 라 표기했을 때, 분류문제에서 Softmax Vector는 카테고리 분포의 모수 ( p 1 , . . . , p k ) (p_1, ...,p_k) ( p 1 , . . . , p k ) 를 모델링함.
One-hot Vector로 표현한 정답레이블 y = ( y 1 , . . . , y k ) \mathrm{y}=(y_1,...,y_k) y = ( y 1 , . . . , y k ) 을 관찰데이터로 이용하여, 확률분포인 Softmax Vector의 로그가능도 를 최적화 할 수 있음θ ^ M L E = arg max θ 1 n ∑ i = 1 n ∑ k = 1 K y i , k log ( M L P θ ( x i ) k ) \hat\theta_{\mathrm{MLE}}=\underset{\theta}{\argmax}\frac{1}{n}\sum_{i=1}^{n}\sum_{k=1}^{K}y_{i,k}\log(\mathrm{MLP}_\theta(\mathrm{x}_i)_k) θ ^ M L E = θ a r g m a x n 1 i = 1 ∑ n k = 1 ∑ K y i , k log ( M L P θ ( x i ) k )
확률분포의 거리 계산
머신러닝에 사용되는 손실함수(Loss Function)들은 모델이 학습하는 확률분포와 데이터에서 관찰되는 확률분포의 거리 를 통해 유도
데이터 공간 상의 두 개의 확률분포 P ( x ) , Q ( x ) P(\mathrm{x}), Q(\mathrm{x}) P ( x ) , Q ( x ) 가 존재할 때, 두 확률분포 사이의 거리(Distance)를 계산하기 위한 함수들은 다음과 같음
총변동 거리(Total Variation Distance, TV)
쿨백-라이블러 발산(Kullback-Leibler Divergence, KL)
바슈타인 거리(Wasserstein Distance)
[쿨백-라이블러 발산]