← Back to Blog

[Machine Learning] Discrete Variables

artificial intelligence > machine learning

2026-07-045 min read

#artificial-intelligence #machine-learning

이 블로그는 Christopher M.Bishop의 Deep Learning 책을 기반으로 작성되었습니다.

3.1. Discrete Variables (이산 변수)


3.1.1 Bernoulli distribution (베르누이 분포)

주어진 확률 0p10 \leq p \leq 1에 대하여

X={1with probability p 0with probability (1p)\begin{equation} X = \begin{cases} 1 & \text{with probability } p \ 0 & \text{with probability } (1 - p) \end{cases} \end{equation}

Bernoulli distribution라고 합니다. 평균과 분산은 위 확률 분포로 직접 구할 수 있습니다. 변수 μ\mu에 대하여 x=1x = 1는 다음과 같이 정의할 수 있습니다:

p(x=1μ)=μp(x = 1 \mid \mu) = \mu

0μ10 \leq \mu \leq 1이고 p(x=0μ)=1μp(x = 0 \mid \mu) = 1 - \mu이면,

Bern(xμ)=μx(1μ)1xBern(x\mid \mu) = \mu^x(1-\mu)^{1-x}

이를 일반화하면, 다음과 같이 나옵니다.

E[X]=1×μ+0×(1μ)=μE[X] = 1 \times \mu + 0 \times (1-\mu) = \mu E[X2]=12×μ+02×(1μ)=μE[X^2] = 1^2 \times \mu + 0^2 \times (1-\mu) = \mu Var[X]=E[X2](E[X])2=μ(1μ)Var[X] = E[X^2] - (E[X])^2 = \mu(1-\mu)

우도 함수 재정의

p(Dμ)=n=1Np(xnμ)=n=1Nμxn(1μ)1xn(3.5)p(\mathcal{D} \mid \mu) = \prod_{n=1}^{N} p(x_n \mid \mu) = \prod_{n=1}^{N} \mu^{x_n} (1 - \mu)^{1 - x_n} \tag{3.5}

로그 우도 함수 (Log-Likelihood)

lnp(Dμ)=n=1Nlnp(xnμ)=n=1Nxnlnμ+(1xn)ln(1μ)(3.6)\ln p(\mathcal{D} \mid \mu) = \sum_{n=1}^{N} \ln p(x_n \mid \mu) = \sum_{n=1}^{N} {x_n \ln \mu + (1 - x_n) \ln(1 - \mu)} \tag{3.6}

최대우도추정 (MLE)

로그우도 함수를 최대화하면 우리가 원하는 μ\mu 추정값을 얻을 수 있습니다.

μ^=argmaxμlnp(Dμ)\hat{\mu} = \arg\max_\mu \ln p(\mathcal{D} \mid \mu)

미분해서 00이 되는 지점을 찾으면:

μ^=1Nn=1Nxn(3.7)\hat{\mu} = \frac{1}{N} \sum_{n=1}^{N} x_n \tag{3.7}

직관적인 의미

μML=mN(3.8)\mu_{ML} = \frac{m}{N} \tag{3.8}

3.1.2 Binomial distribution (이항 분포)

이항 변수 xx에 대해 데이터 셋의 크기가 NN이고 그 중에서 x=1x = 1인 관측값이 mm번 나올 확률을 구하고자 합니다.

Bin(mN,μ)=(Nm)μm(1μ)Nm\text{Bin}(m \mid N, \mu) = \binom{N}{m} \mu^m (1 - \mu)^{N - m}

3.1.3 Multinomial distribution (다항 분포)

One-hot Encoding (1-of-K 표현)

x=(0,0,1,0,0,0)T(3.13)x = (0, 0, 1, 0, 0, 0)^T \tag{3.13}

다항 분포의 정의

p(xμ)=k=1Kμkxk(3.14)p(\mathbf{x}|\boldsymbol{\mu}) = \prod_{k=1}^{K} \mu_k^{x_k} \tag{3.14}

정규화 조건

xp(xμ)=k=1Kμk=1(3.15)\sum_{\mathbf{x}} p(\mathbf{x}|\boldsymbol{\mu}) = \sum_{k=1}^{K} \mu_k = 1 \tag{3.15}

기대값

E[xμ]=xp(xμ)x=μ(3.16)\mathbb{E}[\mathbf{x}|\boldsymbol{\mu}] = \sum_{\mathbf{x}} p(\mathbf{x}|\boldsymbol{\mu})\mathbf{x} = \boldsymbol{\mu} \tag{3.16}

데이터셋에 대한 우도 함수 (Likelihood)

p(Dμ)=n=1Nk=1Kμkxnk(3.17)p(\mathcal{D}|\boldsymbol{\mu}) = \prod_{n=1}^{N} \prod_{k=1}^{K} \mu_k^{x_{nk}} \tag{3.17}

이를 다음과 같이 정리할 수 있습니다.

=k=1Kμkmk= \prod_{k=1}^{K} \mu_k^{m_k}

데이터 수의 제약 조건

k=1Kmk=N(3.19)\sum^{K}_{k=1} m_k = N \tag{3.19}

로그우도 함수와 라그랑주 승수법 (Lagrange Multiplier)

목표:

우도 함수를 최대화하는 확률 벡터 μ\mu를 구하는 것 그런데 uku_k는 확률이기 때문에 다음 조건이 반드시 성립해야 합니다:

k=1Kμk=1(3.15)\sum^{K}_{k=1} \mu_k = 1 \tag{3.15}

이런 부분 해결을 위해 라그랑주 승수법을 사용합니다. 그래서 최적화 대상이 되는 식은 다음과 같이 정의됩니다.

k=1Kmklnμk+λ(k=1Kμk1)(3.20)\sum^{K}_{k=1} m_k \ln{\mu_k} + \lambda \left( \sum_{k=1}^{K} \mu_k - 1 \right) \tag{3.20}

유도

이 식을 uku_k에 대해 편미분하고, 00으로 두면 최적값을 구할 수 있습니다.

μk[j=1Kmjlnμj+λ(j=1Kμj1)]=0\frac{\partial}{\partial \mu_k} \left[ \sum_{j=1}^{K} m_j \ln{\mu_j} + \lambda \left( \sum_{j=1}^{K} \mu_j - 1 \right) \right] = 0

1. 목표

다음의 로그우도 + 라그랑주 승수 식을 μk\mu_k에 대해 편미분해서 최대화하려고 합니다:

L(μ,λ)=j=1Kmjlnμj+λ(j=1Kμj1)\mathcal{L}(\mu, \lambda) = \sum_{j=1}^{K} m_j \ln \mu_j + \lambda \left( \sum_{j=1}^{K} \mu_j - 1 \right)

두 번째 항: 확률 벡터 μ=(μ1,,μK)\mu = (\mu_1, \dots, \mu_K)가 합쳐서 11이 되어야 한다는 제약조건위 식을 μk\mu_k에 대해 편미분합니다.

Lμk=μk[j=1Kmjlnμj+λ(j=1Kμj1)]\frac{\partial \mathcal{L}}{\partial \mu_k} = \frac{\partial}{\partial \mu_k} \left[ \sum_{j=1}^{K} m_j \ln \mu_j + \lambda \left( \sum_{j=1}^{K} \mu_j - 1 \right) \right]

2. μk\mu_k에 대해 편미분

μkλ(j=1Kμj1)=λμk\frac{\partial}{\partial\mu_k}\lambda\left(\sum^{K}_{j=1}\mu_j - 1 \right) = \lambda \leftarrow \mu_k에 대한 편미분은 λ\lambda만 남음 결과:

Lμk=mkμk+λ\frac{\partial\mathcal{L}}{\partial\mu_k} = \frac{m_k}{\mu_k} + \lambda

3. 최댓값 조건 0\rightarrow 0으로 둠

목표가 로그우도의 최대화이므로 위의 편미분식을 00으로 둡니다.

mkμk+λ=0  mkμk=λ  μk=mkλ(1)\frac{m_k}{\mu_k} + \lambda = 0 \ \Rightarrow \ \frac{m_k}{\mu_k} = -\lambda \ \Rightarrow \ \mu_k = \frac{m_k}{-\lambda} \tag{1}

4. 제약 조건 이용

확률 벡터 합이 11이 되어야 합니다.

k=1Kμk=1\sum^{K}_{k=1}\mu_k = 1

식 (1)에 μk=mkλ\mu_k = \frac{m_k}{-\lambda}를 대입:

k=1Kmkλ=1  1λk=1Kmk=1  Nλ=1  λ=N\sum^{K}_{k=1}\frac{m_k}{-\lambda} = 1 \ \Rightarrow \ \frac{1}{-\lambda}\sum^{K}_{k=1}m_k = 1 \ \Rightarrow \ \frac{N}{-\lambda} = 1 \ \Rightarrow \ \lambda = -N

5. λ\lambda값을 μk\mu_k에 다시 대입

식 (1)에 다시 대입:

μk=mkλ=mkN\mu_k = \frac{m_k}{-\lambda} = \frac{m_k}{N}

이 식을 풀면 다음과 같은 해를 구할 수 있습니다.

μk=mkN\boxed{\mu_k = \frac{m_k}{N}}

즉, 각 클래스 kkMLE\text{MLE} 확률은 전체 데이터 중 해당 클래스가 나온 비율입니다.