[TIL Day29] Machine Learning 기초 - Probability Distributions I

이다혜·2021년 6월 7일

TIL

목록 보기
30/60

확률분포 Part 1: 이산확률분포에 대해 알아본다.
아래 내용은 여기를 참고하여 더 공부하자.

밀도추정(Density Estimation)

NN개의 관찰데이터(observations) x1,…xN\mathbf{x}_1,\ldots\mathbf{x}_N가 주어졌을 때 분포함수 p(x)p(\mathbf{x})를 찾는 것

  1. p(x)p(x)를 파라미터화된 분포로 가정한다. 회귀, 분류문제에서는 주로 p(t∣x),p(C∣x)p(t|x), p(C|x)를 추정한다.

  2. 그 다음, 분포의 파라미터를 찾는다.

    • 빈도주의 방법: 어떤 기준(ex. likelihood)을 최적화시키는 과정을 통해 파라미터 값을 정한다. 파라미터 하나의 값을 구하게 된다.
    • 베이지안 방법: 먼저 파라미터의 사전확률을 가정하고 Bayes' rule을 통해 파라미터의 사후확률을 구한다.
  3. 파라미터를 찾았다면(한 개의 값이든 분포든) 그것을 사용해 "예측"을 할 수 있다(tt나 CC).

  • 켤레사전분포(Conjugate Prior): (베이지안 방법을 사용할 경우) 사후확률이 사전확률과 동일한 함수형태를 가지도록 해준다.

이항변수(Binary Variables): 빈도주의 방법

이항 확률변수(binary random variable) x∈{0,1}x\in \{0, 1\} (ex. 동전던지기)가 다음을 만족한다고 하자(파라미터화된 분포).

p(x=1∣μ)=μ,p(x=0∣μ)=1−μp(x=1 | \mu) = \mu, p(x=0 | \mu) = 1 - \mu

p(x)p(x)는 베르누이 분포(Bernoulli distribution)로 표현될 수 있다.

Bern(x∣μ)=μx(1−μ)1−x\mathrm{Bern}(x | \mu) = \mu^x (1-\mu)^{1-x}

  • 기댓값, 분산
    - E[x]=μ\mathbb{E}[x] = \mu
    - var[x]=E[x2]−(E[x])2=μ(1−μ)\mathrm{var}[x] = \mathbb{E}[x^2] - (\mathbb{E}[x])^2 = \mu(1-\mu)

우도함수(Likelihood Function)

xx값을 NN번 관찰한 결과를 D={x1,…,xN}\mathcal{D} = \{x_1,\ldots,x_N\}라고 하자. 각 xx가 독립적으로 p(x∣μ)p(x|\mu)에서 뽑혀진다고 가정하면 다음과 같이 우도함수(μ\mu의 함수인)를 만들 수 있다.

p(D∣μ)=∏n=1Np(xn∣μ)=∏n=1Nμxn(1−μ)1−xnp(\mathcal{D}|\mu) = \prod_{n=1}^N p(x_n|\mu) = \prod_{n=1}^N \mu^{x_n} (1-\mu)^{1-x_n}

빈도주의 방법에서는 μ\mu값을 이 우도함수를 최대화시키는 값으로 구할 수 있다. 또는 아래와 같이 로그우도함수를 최대화시킬 수도 있다.

ln⁡p(D∣μ)=∑n=1Nln⁡p(xn∣μ)=∑n=1N{xnln⁡μ+(1−xn)ln⁡(1−μ)}\ln p(\mathcal{D}|\mu) = \sum_{n=1}^N \ln p(x_n|\mu) = \sum_{n=1}^N \{x_n\ln \mu + (1-x_n)\ln(1-\mu)\}

μ\mu의 최대우도 추정치(maximum likelihood estimate)는

μML=mN  with  m=(#observations of x=1)\mu^{\mathrm{ML}} = \frac{m}{N} ~~\mathrm{with}~~ m = (\#\mathrm{observations~of}~ x=1)

NN이 작은 경우에 위 MLE는 과적합(overfitting)된 결과를 낳을 수 있다!
N=m=3→μML=1N = m = 3 \to \mu^{\mathrm{ML}} = 1!

이항변수(Binary Variables): 베이지언 방법

이항분포(Binomial Distribution)

D={x1,…,xN}\mathcal{D} = \{x_1,\ldots,x_N\}일 때, 이항변수 xx가 1인 경우를 mm번 관찰할 확률

Bin(m∣N,μ)=(Nm)μm(1−μ)N−m\mathrm{Bin}(m|N,\mu) = {N \choose m}\mu^m(1-\mu)^{N-m}

(Nm)=N!(N−m)!m!{N \choose m} = \frac{N!}{(N-m)!m!}

  • 기댓값, 분산
    - E[m]=∑m=0NmBin(m∣N,μ)=Nμ\mathbb{E}[m] = \sum_{m=0}^N m\mathrm{Bin}(m|N,\mu) = N\mu
    - var[m]=∑m=0N(m−E[m])2Bin(m∣N,μ)=Nμ(1−μ)\mathrm{var}[m] = \sum_{m=0}^N (m-\mathbb{E}[m])^2\mathrm{Bin}(m|N,\mu) = N\mu(1-\mu)

베이지안 방법을 쓰기 위해서 데이터의 우도를 구해야 하는데, 이항분포를 가정하면 우도함수가 하나의 변수 mm으로(x1,…,xNx_1,\ldots,x_N 대신) 표현가능하므로 간편해진다.

베타분포(Beta Distribution)

베이지언 방법으로 문제를 해결하기 위해 베타분포를 켤레사전분포(conjugate prior)로 사용한다. 베타분포는 μ\mu에 대한 분포임에 유의하자.

Beta(μ∣a,b)=Γ(a+b)Γ(a)Γ(b)μa−1(1−μ)b−1\mathrm{Beta}(\mu|a,b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\mu^{a-1}(1-\mu)^{b-1}

감마함수 Γ(x)\Gamma(x)는 다음과 같이 정의된다.

Γ(x)=∫0∞ux−1e−udu\Gamma(x) = \int_0^{\infty}u^{x-1}e^{-u}\mathrm{d}u

감마함수는 계승(factorial)을 실수로 확장시킨다. Γ(n)=(n−1)!\Gamma(n) = (n-1)!

  • Γ(x)=(x−1)Γ(x−1)\Gamma(x) = (x-1)\Gamma(x-1)

  • a,ba, b값에 따른 베타분포

  • 기댓값, 분산
    - E[μ]=aa+b\mathbb{E}[\mu] = \frac{a}{a+b}
    - var[μ]=ab(a+b)2(a+b+1)\mathrm{var}[\mu] = \frac{ab}{(a+b)^2(a+b+1)}

μ\mu의 사후확률(Posterior)

p(μ∣m,l,a,b)=Bin(m∣N,μ)Beta(μ∣a,b)∫01Bin(m∣N,μ)Beta(μ∣a,b)dμ=μm+a−1(1−μ)l+b−1∫01μm+b−1(1−μ)l+b−1dμ=μm+a−1(1−μ)l+b−1Γ(m+a)Γ(l+b)/Γ(m+a+l+b)=Γ(m+a+l+b)Γ(m+a)Γ(l+b)μm+a−1(1−μ)l+b−1p(\mu | m, l, a, b) = \frac{\textrm{Bin}(m|N,\mu)\textrm{Beta}(\mu|a,b)}{\int_0^1 \textrm{Bin}(m|N,\mu)\textrm{Beta}(\mu|a,b)\textrm{d}\mu}\\ = \frac{\mu^{m+a-1}(1-\mu)^{l+b-1}}{\int_0^1 \mu^{m+b-1}(1-\mu)^{l+b-1}\textrm{d}\mu}\\ = \frac{\mu^{m+a-1}(1-\mu)^{l+b-1}}{\Gamma(m+a)\Gamma(l+b)/\Gamma(m+a+l+b)}\\ = \frac{\Gamma(m+a+l+b)}{\Gamma(m+a)\Gamma(l+b)}\mu^{m+a-1}(1-\mu)^{l+b-1}

mm과 ll이라는 관찰이 주어진 후의 사후확률은 aa가 mm만큼 늘어나고 bb가 ll만큼 늘어난 효과를 가진다. 새로운 데이터가 들어오면 사후확률을 사전확률로 활용해서 또다시 μ\mu에 대한 지식을 업데이트할 수 있다.

  • 연속적인 업데이트: 하나의 샘플을 관찰했을 때, 사전확률과 사후확률의 관계

    - 첫번째 그림:사전확률은 a=2,b=2a=2, b=2인 베타분포
    - 두번째 그림: x=1x=1인 하나의 샘플에 대한 우도함수
    - 세번째 그림: 사후확률은 a=3,b=2a=3, b=2인 베타분포
    다음 관찰에 대해선 이 사후확률이 사전확률로 쓰이게 된다.

예측분포(Predictive Distribution)

새로운 데이터 xx가 1의 값을 가질 확률?

p(x=1∣D)=∫01p(x=1∣μ)p(μ∣D)dμ=∫01μp(μ∣D)dμ=E[μ∣D]p(x=1 | \mathcal{D}) = \int_0^1 p(x=1|\mu)p(\mu|\mathcal{D})\mathrm{d}\mu = \int_0^1 \mu p(\mu|\mathcal{D})\mathrm{d}\mu = \mathbb{E}[\mu|\mathcal{D}]

p(x=1∣D)=m+am+a+l+bp(x=1 | \mathcal{D}) = \frac{m+a}{m+a+l+b}

베이지언 관점은 빈도주의 관점에서 N이 작을경우 나타날 수 있는 극단적인 결과(과적합)를 피할 수 있다. 우리의 사전지식 a,ba, b값이 이를 보정해주기 때문이다.

다항변수(Multinomial Variables): 빈도주의 방법

KK개의 상태를 가질 수 있는 확률변수를 KK차원의 벡터 x\mathbf{x} (하나의 원소만 1이고 나머지는 0)로 나타낼 수 있다. 이런 x\mathbf{x}를 위해서 베르누이 분포를 다음과 같이 일반화시킬 수 있다. p(xk=1∣μ)=μkp(x_k=1|\pmb \mu) = \mu_k

p(x∣μ)=∏k=1Kμkxkp(\mathbf{x}|\pmb \mu) = \prod_{k=1}^K \mu_k^{x_k}
with ∑kμk=1\sum_k \mu_k = 1

  • 기댓값
    E[x∣μ]=∑xp(x∣μ)=(μ1,…,μM)T=μ\mathbb{E}[\mathbf{x}|\pmb \mu] = \sum_{\mathbf{x}} p(\mathbf{x}|\pmb \mu) = (\mu_1,\ldots,\mu_M)^T = \pmb \mu

우도함수

x{\bf x}값을 NN번 관찰한 결과 D={x1,…,xN}\mathcal{D} = \{{\bf x}_1,\ldots,{\bf x}_N\}가 주어졌을 때, 우도함수는 다음과 같다.

p(D∣μ)=∏n=1N∏k=1Kμkxnk=∏k=1Kμk(∑nxnk)=∏k=1Kμkmkp(\mathcal{D}|\pmb \mu) = \prod_{n=1}^N\prod_{k=1}^K \mu_k^{x_{nk}} = \prod_{k=1}^K \mu_k^{(\sum_n x_{nk})} = \prod_{k=1}^K \mu_k^{m_k}

mk=∑nxnkm_k = \sum_n x_{nk}

μ\mu의 최대우도 추정치(maximum likelihood estimate)를 구하기 위해선 μk\mu_k의 합이 1이 된다는 조건하에서 ln⁡p(D∣μ)\ln p(\mathcal{D}|\pmb \mu)을 최대화시키는 μk\mu_k를 구해야 한다. 라그랑주 승수(Lagrange multiplier) λ\lambda를 사용해서 다음을 최대화시키면 된다.

∑k=1Kmkln⁡μk+λ(∑k=1Kμk−1)\sum_{k=1}^K m_k \ln \mu_k + \lambda \left(\sum_{k=1}^K \mu_k -1\right)

μkML=mkN\mu_k^{ML} = \frac{m_k}{N}

다항변수(Multinomial Variables): 베이지언 방법

다항분포(Multinomial Distribution)

파라미터 μ\pmb \mu와 전체 관찰개수 NN이 주어졌을 때 m1,…,mKm_1,\ldots,m_K의 분포를 다항분포(multinomial distribution)이라고 하고 다음과 같은 형태를 가진다.

Mult(m1,…,mK∣μ,N)=(Nm1m2…mK)∏k=1Kμkmk\mathrm{Mult}(m_1,\ldots,m_K|\pmb \mu,N) = {N \choose m_1m_2\ldots m_K} \prod_{k=1}^K \mu_k^{m_k}

(Nm1m2…mK)=N!m1!m2!…mK!{N \choose m_1m_2\ldots m_K} = \frac{N!}{m_1!m_2!\ldots m_K!}

∑k=1Kmk=N\sum_{k=1}^K m_k= N

디리클레 분포(Dirichlet Distribution)

다항분포를 위한 켤레사전분포로, 베타분포를 일반화시킨 형태

Dir(μ∣α)=Γα0Γ(α1)…Γ(αK)∏k=1Kμkαk−1\mathrm{Dir}(\pmb \mu|\mathbf{\alpha}) = \frac{\Gamma{\alpha_0}}{\Gamma(\alpha_1)\ldots\Gamma(\alpha_K)}\prod_{k=1}^K \mu_k^{\alpha_k-1}

α0=∑k=1Kαk\alpha_0 = \sum_{k=1}^K \alpha_k

μ\mu의 사후확률(Posterior)

p(μ∣D,α)=Dir(μ∣α+m)=Γ(α0+N)Γ(α1+m1)…Γ(αK+mK)∏k=1Kμkαk+mk−1p(\pmb \mu|\mathcal{D},\mathbf{\alpha}) = \mathrm{Dir}(\pmb \mu|\mathbf{\alpha}+\mathbf{m})\\ = \frac{\Gamma(\alpha_0+N)}{\Gamma(\alpha_1+m_1)\ldots\Gamma(\alpha_K+m_K)}\prod_{k=1}^K \mu_k^{\alpha_k+m_k-1}

m=(m1,…,mK)T\mathbf{m} = (m_1,\ldots,m_K)^T

αk\alpha_k를 xk=1x_k=1에 대한 사전관찰 개수라고 생각할 수 있다.

profile
하루하루 성장중

0개의 댓글