课程视频地址:http://open.163.com/special/opencourse/machinelearning.html
课程主页:http://cs229.stanford.edu/
更具体的资料链接:https://www.jianshu.com/p/0a6ef31ff77a
笔记参考自中文翻译版:https://github.com/Kivy-CN/Stanford-CS-229-CN
这一讲介绍EM算法和因子分析,回顾了高斯混合模型。
回顾EM算法
重复直到收敛
(E步骤)对每个$i$,令
(M步骤)令
我们怎么知道这个算法是否收敛呢?假设$theta^{(t)}$和$theta^{(t+1)}$是两次成功迭代得到的参数。我们将证明$l(theta^{(t)})le l(theta^{(t+1)})$,这说明EM算法总是让对数似然函数单调递增。证明这点的关键在于我们对$Q_i$的选择。特别地,当EM算法的参数为$theta^{(t)}$时,我们将选择$Q_i^{(t)}(z^{(i)}) := p(z^{(i)}|x^{(i)};theta^{(t)})$。我们之前看到这个选择保证了Jenson不等式的等号成立,因此
参数$l(theta^{(t+1)})$是由最大化该等式的右边得到的,因此
第一个不等号成立是因为如下不等式对任意$Q_i$和$theta$都成立
特别地,上式对$Q_i=Q_i^{(t)},theta = theta^{(t+1)}$成立。第二个不等号成立是因为我们选择$theta^{(t+1)}$为
因此这个式子在$theta^{(t+1)}$的取值必然大于等于在$theta^{(t)}$的取值。最后一个等号成立是在选择$Q_i^{(t)}$时我们就是要保证不等号取等号。
因此,EM算法导致对数似然函数单调收敛。在我们对EM算法的描述中,我们说我们将运行直至收敛。根据我们刚刚展示的结果,一个合理的收敛测试为检测在成功迭代一轮后,$l(theta)$的增量是否小于阈值,如果EM算法增加$l(theta)$的速度很慢,那么就宣称算法收敛。
注记
如果我们定义
那么从之前的推导中,我们知道$l(theta)ge J(Q,theta)$。EM算法也可以视为$J$的坐标上升过程,其中E步骤关于Q最大化$J$(因为E步骤选择$Q$使得$l(theta)= J(Q,theta)$),$M$步骤关于$theta$最大化$J$
3.回顾高斯混合模型
有了对EM算法的一般定义,让我们回顾拟合高斯混合模型参数$phi,mu,Sigma$的例子。
E步骤很简单,按照之前推导的算法,我们可以简单计算得到
这里,$ Q_i(z^{(i)}=j)$表示在$Q_i$分布下,$z^{(i)}$取$j$的概率。
接着,在M步骤中,我们需要关于参数$phi,mu,Sigma$最大化下式
让我们关于$mu_l$最大化上式。关于$mu_l$求梯度可得
令上式为$0$,解出$mu_l$可以得到更新规则
这部分我们在之前的讲义中已经见过。
让我们再看一个例子,推导出M步骤更新$phi_j$的规则。将关于参数$phi_j$的部分整合起来,我们需要最大化
但是,这里有一个额外的限制:$phi_j$的和为$1$,因为它表示概率$phi_j=p(z^{(i)}=j;phi)$。为了处理$sum_{j=1}^k phi_j =1$,我们构造拉格朗日函数(注意,这里实际上还有限制$phi_j ge0$,但随后我们会发现解满足这个条件)
其中$beta$是拉格朗日乘子。求导可得
令导数为$0$解得
即$phi_j propto sum_{i=1}^m w_j^{(i)}$。利用约束条件$sum_{j=1}^k phi_j =1$,我们可以轻松发现
(这里利用到$w_j^{(i)}=Q_i(z^{(i)}=j)$,然后概率的和为$1$,$ sum_{j=1}^k w_j^{(i)}=1$)。因此我们得到M步骤更新$phi_j$的规则
最后补充$Sigma_j$的更新规则,将关于参数$Sigma_j$的部分整合起来
注意到如果求出$Sigma_j^{-1}$的更新规则,那么就可以得到$Sigma_j$的更新规则,所以关于$Sigma_j^{-1}$求梯度可得
令导数为$0$可得
这里用到了如下规则:
Part X 因子分析
当我们的数据$x^{(i)}in mathbb R^n$来自几个高斯混合模型时,EM算法可以用来拟合混合模型。在这种情形下,我们常常假设有足够多的数据来发现数据中的多元高斯分布结构。这种情形常常发生在训练集样本的数量$m$远远大于数据维度$n$。
现在,考虑$ngg m$的情形。在这样一个问题中,用一个高斯分布来给数据建模甚至都很困难,更别提高斯混合模型了。特别地,$m$个数据点只张成了$mathbb R^n$的一个低维子空间,如果我们将用高斯分布给数据建模,然后利用极大似估计来估计均值和协方差,可以得到
我们会发现矩阵$Sigma$奇异(不可逆)。这意味着$Sigma^{-1}$不存在,并且$1/ |Sigma|^{1/2}= 1/ 0$。但是这两项在计算多元高斯分布时都需要用到。另一种陈述问题的困难性的方法如下,对参数的极大似然估计产生的高斯分布,其概率分布分布在数据张成的仿射空间中,这对应着一个奇异的协方差矩阵。
更一般的,除非$m$超过$n$一定数量,否则均值和协方差的极大似然估计可能很差。然而,我们仍然能用一个合理的高斯模型对数据进行拟合,并且也许能够识别出数据中有趣的协方差结构。我们是如何做到的?
在后面一部分中,我们会从复习两个对于$Sigma$可能的限制开始,这些限制允许我们用少量的数据来拟合$Sigma$,但是他们都无法对问题给出满意的解答。接着我们将讨论高斯分布的性质;例如高斯分布的边际分布以及条件分布。最后,我们将展示因子分析模型以及EM算法对其参数的估计。
1.$Sigma$的限制
如果我们没有充足的数据来拟合完整的协方差矩阵,我们可以对我们考虑的矩阵空间$Sigma$添加一些约束。例如,我们可以选择拟合一个对角协方差矩阵$Sigma$。在这种情形下,可以很简单核实协方差矩阵的对角元的最大似然估计满足
因为,$Sigma_{jj}$就是对数据第$j$个分量方差的经验估计。
有时我们会对协方差矩阵添加更多约束,不仅认为它是对角阵,还认为对角元相同,此时最大似然估计为
其中$x_1in mathbb R^r, x_2 in mathbb R^s$,因此$xin mathbb R^{r+s}$。假设$xsim mathcal N(mu, Sigma)$,其中
其中,$mu_1in mathbb R^r$,$mu_2in mathbb R^s$,$Sigma_{11}=mathbb R^{rtimes r}$,$Sigma_{12}in mathbb R^{rtimes s}$,以此类推。注意到因为协方差矩阵对称,所以$Sigma_{12}=Sigma_{21}^T$。
在我们的假设下,$x_1$和$x_2$的联合分布为多元高斯分布。那么$x_1$的边际分布是什么?此外,给定$x_2$,$x_1$的条件分布是什么?实际上,有如下结论:
下面证明上述结论。
令
那么
从而
其中
因此可以看出$y_1, y_2$独立,且
由对称性类似可得
备注:这里求$x_2$的边际分布而不是$x_1$的边际分布是为了方便求出条件分布。
接下来考虑$ x_1 |x_2$的分布,
这里要利用到$B$为正交矩阵,且
首先计算分子
接着计算分母,之前已经计算过了
因此
注意到
从而
3.因子分析模型
在因子分析模型中,我们按如下方式在$(x,z)$上建立联合分布,其中$zin mathbb R^k$是一个隐变量:
这里,模型的参数是向量$muin mathbb R^n$,矩阵$Lambda in mathbb R^{ntimes k}$,以及对角阵$Psi in mathbb R^{ntimes n}$。$k$的值通常选择为比$n$小。
因此,我们想象每个数据点$x^{(i)}$是如下生成的:首先对$k$维高斯分布$z^{(i)}$取样。然后,通过计算$mu+Lambda z^{(i)}$将$z^{(i)}$映射到$mathbb R^n$的$k$维的仿射子空间。最后,$x^{(i)}$通过对$mu+Lambda z^{(i)}$添加协方差噪音$Psi$生成。
或者等价地,我们可以按如下方式定义因子分析模型
其中$epsilon ,z$独立。
让我们看看该模型的准确分布。随机变量$z$和$x$有一个联合高斯分布
我们现在将计算出$mu_{zx}$和$Sigma$
由$z sim mathcal N(0,I)$我们知道$mathbb E[z]=0$。所以,我们有
将上述结果合并,我们有
接下来,为了得到$Sigma$,我们需要计算$Sigma_{zz}=mathbb E[(z-mathbb E[z])(z-mathbb E[z])^T]$($Sigma$的左上分块),$Sigma_{zx}=mathbb E[(z-mathbb E[z])(x-mathbb E[x])^T]$($Sigma$的右上分块),以及$Sigma_{xx}=mathbb E[(x-mathbb E[x])(x-mathbb E[x])^T]$($Sigma$的右下分块)。
因为$z sim mathcal N(0,I)$,我们可以轻松得到$Sigma_{zz}=text{Cov}(z)=I$。并且,我们有
最后一步中,我们利用到$mathbb E[zz^T]=text{Cov}(z)$的事实(因为$z$的均值为$0$),以及$ mathbb E[zepsilon^T]= mathbb E[z]mathbb E[epsilon^T]=0$(因为$z$和$epsilon$独立,所以乘积的期望等于期望的乘积)。类似的,我们可以按如下方式计算出$Sigma_{xx}$
将所有内容整合起来,我们得到
我们还能发现$x$的边际分布为$xsim mathcal N(mu,LambdaLambda^T+Psi)$。因此,给定训练集${x^{(i)};i=1,…,m}$,参数的对数似然函数如下:
为了进行最大似然估计,我们想关于参数最大化上式。但是精确地对上式最大化很困难,并且我们知道没有算法能以解析形式求出参数。所以,取而代之,我们将使用EM算法。在下一部分,我们将推导因子分析的EM算法。