作者:CHEONG
公众号:AI机器学习与知识图谱
研究方向:自然语言处理与知识图谱
阅读本文之前,首先注意以下两点:
1、机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看。
2、文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号【AI机器学习与知识图谱】后回复:GMM第二讲,可添加微信号【17865190919】进学习交流群,加好友时备注来自CSDN。原创不易,转载请告知并注明出处!
本文主要介绍高斯混合模型的Learning问题,探讨是使用最大似然估计还是EM算法,以及完整的求解思路。
一、问题定义
看如下表格中展现了某个高斯混合模型由 c 1 , c 2 , . . . , c k c_1,c_2,...,c_k c1,c2,...,ck个高斯分布组成,其中隐变量 z z z的含义是某个样本属于第i个高斯分布的概率是 p i p_i pi:
C/高斯分布 | c 1 c_1 c1 | c 2 c_2 c2 | … | c k c_k ck |
---|---|---|---|---|
z | 1 | 2 | … | k |
P(z) | p 1 p_1 p1 | p 2 p_2 p2 | … | p k p_k pk |
根据上述表格先给出高斯混合模型的概率密度函数 p ( x ) p(x) p(x),公式如下:
结合表格数据, p ( z = c k ) p(z=c_k) p(z=ck)是概率值 p k p_k pk,而当 z = c k z=c_k z=ck时 X X X概率符合高斯分布,所以高斯混合模型的概率密度函数表示为:
因此本文求解的问题是:高斯混合模型的Learning问题,即对高斯混合模型进行参数学习。现有观测数据Observed Data X = ( x 1 , x 2 , . . . , x k ) X=(x_1,x_2,...,x_k) X=(x1,x2,...,xk),隐变量 Z Z Z,完整数据Complete Data为 ( X , Z ) (X,Z) (X,Z),结合上述的概率密度函数需要学习的参数即为:
本文接下来将探讨如何对上述参数
Θ
\Theta
Θ进行求解。
二、本文结论
结论1: 高斯混合模型Learning问题使用最大似然估计MLE,无法求出解析解,需要使用EM算法去求解高斯混合模型Learning问题的近似解。
结论2: EM算法求解过程分为E-Step和M-Step,求解过程公式推导较复杂,但需要抓住E-Step和M-Step主要目的是什么,而不能先陷入大量公式中。EM算法思想简单来说:先通过E-Step求解模型期望 Q ( Θ , Θ ( t ) ) Q(\Theta,\Theta^{(t)}) Q(Θ,Θ(t)),再通过M-Step最大化期望,当迭代收敛时求出最优的参数值 Θ \Theta Θ。
三、最大似然估计为何无法求解GMM
下面首先给出若使用最大似然估计求解高斯混合模型Learning问题的推导过程:
根据上式得出结论:最后一个推导公式中log后面存在一个求和符号,对于log中存在求和符号无法继续往下求解,所以高斯混合模型无法使用MLE求出解析解,但对于单一高斯分布是可以用MLE进行求解的。
四、EM算法求解GMM
重点: 再次强调,虽然下面的公式推导很复杂,但最主要是弄清楚E-Step和M-Step主要是在做什么事情,理清楚思路比陷入到公式推导中要重要得多。
接下来讲解使用EM算法求解高斯混合模型,先给出EM算法的求解时迭代公式:
EM算法思想:先通过E-Step求解模型期望 Q ( Θ , Θ ( t ) ) Q(\Theta,\Theta^{(t)}) Q(Θ,Θ(t)),再通过M-Step最大化期望,当迭代收敛时求出最优的参数值 Θ \Theta Θ。
在讲解EM算法求解高斯混合模型之前,先给出高斯混合模型的边缘概率密度函数 p ( x ) p(x) p(x),联合概率函数 p ( x , z ) p(x,z) p(x,z)以及条件概率密度函数 p ( z ∣ x ) p(z|x) p(z∣x)。
EM算法:E-Step求解过程
接下来讲解EM算法求解高斯混合模型的E-Step,求期望 Q ( Θ , Θ ( t ) ) Q(\Theta,\Theta^{(t)}) Q(Θ,Θ(t)),求解过程相对比较复杂,先直接给出期望的求解结果,不想看推导过程的可以直接跳过。经过E-Step求出的期望为:
将高斯混合模型条件概率密度函数 p ( z ∣ x ) p(z|x) p(z∣x)和联合概率密度函数 p ( x , z ) p(x,z) p(x,z)代入上式得:
下面给出该E-Step结论的推导过程,较复杂不需要了解的可以直接跳过。
可以看出上式很复杂,现在需要对上式进行简化,我们先拆除上式加和中的一项进行简化:
上式简化过程如下图展示所示:
经过简化后继续推导如下:
至此我们通过E-Step求解出高斯混合模型的期望 Q ( Θ , Θ ( t ) ) Q(\Theta,\Theta^{(t)}) Q(Θ,Θ(t))
EM算法:M-Step求解过程
在E-Step我们已经求出了期望 Q ( Θ , Θ ( t ) ) Q(\Theta,\Theta^{(t)}) Q(Θ,Θ(t))
将其中的 Z i Z_i Zi替换成 k = 1 , 2 , . . . , K k=1,2,...,K k=1,2,...,K表示,并且条件概率不展开表示为如下形式:
上面就是经过E-Step得疯狂推导得出的结论,接下来M-Step就是通过最大化期望 Q ( Θ , Θ ( t ) ) Q(\Theta,\Theta^{(t)}) Q(Θ,Θ(t))来求解参数值:
这里以求解参数 p 1 , p 2 , . . . , p k p_1,p_2,...,p_k p1,p2,...,pk来简单讲解求解过程,使用的是拉格朗日乘子法
对于上述有约束项的最值求解,使用拉格朗日乘子法有:
我们将k从 1 , 2 , . . . , K 1,2,...,K 1,2,...,K进行赋值之后有:
其中有:
所以可得:
至此结合以下两个式子:
最终求出:
而另外两个参数求解方式和 p ( t + 1 ) p^{(t+1)} p(t+1)相同。