
자, 이제는 현실의 문제를 직시하자. 관측 데이터가 주어졌지만 군집 $G_1$과 $G_2$에 속할 확률 $\pi$, $1-\pi$를 모르고 사실 두 군집의 파라미터들도 모른다고 가정하자.
난감한 문제1 - 관측 데이터 1개 / 소속확률만 모르는 경우
$G_1 \sim N(0,1^2)$, $G_2 \sim N(2,1^2)$입니다. 데이터 $x=1$이 주어졌을 때, 이 데이터가 $G_1$과 $G_2$에 속할 확률을 모르는 상태입니다. $x=1$이 $G_1$에 속할 가능성을 구하세요. 각각의 확률밀도함수는 $f_1(x)$, $f_2(x)$라 한다.
$G_1$에 속할 확률을 $\pi$라 하면 주어진 데이터의 가능도(우도)는 다음과 같이 쓸 수 있다.
$\ell(x=1 | \pi) = \pi f_1(1) + (1-\pi) f_2(1)$
그런데, $\pi$를 모르므로 더 이상 문제를 해결할 수 없다.
그렇다면 질문을 바꾸자. 어차피 구할 수 없다면, 주어진 관측 데이터를 가장 잘 설명할 수 있는 $\pi$값을 찾아보자. 즉, MLE처럼 주어진 데이터는 아웃라이어가 아닌 흔하게 관측될 수 있는 것이라고 생각해보자는 것이다.
위 식을 $\pi$에 대해 미분해서 $0$이 되는 곳을 찾아보자.
미분하면
$\dfrac{dp}{d\pi} = f_1(1) - f_2(1) = 0$
이 되어. $\pi$값에 관계없이 늘 미분값이 $0$이다. 이것은 하필 관측 데이터 $x=1$이 두 정규분포의 평균으로부터 같은 거리만큼 떨어져 있다보니 소속확률 $\pi$와 상관없이 늘 가능성이 일정하다는 결론이다. 그리고 관측 데이터가 두 정규분포의 평균으로부터 서로 다른 거리만큼 떨어져 있으면 미분값은 $0$아닌 상수가 되어 $\pi$를 구하지 못하기는 마찬가지다. 이런 현상은 군집이 많은데 데이터는 $1$개뿐이라서 발생하는 과적합(Overfitting)이다.
현실적으로도 $x=1$ 어디 소속이더라도 상관이 없는 이상적으로 가능성이 반반인 데이터라서 이런 문제를 일으키는 것이다. 다음 문제에서는 이런 이상치를 배제해보자.
난감한 문제2 - 관측 데이터 2개 / 소속확률만 모르는 경우
상황은 첫번째 문제와 같고 관측 데이터만 $x=0$과 $x=3$이라 하자. 그렇다면 가능성(우도)은
$\ell(x=0, x=3 | \pi) = p(x=0 | \pi) \cdot p(x=3 | \pi)$
단, $p(x=0 | \pi) = \pi f_1(0) + (1-\pi)f_2(0)$ 이고 $p(x=3 | \pi) = \pi f_1(3) + (1-\pi)f_2(3)$이다.
미분을 하기 좋게 양변에 로그를 씌워 로그우도를 만들자.
$\ln \ell(x=0, x=3 | \pi) = \ln p(x=0 | \pi) + \ln p(x=3 | \pi) $
양변을 $\pi$로 미분하면
$\dfrac{d\ln \ell}{d\pi} = \dfrac{ f_1(0) - f_2(0) }{ \pi f_1(0) + (1-\pi)f_2(0) } + \dfrac{ f_1(3) - f_2(3) }{ \pi f_1(3) + (1-\pi)f_2(3) }$
이므로 $\dfrac{d\ln \ell}{d\pi} = 0$이 되는 $\pi$값을 구하면
$\pi = \dfrac{ \left\{ f_2(0) - f_1(0) \right\}f_2(3) + \left\{ f_2(3) - f_1(3) \right\}f_2(0) }{ 2 \left\{ f_1(0) - f_2(0) \right\} \left\{ f_1(3) - f_2(3) \right\} }$
이렇게 구했다. 이제 이 값을 이용해서 각 군집에 속할 확률을 구할 수 있다.
난감한 문제라곤 했지만 그래도 정확한 값을 구할 수 있으니 어렵지 않다. 그렇다면 좀만 더 어렵게 가보자.
난감한 문제3 - 관측 데이터 3개 / 소속확률만 모르는 경우
같은 상황에서 관측 데이터가 $x=0, 3, 4$라 해보자. 바로 로그우도로 들어가면(항 하나만 추가하면 된다)
$\ln \ell(x=0, 3, 4 | \pi) = \ln p(x=0 | \pi) + \ln p(x=3 | \pi) + \ln p(x=4 | \pi)$
$\pi$로 미분하면
$\dfrac{d\ln \ell}{d\pi} = \dfrac{ f_1(0) - f_2(0) }{ \pi f_1(0) + (1-\pi)f_2(0) } + \dfrac{ f_1(3) - f_2(3) }{ \pi f_1(3) + (1-\pi)f_2(3) } + \dfrac{ f_1(4) - f_2(4) }{ \pi f_1(4) + (1-\pi) f_2(4) }$
이다. $\dfrac{\ln L}{d\pi} = 0$을 풀기 쉽게 하기 위해
$c_1 = f_1(0) - f_2(0)$, $c_2 = f_1(3) - f_2(3)$, $c_3 = f_1(4) - f_2(4)$
로 치환하면
$\dfrac{d\ln \ell}{d\pi} = \dfrac{c_1}{c_1 \pi +f_2(0)} + \dfrac{c_2}{c_2 \pi +f_2(3)} + \dfrac{c_3}{c_3 \pi + f_2(4)} $
이므로 $\dfrac{d\ln \ell}{d\pi} = 0$을 풀어보자. 분자가 중요하므로 통분한 분자만 구하면
$c_1 \{ c_2\pi+f_2(3) \}\{ c_3\pi+f_2(4) \} + c_2 \{ c_1\pi+f_2(0) \}\{c_3\pi+f_2(4)\} + c_3 \{ c_1\pi+f_2(0) \}\{ c_2\pi+f_2(3) \}$
이므로 위 분자가 $0$이 되려면
$ a\pi^2 + b\pi + c = 0$
$a = c_1c_2c_3$
$b = c_1\{ c_2f_2(4) + c_3f_2(3) \} + c_2\{ c_1f_2(4) + c_3f_2(0) \} + c_3\{ c_1f_2(3)+c_2f_2(3) \}$
$c = c_1f_2(3)f_2(4) + c_2f_2(0)f_2(4) + c_3f_2(0)f_2(3)$
이러한 이차방정식을 풀어야 한다.
관측 데이터가 2개일 때는 일차방정식, 3개일 때는 이차방정식이었으므로 4개 이상이면 손으로 푸는 것은 포기해야 한다. 관측 데이터가 $n$개 이면 풀어야 하는 방정식은 $n-1$차 방정식인데, 과연 어떻게 해야할까?
수학과 수치해석 시간에 방정식을 푸는 여러 가지 방법을 배우지만 머신러닝에서 가장 직관적이고 구현이 쉬운 방법은 경사하강법(Gradient Descent Method)이다.
하지만 경사하강법은 다음과 같은 문제가 있다.
① 제약 조건을 고려하는 것이 귀찮다.
확률 조건 $0 \le \pi \le 1$과 분산 조건 $\sigma^2>0$을 만족하지 않은 값을 구하게 될 수도 있다.(분산을 몰라서 추정해야 하는 경우)
② 보폭(Learning Rate) 설정 문제
보폭이 너무 작으면 수렴이 느리고 보폭이 너무 크면 수렴하지 않을 수 있는 문제가 있어서 경사하강법은 언제나 보폭 결정할 때 수많은 실험으로 결정할 수 밖에 없다.
따라서 다음 시간에는 태생적으로 위 두 가지 제약에서 자유로운 최적화 방법을 알아보자.
'단편 강의' 카테고리의 다른 글
| 행렬식(Determinants)(1) (0) | 2026.04.15 |
|---|---|
| 이 데이터, 여기서 나왔을 확률은? - Membership Problem(4) (0) | 2026.04.14 |
| 이 데이터, 여기서 나왔을 확률은? - Membership Problem(2) (0) | 2026.04.13 |
| 이 데이터, 여기서 나왔을 확률은? - Membership Problem(1) (0) | 2026.04.13 |
| 최대우도추정(Maximum Likelihood Estimation) (0) | 2026.04.13 |