この問題では、混合分布モデルとEMアルゴリズムの基本原理について理解を深めます。混合分布は複雑なデータ構造を表現する強力なツールで、クラスタリング、密度推定、機械学習など広範囲にわたって応用されます。
混合分布:複雑な確率構造の分解
混合分布は、複数の基本分布を重み付き線形結合で表現する確率モデルです。各データポイントがどの成分から生成されたかという潜在変数を推定することで、データの隠れた構造を発見できます。
Step 1: 混合正規分布の数学的定義
$K$個の正規分布の混合モデル:
$$f(x) = \\sum_{k=1}^K \\pi_k \\cdot \\mathcal{N}(x; \\mu_k, \\sigma_k^2)$$
ここで:
- $\\pi_k$:第$k$成分の混合比重($\\sum_{k=1}^K \\pi_k = 1$、$\\pi_k \\geq 0$)
- $\\mathcal{N}(x; \\mu_k, \\sigma_k^2)$:平均$\\mu_k$、分散$\\sigma_k^2$の正規分布
- $\\theta = \\{\\pi_k, \\mu_k, \\sigma_k^2\\}_{k=1}^K$:推定すべきパラメータ集合
本問題の設定
成分 | 混合比重 | 平均 | 分散 |
---|
第1成分 | $\\pi_1 = 0.4$ | $\\mu_1 = 2$ | $\\sigma_1^2 = 1$ |
第2成分 | $\\pi_2 = 0.6$ | $\\mu_2 = 5$ | $\\sigma_2^2 = 4$ |
Step 2: EMアルゴリズムの基本原理
EMアルゴリズム(Expectation-Maximization Algorithm)は、潜在変数を含むモデルの最尤推定を行う反復アルゴリズムです:
E-step(期待値ステップ):
観測値$x_i$が第$k$成分から生成される事後確率(責任度)を計算:
$$\\gamma_{ik} = P(Z_i = k | x_i, \\theta) = \\frac{\\pi_k \\cdot \\mathcal{N}(x_i; \\mu_k, \\sigma_k^2)}{\\sum_{j=1}^K \\pi_j \\cdot \\mathcal{N}(x_i; \\mu_j, \\sigma_j^2)}$$
M-step(最大化ステップ):
責任度を用いてパラメータを更新:
$$\\pi_k^{\\text{new}} = \\frac{1}{N} \\sum_{i=1}^N \\gamma_{ik}, \\quad \\mu_k^{\\text{new}} = \\frac{\\sum_{i=1}^N \\gamma_{ik} x_i}{\\sum_{i=1}^N \\gamma_{ik}}$$
Step 3: 各成分の確率密度計算
観測値$x = 3$における各成分の確率密度を計算:
第1成分$N(2, 1)$での確率密度:
$$\\mathcal{N}(3; 2, 1) = \\frac{1}{\\sqrt{2\\pi \\cdot 1}} \\exp\\left(-\\frac{(3-2)^2}{2 \\cdot 1}\\right) = \\frac{1}{\\sqrt{2\\pi}} \\exp\\left(-\\frac{1}{2}\\right) = \\frac{1}{\\sqrt{2\\pi}} e^{-0.5}$$
$$= \\frac{1}{\\sqrt{2\\pi}} \\cdot 0.6065 \\approx 0.2420$$
第2成分$N(5, 4)$での確率密度:
$$\\mathcal{N}(3; 5, 4) = \\frac{1}{\\sqrt{2\\pi \\cdot 4}} \\exp\\left(-\\frac{(3-5)^2}{2 \\cdot 4}\\right) = \\frac{1}{2\\sqrt{2\\pi}} \\exp\\left(-\\frac{4}{8}\\right) = \\frac{1}{2\\sqrt{2\\pi}} e^{-0.5}$$
$$= \\frac{1}{2\\sqrt{2\\pi}} \\cdot 0.6065 \\approx 0.1210$$
Step 4: 重み付き確率密度の計算
各成分の混合比重を考慮した重み付き確率密度:
$$\\pi_1 \\cdot \\mathcal{N}(3; 2, 1) = 0.4 \\times 0.2420 = 0.0968$$
$$\\pi_2 \\cdot \\mathcal{N}(3; 5, 4) = 0.6 \\times 0.1210 = 0.0726$$
全体の確率密度(正規化定数):
$$f(3) = 0.0968 + 0.0726 = 0.1694$$
Step 5: 事後確率の計算
ベイズの定理により、$x = 3$が第1成分から生成される事後確率:
$$\\gamma_1(3) = \\frac{\\pi_1 \\cdot \\mathcal{N}(3; 2, 1)}{f(3)} = \\frac{0.0968}{0.1694} = 0.5714$$
検証として第2成分の事後確率:
$$\\gamma_2(3) = \\frac{\\pi_2 \\cdot \\mathcal{N}(3; 5, 4)}{f(3)} = \\frac{0.0726}{0.1694} = 0.4286$$
直感的解釈
この結果は以下のように解釈できます:
観点 | 分析 | 結論 |
---|
距離 | $|3-2|=1$ vs $|3-5|=2$ | 第1成分により近い |
分散 | 第1成分の方が集中 | 密度値が高い |
事前確率 | 第2成分の方が大きい | 効果が部分的に相殺 |
EMアルゴリズムの数学的基盤
Step 6: 対数尤度関数と完全データ尤度
観測データ$\\mathbf{x} = \\{x_1, \\ldots, x_N\\}$の対数尤度:
$$\\ell(\\theta) = \\sum_{i=1}^N \\log \\left(\\sum_{k=1}^K \\pi_k \\mathcal{N}(x_i; \\mu_k, \\sigma_k^2)\\right)$$
潜在変数$\\mathbf{Z} = \\{z_{ik}\\}$を含む完全データ対数尤度:
$$\\ell_c(\\theta) = \\sum_{i=1}^N \\sum_{k=1}^K z_{ik} [\\log \\pi_k + \\log \\mathcal{N}(x_i; \\mu_k, \\sigma_k^2)]$$
Step 7: Q関数の最大化
E-stepで計算される期待完全データ対数尤度(Q関数):
$$Q(\\theta | \\theta^{(t)}) = \\sum_{i=1}^N \\sum_{k=1}^K \\gamma_{ik}^{(t)} [\\log \\pi_k + \\log \\mathcal{N}(x_i; \\mu_k, \\sigma_k^2)]$$
M-stepではこの$Q$関数を最大化してパラメータを更新します。