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

이다혜·2021년 6월 7일
0

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(tx),p(Cx)p(t|x), p(C|x)를 추정한다.

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

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

  • 켤레사전분포(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μ)1x\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μ)1xnp(\mathcal{D}|\mu) = \prod_{n=1}^N p(x_n|\mu) = \prod_{n=1}^N \mu^{x_n} (1-\mu)^{1-x_n}

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

lnp(Dμ)=n=1Nlnp(xnμ)=n=1N{xnlnμ+(1xn)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(mN,μ)=(Nm)μm(1μ)Nm\mathrm{Bin}(m|N,\mu) = {N \choose m}\mu^m(1-\mu)^{N-m}

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

  • 기댓값, 분산
    - E[m]=m=0NmBin(mN,μ)=Nμ\mathbb{E}[m] = \sum_{m=0}^N m\mathrm{Bin}(m|N,\mu) = N\mu
    - var[m]=m=0N(mE[m])2Bin(mN,μ)=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)μa1(1μ)b1\mathrm{Beta}(\mu|a,b) = \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)}\mu^{a-1}(1-\mu)^{b-1}

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

Γ(x)=0ux1eudu\Gamma(x) = \int_0^{\infty}u^{x-1}e^{-u}\mathrm{d}u

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

  • Γ(x)=(x1)Γ(x1)\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(mN,μ)Beta(μa,b)01Bin(mN,μ)Beta(μa,b)dμ=μm+a1(1μ)l+b101μm+b1(1μ)l+b1dμ=μm+a1(1μ)l+b1Γ(m+a)Γ(l+b)/Γ(m+a+l+b)=Γ(m+a+l+b)Γ(m+a)Γ(l+b)μm+a1(1μ)l+b1p(\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}

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

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

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

예측분포(Predictive Distribution)

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

p(x=1D)=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=1D)=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=1Nk=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이 된다는 조건하에서 lnp(Dμ)\ln p(\mathcal{D}|\pmb \mu)을 최대화시키는 μk\mu_k를 구해야 한다. 라그랑주 승수(Lagrange multiplier) λ\lambda를 사용해서 다음을 최대화시키면 된다.

k=1Kmklnμk+λ(k=1Kμk1)\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)=(Nm1m2mK)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}

(Nm1m2mK)=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αk1\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+mk1p(\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_kxk=1x_k=1에 대한 사전관찰 개수라고 생각할 수 있다.

profile
하루하루 성장중

0개의 댓글