EM

  • 期望最大化(Expectation-Maximum)算法,是隐式马尔科夫算法(HMM), LDA主题模型变分推断的基础算法。
  • 从样本观察数据中,找出样本的模型参数,最常用的方法就是极大化模型分布的对数似然函数。但有时得到的观察数据有未观察到的隐含数据,因而无法直接用极大化对数似然函数得到模型分布的参数。
  • 可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解模型参数(EM算法的M步)。
  • 由于之前的隐藏数据是猜测的,所以此时得到的模型参数一般还不是理想结果。所以基于当前得到的模型参数,继续猜测隐含数据(EM算法的E步),然后继续极大化对数似然,求解模型参数(EM算法的M步)。
  • 以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。

EM算法

(如不易懂可先看下方EM算法在混合高斯分布的实现GMM)

  1. 对于𝑚个样本观察数据 x = ( x ( 1 ) , x ( 2 ) , . . . x ( m ) ) x=(x^{(1)},x^{(2)},...x^{(m)}) x=(x(1),x(2),...x(m)),找出样本的模型参数𝜃, 极大化模型分布的对数似然函数 θ = a r g max ⁡ θ ∑ i = 1 m l o g P ( x ( i ) ; θ ) \theta = arg \max \limits_{\theta}\sum\limits_{i=1}^m logP(x^{(i)};\theta) θ=argθmaxi=1mlogP(x(i);θ)
  2. 如果得到的观察数据有未观察到的隐含数据 z = ( z ( 1 ) , z ( 2 ) , . . . z ( m ) ) z=(z^{(1)},z^{(2)},...z^{(m)}) z=(z(1),z(2),...z(m)),则极大化模型分布的对数似然函数 θ = a r g max ⁡ θ ∑ i = 1 m l o g P ( x ( i ) ; θ ) = a r g max ⁡ θ ∑ i = 1 m l o g ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) \theta = arg \max \limits_{\theta}\sum\limits_{i=1}^m logP(x^{(i)};\theta) = arg \max \limits_{\theta}\sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta) θ=argθmaxi=1mlogP(x(i);θ)=argθmaxi=1mlogz(i)P(x(i)z(i);θ)
  3. 上式无法直接求出𝜃,根据Jensen不等式: l o g ∑ j λ j y j ≥ ∑ j λ j l o g y j      , log\sum\limits_j\lambda_jy_j \geq \sum\limits_j\lambda_jlogy_j\;\;, logjλjyjjλjlogyj, λ j ≥ 0 , ∑ j λ j = 1 \lambda_j \geq 0, \sum\limits_j\lambda_j =1 λj0,jλj=1 y i = c 时 等 式 成 立 , c 为 常 数 y_i =c时等式成立,c为常数 yi=cc对其进行缩放 ∑ i = 1 m l o g ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) = ∑ i = 1 m l o g ∑ z ( i ) Q i ( z ( i ) ) P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta) = \sum\limits_{i=1}^m log\sum\limits_{z^{(i)}}Q_i(z^{(i)})\frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} i=1mlogz(i)P(x(i)z(i);θ)=i=1mlogz(i)Qi(z(i))Qi(z(i))P(x(i)z(i);θ) ≥ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) \geq \sum\limits_{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} i=1mz(i)Qi(z(i))logQi(z(i))P(x(i)z(i);θ)其中 ∑ z Q i ( z ( i ) ) = 1 \sum\limits_{z}Q_i(z^{(i)}) =1 zQi(z(i))=1
  4. 等式成立则 P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) = c , c = ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) \frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} =c,c=\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta) Qi(z(i))P(x(i),z(i);θ)=c,c=z(i)P(x(i)z(i);θ) Q i ( z ( i ) ) = P ( x ( i ) , z ( i ) ; θ ) ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) = P ( x ( i ) , z ( i ) ; θ ) P ( x ( i ) ; θ ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_i(z^{(i)}) = \frac{P(x^{(i)}, z^{(i)};\theta)}{\sum\limits_{z^{(i)}}P(x^{(i)}, z^{(i)};\theta)} = \frac{P(x^{(i)}, z^{(i)};\theta)}{P(x^{(i)};\theta)} = P( z^{(i)}|x^{(i)};\theta) Qi(z(i))=z(i)P(x(i)z(i);θ)P(x(i)z(i);θ)=P(x(i);θ)P(x(i)z(i);θ)=P(z(i)x(i);θ)
  5. 极大化下限: a r g max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) arg \max \limits_{\theta} \sum\limits_{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log\frac{P(x^{(i)}, z^{(i)};\theta)}{Q_i(z^{(i)})} argθmaxi=1mz(i)Qi(z(i))logQi(z(i))P(x(i)z(i);θ)去除常数项: a r g max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) arg \max \limits_{\theta} \sum\limits_{i=1}^m \sum\limits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)}, z^{(i)};\theta)} argθmaxi=1mz(i)Qi(z(i))logP(x(i),z(i);θ) l o g P ( x ( i ) , z ( i ) ; θ ) log{P(x^{(i)}, z^{(i)};\theta)} logP(x(i),z(i);θ)基于条件概率分布 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))的期望。

高斯混合模型(Gaussian Mixture Model,GMM)

  • GMM Gaussian Mixture Model是EM算法在混合高斯分布的实现
  • 假设有一批由K个高斯分布生成器生成的数据 X = { X 1 , X 2 , . . . , X n } X=\{X_1,X_2,...,X_n\} X={X1,X2,...,Xn},具体 X i X_i Xi对应哪个生成器是未知的,而且每个生成器在混合模型中所占的比例 π i π_i πi也是未知的,那么此时的分布就是高斯混合分布。
  • 正态分布: X ∼ N ( μ , σ 2 ) X\sim \mathcal{N}(\mu, \sigma^2) XN(μ,σ2)概率密度函数 p ( x ) = 1 2 π σ e − ( x − μ ) 2 2 σ 2 p(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}} p(x)=2π σ1e2σ2(xμ)2协方差 c o v ( X , Y ) = E { [ X − E ( X ) ] [ Y − E ( Y ) ] } = E ( X Y ) − E ( X ) E ( Y ) cov(X,Y)=E\{[X-E(X)][Y-E(Y)]\}=E(XY)-E(X)E(Y) cov(X,Y)=E{[XE(X)][YE(Y)]}=E(XY)E(X)E(Y)其中X,Y为两个随机变量
  • 多维高斯正态分布概率密度函数 N ( x ∣ μ , Σ ) = 1 2 π n ∣ Σ ∣ e x p ( − 1 2 ( x − μ ) T Σ − 1 ( x − μ ) ) \mathcal{N}(x\mid\mu,\Sigma)=\frac{1}{\sqrt{{2\pi}^n|\Sigma|}}exp\Big(-\frac{1}{2}(x-\mu)^T\Sigma^{-1}(x-\mu)\Big) N(xμ,Σ)=2πnΣ 1exp(21(xμ)TΣ1(xμ))其中Σ是协方差矩阵(对称半正定的矩阵), Σ − 1 Σ^{−1} Σ1是协方差矩阵的逆
  • 高斯混合模型(GMM)概率密度函数: p ( x ) = ∑ k = 1 K p ( k ) p ( x ∣ k ) = ∑ k = 1 K π k N ( x ∣ μ k , Σ k ) p(x)=\sum_{k=1}^Kp(k)p(x|k)=\sum_{k=1}^K\pi_k\mathcal{N}(x|\mu_k,\Sigma_k) p(x)=k=1Kp(k)p(xk)=k=1KπkN(xμk,Σk)其中 ∑ i = 1 K π i = 1 \sum_{i=1}^K\pi_i=1 i=1Kπi=1
  • 最大似然法使样本点在估计的概率密度函数上的概率值最大。为了防止在计算过程中产生溢出现象,将目标函数取对数进行计算: max ⁡ ∑ i = 1 N log ⁡ ( ∑ k = 1 K π k N ( x i ∣ μ k , σ k ) ) \max\sum_{i=1}^N\log\Big(\sum_{k=1}^K\pi_k\mathcal{N}(x_i|\mu_k,\sigma_k)\Big) maxi=1Nlog(k=1KπkN(xiμk,σk))

  • 初始化 π k π_k πk Σ k Σ_k Σk
  • 估计数据由每个组件生成的概率: γ ( i , k ) = π k N ( x i ∣ μ k , Σ k ) ∑ j = 1 K π j N ( x i ∣ μ j , Σ j ) \gamma(i,k)=\frac{\pi_k\mathcal{N}(x_i|\mu_k,\Sigma_k)}{\sum_{j=1}^K\pi_j\mathcal{N}(x_i|\mu_j,\Sigma_j)} γ(i,k)=j=1KπjN(xiμj,Σj)πkN(xiμk,Σk)
  • 迭代更新直至似然函数收敛 μ k = 1 N k ∑ i = 1 N γ ( i , k ) x i \mu_k=\frac{1}{N_k}\sum_{i=1}^N\gamma(i,k)x_i μk=Nk1i=1Nγ(i,k)xi Σ k = 1 N k ∑ i = 1 N γ ( i , k ) ( x i − μ k ) ( x i − μ k ) T \Sigma_k=\frac{1}{N_k}\sum_{i=1}^N\gamma(i,k)(x_i-\mu_k)(x_i-\mu_k)^T Σk=Nk1i=1Nγ(i,k)(xiμk)(xiμk)T N k = ∑ i = 1 N γ ( i , k ) N_k=\sum_{i=1}^N\gamma(i,k) Nk=i=1Nγ(i,k) π k = N k N π_k=\frac{N_k}{N} πk=NNk

算法流程

输入:观察数据 x = ( x ( 1 ) , x ( 2 ) , . . . x ( m ) ) x=(x^{(1)},x^{(2)},...x^{(m)}) x=(x(1),x(2),...x(m)),联合分布 𝑝(𝑥,𝑧;𝜃) , 条件分布 𝑝(𝑧|𝑥;𝜃) , 最大迭代次数𝐽。
输出:模型参数𝜃。

  1. 随机初始化模型参数𝜃的初值 θ 0 \theta_0 θ0
  2. 开始EM算法迭代J:
    • E步:计算联合分布的条件概率期望: Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) , θ j ) ) Q_i(z^{(i)}) = P( z^{(i)}|x^{(i)},\theta^{j})) Qi(z(i))=P(z(i)x(i)θj)) L ( θ , θ j ) = ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) l o g P ( x ( i ) , z ( i ) ; θ ) L(\theta, \theta^{j}) = \sum\limits_{i=1}^m\sum\limits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)}, z^{(i)};\theta)} L(θ,θj)=i=1mz(i)Qi(z(i))logP(x(i)z(i);θ)
    • M步:极大化 L ( θ , θ j ) L(\theta, \theta^{j}) L(θ,θj),得到 θ j + 1 \theta^{j+1} θj+1: θ j + 1 = a r g max ⁡ θ L ( θ , θ j ) \theta^{j+1} = arg \max \limits_{\theta}L(\theta, \theta^{j}) θj+1=argθmaxL(θ,θj)
    • 如果 θ j + 1 \theta^{j+1} θj+1已收敛,则算法结束。否则继续进行E步迭代。

相关思考

  • EM算法可以保证收敛到一个稳定点,但是却不能保证收敛到全局的极大值点,它是局部最优的算法。
  • 已知观察数据,未知隐含数据和模型参数。在E步,固定模型参数的值,优化隐含数据的分布,在M步,固定隐含数据分布,优化模型参数的值。
  • 如SMO算法,坐标轴下降法也使用了相同的思想。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值