【機械学習】期待値最大化アルゴリズム(EMアルゴリズム):期待値最大化アルゴリズム
記事ディレクトリ
1 はじめに
EMアルゴリズム、正式名はExpectation Maximization Algorithmです。期待値最大化アルゴリズムは、隠れ変数 (Hidden Variable) を含む確率パラメータ モデルの最尤推定または最大事後確率推定に使用される反復アルゴリズムです。
サンプルのモデルパラメータはサンプルの観測データから求めることがよくあります。最も一般的な方法は、モデル分布の対数尤度関数を最大化することです。
- ただし、取得した観測データには観測されていない暗黙のデータが含まれる場合があり、この時点では暗黙のデータとモデルのパラメーターがわからないため、最大対数尤度関数を直接使用してモデル分布のパラメーターを取得することはできません。 . .
どうやってするの?ここで EM アルゴリズムが役に立ちます。
- この問題を解決するための EM アルゴリズムのアイデアは、ヒューリスティックな反復法を使用することです。モデルの分布パラメーターを直接取得できないため、最初に暗黙的なデータ (EM アルゴリズムのステップ E) を推測し、次にそれに基づいて、観測されたデータと推測された暗黙的なデータ 対数尤度を最大化し、モデル パラメーター (EM アルゴリズムの M ステップ) を解いてみましょう。
- 前回の非表示データは推測されているため、この時点で取得されるモデル パラメーターは通常、望んでいる結果ではありません。しかし、それは問題ではありません。現在取得されているモデル パラメーターに基づいて、隠れたデータの推測 (EM アルゴリズムの E ステップ) を続け、対数尤度を最大化し、モデル パラメーターを解き続けます (EM アルゴリズムの M ステップ)。 EM アルゴリズム)。同様に、モデルの分布パラメーターが基本的に変更されず、アルゴリズムが収束し、適切なモデル パラメーターが見つかるまで反復が続きます。
上記の説明から分かるように、EMアルゴリズムは最大値を反復的に求めるアルゴリズムであるが、各反復においてEステップとMステップの2つのステップに分かれている。収束するまで、つまり必要なモデル パラメーターが取得されるまで、隠れたデータとモデルの分布パラメーターをラウンドごとに繰り返し更新します。
- EM アルゴリズムの概念を理解するための最も直観的な方法の 1 つは、K-Means アルゴリズムです。前に書いた K-Means クラスタリング アルゴリズムの原理を参照してください。K-Means クラスタリングでは、各クラスターの重心が隠れたデータになります。
- K 個の初期重心 (EM アルゴリズムの E ステップ) を仮定し、次に各サンプルの最も近い重心を計算し、サンプルを最も近い重心 (EM アルゴリズムの M ステップ) にクラスター化します。重心が変化しなくなるまでこの E ステップと M ステップを繰り返し、K-Means クラスタリングを完了します。
もちろん、K 平均法アルゴリズムは比較的単純ですが、実際の問題はそれほど単純ではないことがよくあります。次に、それを数学的言語で正確に記述する必要があります。
2. EMアルゴリズムの数学的説明
MM用M 個のサンプル データX = { x 1 , x_2 , x 3 , ... x M } X = \{ x_1, x_2, x_3,... \ x_M \}バツ={
×1、バツ2、バツ3、... × M}、サンプルのモデル パラメーターθ \thetaθ、最大化モデル分布の対数尤度関数は次のとおりです。
θ ∗ = arg max θ ∑ i = 1 M log P θ ( xi ) \begin{align} \theta ^{*} = \mathop{ \arg\max}\limits_{\theta} \sum^{M}_{i=1} \log P_{\theta}(x_i) \end{align}私∗=私arg _マックスi = 1∑Mログ_P私( ×私は)
取得した観測データには観測されていない暗黙的なデータが含まれていると仮定します: C = { c 1 , c 2 , c 3 , ... z K } C = \{ c_1, c_2, c_3,... \ z_K \}C={
c1、c2、c3、... z K} max
θ ∑ max θ ∑ i = 1 M log ∑ k = 1 KP θ ( xi , ck ) \begin{align}\theta^{*} = \mathop{\arg\max}\limits_ {\theta}\sum^{M}_{i=1 } \log P_{\theta}(x_i) = \top{\arg\max}\limits_{\theta} \sum^{M}_{i =1} \log \sum_{k=1}^{K } P_{\theta}(x_i, c_k) \end{align}私∗=私arg _マックスi = 1∑Mログ_P私( ×私は)=私arg _マックスi = 1∑Mログ_k = 1∑KP私( ×私は、ck)
上記の式からθ \thetaを直接計算する方法はありません。θさん。最初にこの方程式を次のようにスケールします:
∑ i = 1 M log ∑ k = 1 KP θ ( xi , ck ) = ∑ i = 1 M log ∑ k = 1 KQ ( ck ) P θ ( xi , ck ) Q ( ck ) ≥ ∑ i = 1 M ∑ k = 1 KQ ( ck ) log P θ ( xi , ck ) Q ( ck ) \begin{align} \sum^{M} _ {i=1} \log \sum_{k=1}^{K} P_{\theta}(x_i, c_k) = & \sum^{M}_{i=1} \log \sum_{k= 1 }^{K} Q(c_k) \frac{P_{\theta}(x_i, c_k)}{Q(c_k)}\\ \geq & \sum^{M}_{i=1} \sum_{ k =1}^{K} Q(c_k) \log \frac{P_{\theta}(x_i, c_k)}{Q(c_k)} \end{align}i = 1∑Mログ_k = 1∑KP私( ×私は、ck)=≥i = 1∑Mログ_k = 1∑KQ ( ck)Q ( ck)P私( ×私は、ck)i = 1∑Mk = 1∑KQ ( ck)ログ_Q ( ck)P私( ×私は、ck)
上の方程式 (3) は、未知の新しい分布Q ( c ) Q(c)を導入します。Q ( c )、ジェンセンの不等式は式 (4) で使用されます。
log ∑ jqjxj ≥ ∑ jqj log xj \begin{align} \log \sum_j q_j x_j \geq \sum_j q_j \log x_j \end{align}ログ_j∑qjバツj≥j∑qjログ_バツj
具体的には、対数関数は凹関数であるため、 f ( x ) が
凹関数の場合、 f ( E ( x ) ) ≥ E ( f ( x ) ) になります (凸関数の場合、 ≤ ) \ begin{align} f(\mathbb E(x)) \geq \mathbb E(f(x))、 \ f(x) \ が凹関数の場合 (凸関数の場合: \leq) \終了{整列}f ( E ( x ))≥E ( f ( x )) 、f ( x )が凹関数の場合 (凸関数の場合: ≤)
このとき、ジェンセンの不等式の等号を満たすには、次のようになります。
P θ ( xi , ck ) Q ( ck ) = t 、 t は定数です\begin{align} \frac{P_{\theta} (x_i, c_k)} {Q(c_k)} = t、t は定数です\end{align}Q ( ck)P私( ×私は、ck)=t 、t は定数です
Q ( c ) Q(c)なのでQ ( c )は分布なので、次のようになります。
∑ k = 1 KQ ( ck ) = 1 \begin{align} \sum_{k=1}^KQ(c_k) = 1 \end{align}k = 1∑KQ ( ck)=1
さらに、次の方程式があります。
Q ( ck ) = P θ ( xi , ck ) ∑ k = 1 KP θ ( xi , ck ) = P θ ( xi , ck ) P θ ( xi ) = P θ ( ck ) ∣ xi ) \begin{align} Q(c_k) = \frac{P_{\theta}(x_i, c_k)}{ \sum_{k=1}^K P_{\theta}(x_i, c_k)} = \ frac{P_{\theta}(x_i, c_k)}{P_{\theta}(x_i)} = P_{\theta}(c_k|x_i)\end{align}Q ( ck)=∑k = 1KP私( ×私は、ck)P私( ×私は、ck)=P私( ×私は)P私( ×私は、ck)=P私( ck∣ x私は)
したがって、Q ( ck ) = P θ ( ck ∣ xi ) の場合、 Q(c_k) = P_{\theta}(c_k|x_i)Q ( ck)=P私( ck∣ x私は)の場合、式 (4) は、隠れたデータを含む対数尤度の下限になります。この下限を最大化できれば、対数尤度を最大化できることになります。つまり、次の式を最大化する必要があります:
arg max θ ∑ i = 1 M ∑ k = 1 KQ ( ck ) log P θ ( xi , ck ) Q ( ck ) \begin{align} \argmax_\theta \sum^ {M}_{i=1} \sum_{k=1}^{K} Q(c_k) \log \frac{P_{\theta}(x_i, c_k)}{Q(c_k)} \終了{整列}私引数マックスi = 1∑Mk = 1∑KQ ( ck)ログ_Q ( ck)P私( ×私は、ck)
上の式では0 ≤ Q ( ck ) ≤ 1 0 \leq Q(c_k) \leq 1 であるため、上の式の定数部分を削除します。0≤Q ( ck)≤1の場合、最大化する必要がある対数尤度の下限は、
arg max θ ∑ i = 1 M ∑ k = 1 KQ ( ck ) log P θ ( xi , ck ) \begin{align} \argmax_\ となります。 theta \sum^{M}_{i=1} \sum_{k=1}^{K} Q(c_k) \log P_{\theta}(x_i, c_k) \end{align}私引数マックスi = 1∑Mk = 1∑KQ ( ck)ログ_P私( ×私は、ck)
上の式は EM アルゴリズムの M ステップですが、E ステップはどうでしょうか? 上の式のQ ( ck ) Q(c_k)に注意してください。Q ( ck)は分布なので、∑ k = 1 KQ ( ck ) log P θ ( xi , ck ) \sum_{k=1}^{K} Q(c_k) \log P_{\theta}(x_i, c_k)∑k = 1KQ ( ck)ログ_P私( ×私は、ck)は log P θ ( xi , ck ) \log P_{\theta}(x_i, c_k)として理解できます。ログ_P私( ×私は、ck)条件付き確率分布Q ( ck ) Q(c_k)に基づくQ ( ck)期待。
ここまでで、EM アルゴリズムにおける E ステップと M ステップの具体的な数学的意味を理解しました。
3. EMアルゴリズムのプロセス
- 入力
- 観測データ: X = { x 1 , x 2 , x 3 , . . . x M }バツ={ ×1、バツ2、バツ3、... × M}
- 同時分布: P θ ( x , c ) P_\theta (x, c)P私( x ,c )
- 条件付き分布
- 最大反復回数: SSS
- 主な工程
- 1) モデルパラメータθ \thetaをランダムに初期化します。θ 0の初期値\theta^0私0
- 2) EM アルゴリズムの反復 (V 回)
- E: 方程式の式を指定します:
Q ( ck ) = P θ s ( ck ∣ xi ) L ( θ , θ s ) = ∑ i = 1 M ∑ k = 1 KQ ( ck ) log P θ ( . xi , ck ) \begin{align} Q(c_k) = P_{\theta^s}(c_k|x_i) \\L(\theta, \theta^s) = \sum^{M}_{i=1 } \sum_{k=1}^{K} Q(c_k) \log P_{\theta}(x_i, c_k) \end{align}Q ( ck)=P私s( ck∣ x私は)L ( θ ,私s )=i = 1∑Mk = 1∑KQ ( ck)ログ_P私( ×私は、ck) - M:定数L ( θ , θ s ) L(\theta, \theta^s)L ( θ ,私s )、θ s + 1 \theta^{s+1}私s + 1 :
θ s + 1 = arg max θ L ( θ , θ s ) \begin{align} \theta^{s+1} = \argmax_{\theta}L(\theta,\theta^s) \end{整列}私s + 1=私引数マックスL ( θ ,私) _ - 如果 θ s + 1 \theta^{s+1} 私s + 1が収束し、アルゴリズムが終了します。それ以外の場合は反復を続行します。
- E: 方程式の式を指定します:
- 出力
- モデルパラメータθ \theta私
4. 2 つの質問
4.1 EM アルゴリズムはどのようにして収束を保証しますか?
EM アルゴリズムが収束していることを証明するには、対数尤度関数の値が反復プロセス中に増加していることを証明する必要があります。つまり、
log P θ s + 1 ( xi ) ≥ log P θ s ( xi ) \begin{align} \log P_{\theta^{s+1}}(x_i) \geq \log P_{\シータ ^{s}}(x_i) \end{align}ログ_P私s + 1( ×私は)≥ログ_P私s( ×私は)
たとえば、
L ( θ , θ s ) = ∑ i = 1 M ∑ k = 1 KP θ s ( ck ∣ xi ) log P θ ( xi , ck ) ... ... 式: Q ( ck ) = P θ s ( ck ∣ xi ) \begin{align}L(\theta,\theta^s) = \sum^{M}_{i=1}\sum_{k=1}^{K}P_{\ theta^s}( c_k|x_i) \log P_{\theta}(x_i, c_k) ......Let:Q(c_k) = P_{\theta^s}(c_k|x_i) \end{align }L ( θ ,私s )=i = 1∑Mk = 1∑KP私s( ck∣ x私は)ログ_P私( ×私は、ck)……注: Q ( ck)=P私s( ck∣ x私は)
例:
H ( θ , θ s ) = ∑ i = 1 M ∑ k = 1 KP θ s ( ck ∣ xi ) log P θ ( ck ∣ xi ) \begin{align} H(\theta, \theta^ s ) = \sum^{M}_{i=1} \sum_{k=1}^{K} P_{\theta^s}(c_k|x_i) \log P_{\theta}(c_k|x_i) \ 終了{整列}H (私、私s )=i = 1∑Mk = 1∑KP私s( ck∣ x私は)ログ_P私( ck∣ x私は)
次の方程式を求めます。
L ( θ , θ s ) − H ( θ , θ s ) = ∑ i = 1 M ∑ k = 1 KP θ s ( ck ∣ xi ) log P θ ( xi , ck ) P θ ( ck ∣ xi ) = ∑ i = 1 M ∑ k = 1 KP θ s ( ck ∣ xi ) log P θ ( xi ) ... ... P θ s ( ck ∣ xi ) 無限に 1 と 1 1 = ∑ i = 1 M log P θ ( xi ) \begin{align} L(\theta, \theta^s) - H(\theta, \theta^s) = & \sum^{M}_{i=1 } \sum_{k=1}^{K} P_{\theta^s}(c_k|x_i) \log \frac{P_{\theta}(x_i, c_k) }{P_{\theta}(c_k|x_i) ). )} \\ = & \sum^{M}_{i=1} \sum_{k=1}^{K} P_{\theta^s}(c_k|x_i) \log P_{\theta} (x_i ) ...... P_{\theta^s}(c_k|x_i) 指数、1 と 11\\ = & \sum^{M}_{i=1} \log P_{\theta}( x_i) \end {整列}L ( θ ,私s )−H (私、私s )===i = 1∑Mk = 1∑KP私s( ck∣ x私は)ログ_P私( ck∣ x私は)P私( ×私は、ck)i = 1∑Mk = 1∑KP私s( ck∣ x私は)ログ_P私( ×私は)……P私s( ck∣ x私は)は既知であり、合計は1i = 1∑Mログ_P私( ×私は)
上の式の最後の式では、θ \thetaθ はそれぞれθ s \theta^{s}をとります私s和θ s + 1 \theta^{s+1}私s + 1、理論的には:
∑ i = 1 M log P θ s + 1 ( xi ) − ∑ i = 1 M log P θ s ( xi ) = [ L ( θ s + 1 , θ s ) − L ( θ s , θ s ) ] − [ H ( θ s + 1 , θ s ) − H ( θ s , θ s ) ] \begin{align} & \sum^{M}_{i=1} \log P_ {\theta^{s+1}}(x_i) - \sum^{M}_{i=1} \log P_{\theta^{s+1}}(x_i) \\ = & [L( \ theta^{s+1}, \theta^s) - L(\theta^{s}, \theta^s)] - [H(\theta^{s+1}, \theta^s) - H ( \theta^{s}, \theta^s)] \end{align}=i = 1∑Mログ_P私s + 1( ×私は)−i = 1∑Mログ_P私s( ×私は)[ L ( is + 1、私s )−L (私、 _私) ]−[ H ( is + 1、私s )−H (私、 _私) ]
EM アルゴリズムの収束を証明するには、上の方程式の右辺が負ではないことを証明するだけで済みます。θ s + 1 \theta^{s+1}なので私s + 1oneL ( θ , θ s ) L(\theta, \theta^s)L ( θ ,私s )特定の傾き:
L ( θ s + 1 , θ s ) − L ( θ s , θ s ) ≥ 0 \begin{align} L(\theta^{s+1}, \theta^s) - L (\theta^{s}, \theta^s) \geq 0 \end{align}L (私s + 1、私s )−L (私、 _私s )≥0
次の方程式を与えましょう:
H ( θ s + 1 , θ s ) − H ( θ s , θ s ) = ∑ i = 1 M ∑ k = 1 KP θ s ( ck ∣ xi ) log P θ s + 1 ( ck ∣ xi ) P θ s ( ck ∣ xi ) ≤ ∑ i = 1 M log ∑ k = 1 KP θ s ( ck ∣ xi ) P θ s + 1 ( ck ∣ xi ) P θ s ( ck ∣ xi ) ) = ∑ i = 1 M log ∑ k = 1 KP θ s + 1 ( ck ∣ xi ) = 0 \begin{align} H(\theta^{s+1}, \theta^s) - . H( \theta^{s}, \theta^s) = &\sum^{M}_{i=1}\sum_{k=1}^{K}P_{\theta^s}(c_k|x_i ) \ log \frac{P_{\theta^{s+1}}(c_k|x_i)}{P_{\theta^{s}}(c_k|x_i)}\\ \leq & \sum^{M} _{ i=1} \log \sum_{k=1}^{K} P_{\theta^s}(c_k|x_i) \frac{P_{\theta^{s+1}}(c_k|x_i) }{ P_{\theta^{s}}(c_k|x_i)} \\ = & \sum^{M}_{i=1} \log \sum_{k=1}^{K} P_{\theta ^{ s+1}}(c_k|x_i) = 0\end{整列}H (私s + 1、私s )−H (私、 _私s )=≤=i = 1∑Mk = 1∑KP私s( ck∣ x私は)ログ_P私s( ck∣ x私は)P私s + 1( ck∣ x私は)i = 1∑Mログ_k = 1∑KP私s( ck∣ x私は)P私s( ck∣ x私は)P私s + 1( ck∣ x私は)i = 1∑Mログ_k = 1∑KP私s + 1( ck∣ x私は)=0
このうち式 (25) は 2 節と逆のジェンセンの不等式を利用したものです。式 (26) は確率分布が累積して 1 になる性質を利用したものです。この時点で、
log P θ s + 1 ( xi ) − log P θ s ( xi ) ≥ 0 \begin{align} \log P_{\theta^{s+1}}(x_i) - が得られます。 \log P_{\theta^{s}}(x_i) \geq 0 \end{align}ログ_P私s + 1( ×私は)−ログ_P私s( ×私は)≥0
これは、EM アルゴリズムの収束をさらに証明します。
4.2 EM アルゴリズムが収束する場合、グローバル最大値に収束することが保証されますか?
上記の導出から、EM アルゴリズムが安定点への収束を保証できることはわかりますが、大域的最大点への収束は保証できないため、局所最適アルゴリズムです。もちろん、最適化目標 L ( θ , θ s ) L(\theta, \theta^s)L ( θ ,私s )が凸である場合、EM アルゴリズムは大域最大値への収束を保証できます。これは、勾配降下法などの反復アルゴリズムと同じです。
5. まとめ
EM アルゴリズムをアルゴリズム的思考の観点から考えると、次のことがわかります。
- アルゴリズムでわかっているのは観測データです。
- 不明なのは、基礎となるデータとモデルのパラメーターです。
- ステップ E では、モデル パラメーターの値を修正し、非表示データの分布を最適化します。
- ステップ M では、暗黙的なデータ分布を修正し、モデル パラメーターの値を最適化します。
他の機械学習アルゴリズムを比較すると、実際、多くのアルゴリズムが同様の考え方を持っています。例えば、SMO アルゴリズム (サポート ベクター マシンの原理 (4) SMO アルゴリズムの原理) と座標軸降下法 (ラッソ回帰アルゴリズム: 座標軸降下法と最小角度回帰法の概要) はいずれも同様の考え方を使用して問題を解決します。
参考
【1】http://www.cnblogs.com/pinard/p/6912636.html