Expectation–maximization Algorithm
##Introduction
EM(Expectation-Maximization)与Gradient Boosting类似,其实是一种算法框架。当算法模型中存在隐藏变量,并且无法把隐藏变量积分掉(i.e., 不能转化成closed-form)时,EM采取迂回策略求解。
##A Simply Comprehensible Inference
似然函数p(x;θ)化作包含隐藏变量的形式∑zp(x,z;θ)后,可以做如下分解。其中,θ是模型参数,q(z)是隐藏变量z的分布函数。
lnp(x;θ)=L(q;θ)+KL(q∥p)右式的两部分分别定义如下。
L(q;θ)=∑zq(z)ln{p(x,z;θ)q(z)}由于KL(q∥p)≥0,因此 L(q;θ)是对数似然lnp(x;θ)的下界。为了抬高下界,可以令KL(q∥p)=0,即用z在数据集x和模型参数θ(i)(表示第i次迭代中θ的估计值,θ(0)是初始参数值)已知情况下的后验概率来估计q(z)。这就是E-step,后验概率通常可以用贝叶斯公式展开求解。E-step:
q(z)=p(z|x;θ(i))在抬高下界的约束下,我们再去最大化L(q;θ)(此时只有θ是变量)。这就是M-step,即估计新的θ(i+1)来最大化对数似然lnp(x;θ)(此时lnp(x;θ)=L(q;θ))的期望。M-step:
θ(i+1)=argmaxθ L(L)(q;θ)循环迭代,通过不断推高对数似然的下界,来最大化它。
##A More General Inference
事实上,E-step(expectation)是指计算对数似然的期望表达式,M-step(maximization)是指估计新的参数θ来最大化对数似然的期望表达式值。因此,E-step可以直接表示成用后验概率来估计q(z)时,对数似然的期望形式(期望就是乘上分布函数求积分)。E-step:
Q(θ|θ(i))=Ez∼p(z|x;θ(i))[lnp(x,z;θ)]=∑zp(z|x;θ(i))lnp(x,z;θ)=L(q;θ)−H(p(z|x;θ(i)))观察发现,这个期望表达式就是(L)(q;θ)的分子部分,而负熵则是分母部分。由于熵与参数变量θ无关,在M-step中对参数求梯度时它是常数,梯度为0;所以与上一节中的描述形式其实是一致的。
M-step就是最大化上面的期望表达式值,采用拉格朗日乘数法估计θ(有时还会包含一些约束条件)。对θ中的某具体参数求梯度时,其他参数即为常数,表达式会大大简化。M-step:
θ(i+1)=argmaxθ Q(θ|θ(i))注意,极大似然估计时,基于样本独立同分布的假设,要将每个样本的对数似然相加。
θ(i+1)=argmaxθ∑t∑zp(z(t)|x;θ(i))lnp(x(t),z(t);θ)