← 블로그 돌아가기

[Machine Learning] Discrete Variables

Artificial Intelligence > Machine Learning

2026-07-045분 읽기

#artificial-intelligence #machine-learning

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

3.1. Discrete Variables (이산 변수)


3.1.1 Bernoulli distribution (베르누이 분포)

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

X={1with probability p 0with probability (1−p)\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−μ)1−xBern(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−μ)1−xn(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)

ln⁡p(D∣μ)=∑n=1Nln⁡p(xn∣μ)=∑n=1Nxnln⁡μ+(1−xn)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 추정값을 얻을 수 있습니다.

μ^=arg⁡max⁡μln⁡p(D∣μ)\hat{\mu} = \arg\max_\mu \ln p(\mathcal{D} \mid \mu)

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

μ^=1N∑n=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(m∣N,μ)=(Nm)μm(1−μ)N−m\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=1N∏k=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μk−1)(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μj−1)]=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μj−1)\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μj−1)]\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μj−1)=λ←μ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}}

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