AI에 활용되는 확률과 통계

TrainToGPB·2023년 6월 4일
3

AI Math

목록 보기
4/4

딥러닝에서 확률론이 필요한 이유

  • DL은 확률론 기반의 기계학습 이론이 바탕
  • 기계학습에서 사용되는 손실함수(loss function)의 작동 원리는 데이터 공간을 통계적으로 해석하여 유도
    • 예시
      • 회귀 분석의 손실함수인 L2L_2-norm은 예측 오차의 분산을 가장 최소화하는 방향으로 학습 유도

      • 분류 문제의 손실함수인 교차 엔트로피(cross-entropy)는 모델 예측의 불확실성을 최소화하는 방향으로 학습 유도

        ⇒ 분산 및 불확실성을 최소화하기 위해서는

데이터의 초상화: 확률분포

이산확률변수 VS 연속확률변수

  • 확률변수는 확률분포 D\mathscr{D}에 따라 이산형(discrete)과 연속형(continuous)로 구분
    • 이산확률변수: 확률변수가 가질 수 있는 경우의 수를 모두 고려하여 확률을 더해 모델링
      P(XA)=xAP(X=x)\mathbb{P}(X\in A)=\displaystyle\sum_{\bold{x}\in A}P(X=\bold{x})
    • 연속확률변수: 데이터 공간에 정의된 확률변수의 밀도(density) 위에서의 적분을 통해 모델링
      P(XA)=AP(x)dx(P(x)=limh0P(xhXx+h)2h)\mathbb{P}(X\in A) = \displaystyle\int_AP(\bold{x})d\bold{x}\quad(P(\bold{x})=\underset{h\rightarrow0}{\textrm{lim}}\frac{\mathbb{P(\bold{x}-h\leq \textit{X}\leq\bold{x}+h)}}{2h})

확률분포

  • 데이터 공간: X×Y\mathscr{X}\times\mathscr{Y}
  • 데이터 공간에서 데이터를 추출하는 분포: D\mathscr{D}
  • 데이터(확률 변수): (x,y)D(\bold{x},y)\sim\mathscr{D}
    • (x,y)X×Y(\bold{x},y)\in\mathscr{X}\times\mathscr{Y}는 데이터 공간 상 관측 가능한 데이터에 해당
  • 결합분포 P(x,y)P(\bold{x},y)D\mathscr{D}를 모델링
    • P(x)P(\bold{x})는 입력 x\bold{x}에 대한 주변 확률분포로, yy에 대한 정보를 주진 않음
      P(x)=yP(x,y)P(x)=yP(x,y)dyP(\bold{x})=\displaystyle\sum_yP(\bold{x},y) \\ P(\bold{x})=\displaystyle\int_yP(\bold{x},y)\textrm{d}y
  • 조건부확률분포 P(xy)P(\bold{x}\,|\,y)가 데이터 공간에서 입력 x\bold{x}와 출력 yy 사이 관계를 모델링
    • P(xy)P(\bold{x}\,|\,y)는 특정 클래스가 주어져 있는 조건에서 데이터의 확률분포를 보여줌
    • P(yx)P(y\,|\,\bold{x})는 입력변수 x\bold{x}에 대해 정답이 yy일 확률 (연속확률분포의 경우 밀도로 해석)

조건부확률과 기계학습

  • 로지스틱 회귀에서 사용했던 선형모델과 소프트맥스 함수의 결합은 데이터에서 추출된 패턴을 기반으로 확률을 해석하는데 사용됨
    • 회귀 문제의 경우 조건부 기대값 E[yx]\mathbb{E}[y\,|\,\bold{x}]를 추정
      • 조건부 기대값은 Eyf(x)2\mathbb{E}\|y-f(\bold{x})\|_2를 최소화하는 함수 f(x)f(\bold{x})와 일치
    • 분류 문제에서 softmax(Wϕ+b)\textrm{softmax}(\bold{W}\phi+\bold{b})는 데이터 x\bold{x}로부터 추출된 특징패턴 ϕ(x)\phi(\bold{x})와 가중치 행렬 W\bold{W}를 통해 조건부확률 P(yx)P(y\,|\,\bold{x}) (= P(yϕ(x)P(y\,|\,\phi(\bold{x}))를 계산
    • 딥러닝은 다층 신경망(MLP)을 이용해 데이터로부터 특징 패턴 ϕ\phi를 추출

기대값(Expectation)

  • 확률분포가 주어지면, 데이터를 분석하는데 사용 가능한 여러 통계적 범함수(statistical functional)를 계산할 수 있음
  • 기대값(expectation)은 데이터를 대표하는 통계량이면서, 동시에 확률분포를 통해 다른 통계적 범함수를 계산하는데 사용됨
    ExP(x)[f(x)]=xXf(x)P(x)=Xf(x)P(x)dx\mathbb{E}_{\bold{x}\sim P(\bold{x})}[f(\bold{x})] = \displaystyle\sum_{\bold{x}\in\mathcal{X}}f(\bold{x})P(\bold{x}) = \displaystyle\int_\mathcal{X}f(\bold{x})P(\bold{x})\textrm{d}\bold{x}
    • 분산, 첨도, 공분산 등 여러 통계량 계산 가능

몬테카를로 샘플링(Monte Carlo Simulation)

  • 기계학습의 많은 문제들은 확률분포를 명시적으로 알 수 없음
    • 이때 데이터를 이용해 기대값을 계산하기 위하여 사용하는 방법이 바로 몬테카를로 샘플링
      ExP(x)[f(x)]1Ni=1Nf(x(i))(x(i)i.i.dP(x))\mathbb{E}_{\bold{x}\sim P(\bold{x})}[f(\bold{x})] \approx \displaystyle\frac{1}{N}\sum^N_{i=1}f(\bold{x}^{(i)}) \quad (\bold{x}^{(i)}\overset{\textrm{i.i.d}}{\sim}P(\bold{x}))
  • 몬테카를로 샘플링은 독립추출만 보장된다면 대수의 법칙(law of large number)에 의해 수렴성을 보장
  • 예제: [1,1][-1,\,1] 구간 상에서 f(x)=ex2f(x)=e^{-x^2}의 적분 값은 어떻게 구하는가?
    • 해석적으로는 불가능함

      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):
      		return np.exp(-x**2)
      
      print(mc_int(f, low=-1, high=1, sample_size=10000, repeat=100)

모수

  • 통계적 모델링: 적절한 가정 위에서 확률 분포를 추정(inference)하는 것이 목표
    • 통계학과 기계학습의 공통 목표
  • 유한한 개수의 데이터만 관찰해서는 모집단의 분포를 정확하게 알아내는 것이 불가능
    • 근사적으로 확률분포를 추정하는 수 밖에 없음
    • 예측 모형은 데이터와 불확실성을 고려해 위험(risk)을 최소화하는 것이 목표
  • 모수적(parametric) 방법론: 데이터가 특정 확률분포를 따른다고 선험적으로 가정하고, 그 분포를 결정하는 모수(parameter)를 추정하는 방법
    • 확률분포를 가정하지 않고 데이터에 따라 모델 구조 및 모수 개수가 유연하게 바꾸는 경우 비모수(non-parametric) 방법론이라 함 ⇒ 기계학습의 많은 방법론이 비모수 방법론

확률분포 가정하기

  • 히스토그램 및 데이터 특징에 기반하여 확률분포를 가정할 수 있음
    • 데이터가 2개 값(0 또는 1)만 가지는 경우 → Bernoulli dist.
    • 데이터가 n개의 이산값을 가지는 경우 → Category dist.
    • 데이터가 [0,1][0,1] 구간의 값을 가지는 경우 → Beta dist.
    • 데이터가 0 이상의 값을 가지는 경우 → Gamma dist., Log-normal dist.
    • 데이터가 R\mathbb{R} 전체에서 값을 가지는 경우 → Normal dist., Laplace dist.
  • 기계적으로 가정하는 것은 안되고, 데이터를 생성하는 원리를 먼저 고려해야 함

데이터 기반 모수 추정

  • 데이터의 확률분포를 가정했다면 모수를 추정할 수 있음
    • 예를 들어 정규분포의 모수는 평균 μ\mu와 분산 σ2\sigma^2로, 이를 추정하는 통계량은 아래와 같음
      Xˉ=1Ni=1NXi,E[Xˉ]=μS2=1N1i=1N(XiXˉ)2,E[S2]=σ2\bar{X} = \displaystyle\frac{1}{N}\sum^N_{i=1}X_i, \quad \mathbb{E}[\bar{X}]=\mu \\ S^2 = \frac{1}{N-1}\sum^N_{i=1}(X_i-\bar{X})^2, \quad \mathbb{E}[S^2]=\sigma^2
      • 표본분산 계산 시 NN이 아닌 N1N-1로 나누는 이유는 unbiased된 추정량을 구하기 위해서임
  • 통계량의 확률분포는 표집분포(sampling distribution)이라 하며, NN이 커질수록 Xˉ\bar{X}N(μ,σ2/N)\mathscr{N}(\mu,\sigma^2/N)을 따름
    • 모집단이 정규분포를 따르지 않더라도 성립하며, 이를 중심극한정리(central limit theorem)이라 함

최대가능도 추정(Maximum Likelihood Estimation, MLE)

  • 확률분포마다 모수가 다르므로, 추정에 적절한 통계량이 달라지게 됨
  • 가장 효과적인 모수 추정 방법으로 알려진 방법론 중 하나가 바로 MLE
    θ^MLE=argmaxθL(θ;x)=argmaxθP(xiθ)\hat{\theta}_{MLE} = \underset{\theta}{\textrm{argmax}}\,L(\theta;\,\bold{x}) = \underset{\theta}{\textrm{argmax}}\,P(\bold{x}_i|\theta)

로그가능도(Log-Likelihood)

  • 데이터 집합 X\bold{X}가 독립 추출되었을 경우 로그가능도를 최적화
    L(θ;X)=i=1nP(xiθ)logL(θ;X)=i=1nlogP(xiθ)L(\theta;\,\bold{X})=\displaystyle\prod^n_{i=1}P(\bold{x}_i|\,\theta) \quad\Rightarrow\quad \textrm{log}\,L(\theta;\,\bold{X}) = \sum^n_{i=1}\textrm{log}\,P(\bold{x}_i|\,\theta)
    • 데이터의 숫자가 커진다면 컴퓨터의 정확도로는 가능도를 계산하는 것이 불가해짐
    • 하지만 데이터가 독립일 경우, 가능도의 곱셈을 로그가능도의 덧셈으로 변환할 수 있기 때문에 연산량이 작아짐
    • 경사하강법에 기반해 가능도 최적화시 로그가능도를 이용하면 미분 연산량이 O(n2)O(n^2)에서 O(n)O(n)으로 감소
    • 손실함수의 경우 대개 음의 로그가능도(negative log-likelihood)를 최적화

MLE 예시: 정규분포

  • 정규분포를 따르는 확률변수 XX로부터 독립 표본 {x1,,xn}\{x_1,\dots,x_n\}을 얻었을 때, MLE를 이용해 모수를 추정하라
    θ^MLE=argmaxθL(θ;x)=argmaxμ,σ2P(Xμ,σ2)\hat{\theta}_{MLE} = \underset{\theta}{\textrm{argmax}}\,L(\theta;\,\bold{x}) = \underset{\mu,\sigma^2}{\textrm{argmax}}\,P(\bold{X}|\mu,\,\sigma^2)
    • θ=(μ,σ)\theta=(\mu,\,\,\sigma)에 대해 logL(θ;X)=i=1nlogP(xiθ)\textrm{log}\,L(\theta;\,\bold{X})=\displaystyle\sum^n_{i=1}\textrm{log}\,P(x_i|\,\theta)를 미분해서 최적화할 수 있음

      logL(θ;X)=i=1nlogP(xiθ)=i=1nlog12πσ2exiμ22σ2=n2log2πσ2i=1nxiμ22σ2\textrm{log}\,L(\theta;\,\bold{X}) = \displaystyle\sum^n_{i=1}\textrm{log}\,P(x_i|\,\theta) \\= \sum^n_{i=1}\textrm{log}\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{|x_i-\mu|^2}{2\sigma^2}} = -\frac{n}{2}\textrm{log}\,2\pi\sigma^2-\sum^n_{i=1}\frac{|x_i-\mu|^2}{2\sigma^2}
    • 이를 미분하면,

      0=logLμ=i=1nxiμσ2μ^MLE=1ni=1nxi0=logLσ=nσ+1σ3i=1nxiμ2σ^MLE2=1ni=1n(xiμ)20 = \displaystyle\frac{\partial\,\textrm{log}\,L}{\partial\mu} = -\sum^n_{i=1}\frac{x_i-\mu}{\sigma^2} \quad\Rightarrow\quad \hat{\mu}_{MLE} = \frac{1}{n}\sum^n_{i=1}x_i \\ 0 = \frac{\partial\,\textrm{log}\,L}{\partial\sigma}=-\frac{n}{\sigma}+\frac{1}{\sigma^3}\sum^n_{i=1}|x_i-\mu|^2 \quad\Rightarrow\quad \hat{\sigma}^2_{MLE} = \frac{1}{n}\sum^n_{i=1}(x_i-\mu)^2
      • 위 식을 만족하는 μ\muσ\sigma를 찾으면 가능도가 최대화됨
      • 다만 unbiased 추정량을 보장하지는 않음 (σ^MLE2\hat{\sigma}^2_{MLE})

MLE 예시: 카테고리 분포

  • 카테고리 분포 Multinoulli(x;p1,,pd)\textrm{Multinoulli}(\bold{x};\,p_1,\dots,p_d)를 따르는 확률변수 XX로부터 독립 표본 {x1,,xn}\{\bold{x}_1,\dots,\bold{x}_n\}을 얻었을 때, MLE를 이용해 모수를 추정하라
    θ^MLE=argmaxp1,,pdlogP(xiθ)=argmaxp1,,pdlog(i=1nk=1dpkxi,k)(k=1dpk=1)\displaystyle\hat{\theta}_{MLE} = \underset{p_1,\dots,p_d}{\textrm{argmax}}\,\textrm{log}\,P(\bold{x}_i|\,\theta) = \underset{p_1,\dots,p_d}{\textrm{argmax}}\,\textrm{log}(\prod^n_{i=1}\prod^d_{k=1}p^{x_{i,\,k}}_k) \quad (\sum^d_{k=1}p_k=1)
    • 이때 nk=i=1nxi,kn_k=\displaystyle\sum^n_{i=1}x_{i,\,k}라고 가정하면, 다음과 같은 과정을 통해 라그랑주 승수법을 사용해 최적화 가능
      log(i=1nk=1dpki,k)=k=1d(i=1nxi,k)logpk=k=1dnklogpkL(p1,,pk,λ)=k=1dnklogpk+λ(1kpk)0=Lpk=nkpkλ,0=Lλ=1k=1dpkpk=nkk=1dnk\displaystyle \textrm{log}(\prod^n_{i=1}\prod^d_{k=1}p^{i,\,k}_k) = \sum^d_{k=1}(\sum^n_{i=1}x_{i,\,k})\textrm{log}\,p_k = \sum^d_{k=1}n_k\textrm{log}\,p_k \\\Rightarrow \mathcal{L}(p_1,\dots,p_k,\lambda) = \sum^d_{k=1}n_k\textrm{log}\,p_k+\lambda(1-\sum_kp_k) \\ 0 = \frac{\partial\,\mathcal{L}}{\partial\,p_k}=\frac{n_k}{p_k}-\lambda, \quad 0 = \frac{\partial\,\mathcal{L}}{\partial\,\lambda} = 1-\sum^d_{k=1}p_k \\\Rightarrow p_k = \frac{n_k}{\sum^d_{k=1}n_k}

DL에서의 MLE

  • DL 모델의 가중치가 θ=(W(1),,W(L))\theta=(\bold{W}^{(1)},\dots,\bold{W}^{(L)})일 때, 분류 문제의 softmax vector는 카테고리 분포의 모수 (p1,,pK)(p_1,\dots,p_K)를 모델링
  • One-hot vector로 표현한 정답 레이블 y=(y1,,yK)\bold{y}=(y_1,\dots,y_K)를 관찰 데이터로 활용해, 확률분포인 softmax vector의 로그가능도를 최적화할 수 있음
    θ^MLE=argmaxθ1ni=1nk=1Kyi,klog(MLEθ(xi)k)\displaystyle \hat{\theta}_{MLE}=\underset{\theta}{\textrm{argmax}}\frac{1}{n}\sum^n_{i=1}\sum^K_{k=1}y_{i,\,k}\,\textrm{log}(MLE_{\theta}(\bold{x}_i)_k)

확률분포 간 거리

  • 기계학습에서 사용되는 손실함수들은 모델이 학습하는 확률분포와, 데이터에서 관찰되는 확률분포 사이 거리를 통해 유도됨
  • 데이터 공간에 두 확률분포 P(x)P(\bold{x})Q(x)Q(\bold{x})가 존재하는 경우, 두 분포 사이 거리를 계산할 때 다음과 같은 함수를 이용
    • 총 변동 거리(total variation distance, TV)
    • 쿨백-라이블러 발산(Kullback-Leibler divergence, KL)
      KL(PQ)=xXP(x)log(P(x)Q(x))=XP(x)log(P(x)Q(x))dx=ExP(x)[logQ(x)]+ExP(x)[logP(x)]\mathbb{KL}(P\|Q) = \displaystyle \sum_{\bold{x}\in\mathcal{X}}P(\bold{x})\textrm{log}(\frac{P(\bold{x})}{Q(\bold{x})}) = \int_\mathcal{X}P(\bold{x})\textrm{log}(\frac{P(\bold{x})}{Q(\bold{x})})\textrm{d}\bold{x} \\= -\mathbb{E}_{\bold{x}\sim P(\bold{x})}[\textrm{log}\,Q(\bold{x})] + \mathbb{E}_{\bold{x}\sim P(\bold{x})}[\textrm{log}\,P(\bold{x})]
      • ExP(x)[logQ(x)]-\mathbb{E}_{\bold{x}\sim P(\bold{x})}[\textrm{log}\,Q(\bold{x})]: 교차 엔트로피(cross-entropy)
      • ExP(x)[logP(x)]\mathbb{E}_{\bold{x}\sim P(\bold{x})}[\textrm{log}\,P(\bold{x})]: 엔트로피
      • 분류 문제에서 정답을 PP, 예측을 QQ라 할 때 MLE는 KL divergence를 최소화하는 것과 동일
    • 바슈타인 거리(Wasserstein distance)

조건부 확률

  • 베이즈 통계학을 이해하기 위해서는, 조건부 확률의 개념을 이해해야 함
    P(AB)=P(B)P(AB)P(BA)=P(AB)P(A)=P(B)P(AB)P(A)P(A\cap B)=P(B)P(A|B) \\ P(B|A)=\frac{P(A\cap B)}{P(A)}=P(B)\frac{P(A|B)}{P(A)}
    • 베이즈 정리는 조건부 확률을 이용하여 정보를 갱신하는 방법을 알려줌 ⇒ AA라는 새 정보가 주어졌을 때 P(B)P(B)로부터 P(BA)P(B|A)를 계산하는 방법을 제공

베이즈 정리

예제

🖍️ COVID-99의 발병률이 10%로 알려져있다. COVID-99에 실제로 걸렸을 때 검진될 확률은 99%, 실제로 걸리지 않았을 때 오검진될 확률이 1%라고 할 때, 어떤 사람이 질병에 걸렸다고 검진 결과가 나왔다면 이 사람이 실제로 COVID-99에 감염되었을 확률은?
  • θ\theta: COVID-99가 발병한 사건(관찰 불가)
  • DD: 테스트 결과(관찰 가능)
P(θD)=P(θ)P(Dθ)P(D)P(\theta|D)=P(\theta)\frac{P(D|\theta)}{P(D)}
  • P(θD)P(\theta|D): 사후확률(posterior) → 검진 결과에 따른 실제 발병 확률, 이것을 구해야함
  • P(θ)P(\theta): 사전확률(prior) → 이미 알려진 발병률 10%
  • P(Dθ)P(D|\theta): 가능도(likelihood) → 걸렸을 때 검진될 확률 99%
    • P(Dθc)P(D|\theta^c): 걸리지 않았을 때 오검진될 확률 1%
  • P(D)P(D): 증거(Evidence)
    P(D)=θP(Dθ)P(θ)=0.99×0.1+0.01×0.9=0.108P(θD)=0.1×0.990.108=0.916P(D)=\displaystyle\sum_{\theta}P(D|\theta)P(\theta)=0.99\times0.1+0.01\times0.9=0.108 \\ P(\theta|D)=0.1\times\frac{0.99}{0.108}\approx=0.916
  • P(Dθc)P(D|\theta^c)가 10%로 증가한다면?
    • 우선, P(Dθ)+P(Dθc)1P(D|\theta)+P(D|\theta^c)\neq1이라는 것을 알아야 함
      P(D)=θP(Dθ)P(θ)=0.99×0.1+0.1×0.9=0.189P(θD)=0.1×0.990.189=0.524P(D)=\displaystyle\sum_{\theta}P(D|\theta)P(\theta)=0.99\times0.1+0.1\times0.9=0.189 \\ P(\theta|D)=0.1\times\frac{0.99}{0.189}\approx=0.524

조건부 확률의 시각화

정보 갱신

  • 베이즈 정리를 통해, 새로운 데이터가 들어왔을 때, 앞서 계산한 사후확률을 사전확률로 사용하여 갱신된 사후확률을 계산할 수 있음
  • 앞서 COVID-99 판정을 받은 사람이 두 번째 검진을 받았을 때에도 양성이 나온 경우, 진짜로 COVID-99에 걸렸을 확률은? → 갱신된 사후확률에 대한 문제
    P(D)=0.99×0.524+0.1×0.4760.566P(θD)=0.524×0.990.5660.917P(D^*)=0.99\times0.524+0.1\times0.476\approx0.566 \\ P(\theta|D^*)=0.524\times\frac{0.99}{0.566}\approx0.917

인과관계

  • 조건부 확률은 유용한 통계적 해석을 제공하나, 인과관계(causality)를 추론할 때 함부로 사용할 수 없음
  • 인과관계는 데이터 분포의 변화에 민감하지 않은 강건한 예측 모델을 만들 때 필요
  • 인과관계의 파악을 위해서는 중첩요인(confounding factor) ZZ의 효과를 제거하고, 원인에 해당하는 변수만의 인과관계를 계산해야 함
    • ZZ의 효과를 제거하지 않은 인과관계는 가짜 연관성(spurious correlation)

예제

🖍️ 신장 결석의 크기에 따른 치료법 선택 $a$는 개복 수술, $b$는 주사 치료

  • 전체 확률을 보면 치료법 bb가 더 높은 완치율을 보임
    • 하지만 신장 결석이 작을 때와 클 때 모두 치료법 aa가 치료법 bb보다 높은 완치율을 기록했음
    • Simpson’s paradox라고 하는 매우 유명한 통계적 역설 문제
  • 신장 결석 크기에 상관 없이 모든 환자가 치료법 aa 또는 bb를 선택한다고 가정하고 확률을 구해야 함
    • 조정(intervention)을 통해 중첩 효과를 가진 신장 결석 크기 ZZ의 영향을 제거
    • 모든 환자가 치료법 aa를 선택한 경우 완치율
    • 모든 환자가 치료법 bb를 선택한 경우 완치율
profile
J의 틀에 몸을 녹여 맞추는 P

0개의 댓글