混合ガウス分布の最尤推定を解く手法のひとつとしてEMアルゴリズムを導入する.
混合ガウス分布
K 個のクラスがあり,それぞれを zk と表記する.そしてその実現値を1-of-K符号化で z と表す(どれか一つだけが1,残りが0).各クラスの周辺分布は p(z)=πk であるとする.そしてクラスが既知である場合の条件付き確率は
p(x∣zk=1)=N(x∣μk,Σk)
であるとすると, x の周辺分布は
p(x)=k=1∑KπkN(x∣μk,Σk)
となる.逆に x が与えられた場合の z の条件付き確率は
γ(zk)=p(zk=1∣z)=∑j=1Kp(zj=1)p(x∣zj=1)p(zk=1)p(x∣zk=1)=∑j=1KπjN(x∣μj,Σj)πkN(x∣μk,Σk)
で与えられる.これは x がクラスkを説明する度合いであると言え,負荷率と呼ばれる.
最尤推定の特異性
GMMから得られた観測値の集合 {x1,…,xN} について X を各行が xiT である行列を X とする.すると尤度関数の対数は
lnp(X∣π,μ,Σ)=n=1∑Nln{k=1∑KπkN(xn∣μk,Σk)}
で与えられる.ここではシンプルに Σk=σk2I とし,訓練データのうちの一つ xn がある要素の平均 μj と等しかったとする.このとき指数関数部が1になるので上の式の ln の和の中に
N(xn∣xn,σj2I)=(2π)D/21σjD1
の項が現れる.補足
で見るように指数がかかった項は σ→0 で0に収束するが,この項は無限大に発散してしまう.よってこの対数尤度関数は無限大に発散し,尤度関数も発散する.
補足
1次元のガウス分布に従う x∼N(μ,σ2) から得られたデータ [x1,…,xN] のうち xi が μ に一致しているとする.これに対して尤度関数を求めると
2πσ1n=i∏N2πσ1e−2σ2(xn−μ)2
となる.ここで σ→0 とすると指数部の収束が 1/σ の発散より強いため0に収束する.
GMMのEMアルゴリズム
対数尤度を μk について微分することで以下を得る.
γnkNk=∑jπkN(xn∣μj,Σj)πkN(xn∣μk,Σk)=n=1∑Nγnk
さらにこの値を使って
μkΣkπk=Nk1n=1∑Nγnkxn=Nk1n=1∑Nγnk(xn−μk)(xn−μk)T=NNk
を得る.このように得られた値で (μk,Σk,πk) を更新する処理を繰り返す.
EMアルゴリズムの一般形
観測値 X={x1,…,xN} が潜在変数(例えばどのGMMにおいてどのクラスに属するか,など)を含む確率分布 p(X,Z∣θ) に従うとする.これは人間が決めるものである.そして p(X∣θ) を最大化するような θ を求める(ここで X は観測値なので定数,よって θ の関数になる).
EMアルゴリズムでは潜在変数の事後分布 p(Z∣X,θ) を用いる.これも以下のようにして
p(Z∣X,θ)=∫p(X,Z∣θ)dZp(X,Z∣θ)
前提で仮定した同時分布 p(X,Z∣θ) のみから求められる.初期推定値 θ0 を用いて以下の処理を繰り返す.
- p(Z∣X,θi) を計算する
- Q(θ) を ∫p(Z∣X,θ)lnp(X,Z∣θi)dZ とする
- この最大値を与える θ を θi+1 とする
GMMのEMアルゴリズム
では負荷率 γnk を求めた部分が(1)の事後分布を求める部分に相当する.この枠組みに当てはめると p(Z∣xn,θold) は
p(Z∣xn,θ)=k=1∏K(∑jπjN(xn∣μj,Σj)πkN(xn∣μk,Σk))znk
で与えられる.同様に p(xn,Z∣θ) は
p(xn,Z)=k=1∏KπkznkN(xn∣μk,Σk)znk
で与えられるから対数は
lnp(xn,Z)=k=1∑Kznklnπk+znklnN(xn∣μ,Σk)
となる.ここで Z は1-of-K符号化により {(1,0,…,0),(0,1,0,…,0),…,(0,0,…,1)} を動くとして
∫p(Z∣xn,θold)lnp(xn,Z∣θ)dZ=k=1∑Kγnk{lnπk+lnN(xn∣μk,Σk)}
となる.これを xn につき和をとったのが(2)の Q(θ) に相当する. (μk,Σk,πk) について微分した連立方程式を0にする値を求めるとGMMのEMアルゴリズム
で求めた式が得られる.
そもそも潜在変数とは
個人的には説明変数として用いている x 以外の切り捨てられた変数全てのことなのかなと思った.実際説明変数を列挙しようとすれば,いくらでもきりがなく出てくると思われる.あるいはハイパーパラメータと言ってもよいかもしれない.
例
ベイズ線形回帰
TODO
RVM
TODO
EMアルゴリズムが対数尤度を極大化する理由
一般的な議論を行う.以下の尤度関数
p(X∣θ)=Z∑p(X,Z∣θ)
を θ について最大化したい.
lnp(X∣θ)=L(q,θ)+KL(q∣p)
ここで KL(q∣p) はKLダイバージェンスと呼ばれるが常に0以上の値をとる.以下の図は対数尤度を分解した図である.
Eステップでは q(Z) について L(q,θ) を最大化する.すると下の図のように KL(q∣p) が0になる.
次のMステップでは L(q,θ) を θ について最大化する.このとき KL(q∣p) は必ず0以上であるから,図のように ln(X∣θ) も点線から増加する.