kar7mp5

[Christopher M.Bishop, Deep Learning] Chapter 3.1. Discrete Variables (이산변수) 본문

AI/Christopher M.Bishop, Deep Learning

[Christopher M.Bishop, Deep Learning] Chapter 3.1. Discrete Variables (이산변수)

kar7mp5 2025. 3. 25. 18:36
728x90

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

3.1. Discrete Variables (이산 변수)


3.1.1 Bernoulli distribution (베르누이 분포)

주어진 확률 $0 \leq p \leq 1$에 대하여
$$
\begin{equation}
X =
\begin{cases}
1 & \text{with probability } p \
0 & \text{with probability } (1 - p)
\end{cases}
\end{equation}
$$
Bernoulli distribution라고 합니다.
평균과 분산은 위 확률 분포로 직접 구할 수 있습니다.
변수 $\mu$에 대하여 $x = 1$는 다음과 같이 정의할 수 있습니다:
$$
p(x = 1 \mid \mu) = \mu
$$
$0 \leq \mu \leq 1$이고 $p(x = 0 \mid \mu) = 1 - \mu$이면,
$$
Bern(x\mid \mu) = \mu^x(1-\mu)^{1-x}
$$
이를 일반화하면, 다음과 같이 나옵니다.
$$
E[X] = 1 \times \mu + 0 \times (1-\mu) = \mu
$$
$$
E[X^2] = 1^2 \times \mu + 0^2 \times (1-\mu) = \mu
$$
$$
Var[X] = E[X^2] - (E[X])^2 = \mu(1-\mu)
$$

우도 함수 재정의

$$
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}
$$

  • $\mathcal{D} = {x_1, \dots, x_N}$: 관측된 데이터 $N$개
    관측한 $N$개의 이진 데이터
    예를 들어, 동전을 5번 던졌고 결과가 $[1, 0, 1, 1, 0]$ 라면,
    $\mathcal{D} = {1, 0, 1, 1, 0}$입니다.
  • 관측된 값들이 서로 독립이라 가정하면, 전체 확률은 개별 확률들의 곱
  • 우도 함수이며, 파라미터 $\mu$가 주어졌을 때 데이터가 나올 확률

로그 우도 함수 (Log-Likelihood)

$$
\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}
$$

  • 확률 곱을 그대로 쓰면 수치적으로 불안정 -> 로그로 변환
  • 곱셉 -> 덧셈으로 바뀌어 계산과 미분이 훨씬 쉬워짐
    $\ln \left( \prod_{n=1}^{N} a_n \right) = \sum_{n=1}^{N} \ln a_n$
    $\ln p(\mathcal{D} \mid \mu) = \ln \left( \prod_{n=1}^{N} \mu^{x_n} (1 - \mu)^{1 - x_n} \right) = \sum_{n=1}^{N} \left[ x_n \ln \mu + (1 - x_n) \ln(1 - \mu) \right]$
  • $\mu$에 대한 목적 함수로 쓰임
  • 로그우도 함수를 최대화하는 $\mu$를 찾는 것

최대우도추정 (MLE)

로그우도 함수를 최대화하면 우리가 원하는 $\mu$ 추정값을 얻을 수 있습니다.
$$
\hat{\mu} = \arg\max_\mu \ln p(\mathcal{D} \mid \mu)
$$
미분해서 $0$이 되는 지점을 찾으면:
$$
\hat{\mu} = \frac{1}{N} \sum_{n=1}^{N} x_n \tag{3.7}
$$

직관적인 의미

$$
\mu_{ML} = \frac{m}{N} \tag{3.8}
$$

  • $m$은 성공한 횟수
  • 전체 시도 횟수 $N$에 대한 성공 비율
  • 베르누이 분포의 MLE는 성공한 비율이라는 매우 직관적인 결과를 얻습니다.

3.1.2 Binomial distribution (이항 분포)

이항 변수 $x$에 대해 데이터 셋의 크기가 $N$이고 그 중에서 $x = 1$인 관측값이 $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 \tag{3.13}
$$

  • 이 벡터는 어떤 변수가 6개의 상태 중 세 번째 상태($x_3 = 1$)일 때의 one-hot 표현입니다.
  • 특징: 오직 하나의 원소만 $1$이고 나머지는 모두 $0$입니다.
  • 일반적으로 K개의 클래스 중 하나를 표현할 때 이렇게 사용합니다.

다항 분포의 정의

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

  • 여기서 $μ_k$는 각 클래스(또는 상태) $k$에 해당할 확률.
  • $x_k$는 해당 클래스가 선택되었는지를 나타냅니다 (즉, one-hot이기 때문에 하나만 $1$임).
  • 예를 들어 $x = (0, 1, 0)$이면 $p(x \mid \mu) = \mu_2$

정규화 조건

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

  • 가능한 모든 one-hot 벡터에 대해 확률을 합하면 $1$이 되어야 하므로,
  • $μ_k$들은 전체 합이 $1$인 확률 분포입니다.

기대값

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

  • 기대값은 각 클래스가 선택될 확률로 가중합한 것입니다.
  • one-hot 벡터 $x$들의 기대값은 그대로 확률 벡터 $\mu$가 됩니다.

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

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

  • 관측값이 $N$개 ($x_1, \dots, x_N$) 있을 때, 각 데이터 포인트의 확률을 곱한 것이 전체 우도
  • $x_{nk}$는 $n$번째 데이터가 $k$번째 클래스를 선택했는지를 나타냄

이를 다음과 같이 정리할 수 있습니다.
$$
= \prod_{k=1}^{K} \mu_k^{m_k}
$$

  • 여기서 $m_k$는 $k$번째 클래스가 선택된 횟수입니다:
    $$
    m_k = \sum_{n=1}^{N} x_{nk} \tag{3.18}
    $$

데이터 수의 제약 조건

$$
\sum^{K}_{k=1} m_k = N \tag{3.19}
$$

  • $m_k$: $k$번째 상태(또는 클래스)가 관측된 횟수입니다.
  • $N$: 전체 관측 데이터의 수입니다.
  • 각 상태의 등장 횟수 총합은 전체 데이터 수와 같아야 합니다.

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

목표:

우도 함수를 최대화하는 확률 벡터 $\mu$를 구하는 것
그런데 $u_k$는 확률이기 때문에 다음 조건이 반드시 성립해야 합니다:
$$
\sum^{K}_{k=1} \mu_k = 1 \tag{3.15}
$$
이런 부분 해결을 위해 라그랑주 승수법을 사용합니다. 그래서 최적화 대상이 되는 식은 다음과 같이 정의됩니다.
$$
\sum^{K}_{k=1} m_k \ln{\mu_k} + \lambda \left( \sum_{k=1}^{K} \mu_k - 1 \right) \tag{3.20}
$$

유도

이 식을 $u_k$에 대해 편미분하고, $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. 목표

다음의 로그우도 + 라그랑주 승수 식을 $\mu_k$에 대해 편미분해서 최대화하려고 합니다:
$$
\mathcal{L}(\mu, \lambda) = \sum_{j=1}^{K} m_j \ln \mu_j + \lambda \left( \sum_{j=1}^{K} \mu_j - 1 \right)
$$

  • 첫 번째 항: log-likelihood (우도 함수의 로그)

두 번째 항: 확률 벡터 $\mu = (\mu_1, \dots, \mu_K)$가 합쳐서 $1$이 되어야 한다는 제약조건위 식을 $\mu_k$에 대해 편미분합니다.
$$
\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. $\mu_k$에 대해 편미분

  • $\frac{\partial}{\partial\mu_k}\sum^{K}_{j=1}m_j\ln\mu_j = \frac{m_k}{\mu_k} \leftarrow j \neq k$ 이면 상수니까 미분 $0$

$\frac{\partial}{\partial\mu_k}\lambda\left(\sum^{K}_{j=1}\mu_j - 1 \right) = \lambda \leftarrow \mu_k$에 대한 편미분은 $\lambda$만 남음
결과:
$$
\frac{\partial\mathcal{L}}{\partial\mu_k} = \frac{m_k}{\mu_k} + \lambda
$$

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

목표가 로그우도의 최대화이므로 위의 편미분식을 $0$으로 둡니다.
$$
\frac{m_k}{\mu_k} + \lambda = 0 \ \Rightarrow \ \frac{m_k}{\mu_k} = -\lambda \ \Rightarrow \ \mu_k = \frac{m_k}{-\lambda} \tag{1}
$$

4. 제약 조건 이용

확률 벡터 합이 $1$이 되어야 합니다.
$$
\sum^{K}_{k=1}\mu_k = 1
$$
식 (1)에 $\mu_k = \frac{m_k}{-\lambda}$를 대입:
$$
\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$값을 $\mu_k$에 다시 대입

식 (1)에 다시 대입:
$$
\mu_k = \frac{m_k}{-\lambda} = \frac{m_k}{N}
$$
이 식을 풀면 다음과 같은 해를 구할 수 있습니다.
$$
\boxed{\mu_k = \frac{m_k}{N}}
$$
즉, 각 클래스 $k$의 $\text{MLE}$ 확률은 전체 데이터 중 해당 클래스가 나온 비율입니다.

728x90