Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm

网易公开课,第12,13课
notes,7a, 7b,8

从这章开始,介绍无监督的算法
对于无监督,当然首先想到k means, 最典型也最简单,有需要直接看7a的讲义

 

Mixtures of Gaussians

如果要理解Mixtures of Gaussians,那先回去复习一下Gaussians Discriminant Analysis,高斯判别分析

首先高斯判别分析是生成算法,

所以不会直接拟合p(y|x), 而是拟合p(x|y)p(y), 即p(x,y)

p(y)符合伯努力分布,如果是多元分类,即多项式分布
p(x|y)符合多项高斯分布

然后用最大似然法,学习出


这个问题就解了

 

那么对于混合高斯,区别只是,对于一系列数据点,y是未知的,即非监督
下面看看形式化的定义,

既然y是未知,所以换个名字,z,隐随机变量(latent random variables, meaning that they’re hidden/unobserved.)


z符合多项式分布,参数φj表示z=j的概率,所以φ一定>=0, 并且所有φ的和为1

x|z,符合多项高斯分布

和高斯判别分析其实,只是把y替换成z,表示z是未知,不可见的
并且 也是每个多项高斯分布都不同的,这点和高斯判别也有些不一样

那么它的最大似然估计为,

最大似然时,之所以只考虑x,没有像高斯判别那样考虑p(x, y),是因为y不可见
但是怎么理解?
可以想象一维数据,有很多数据点,分别代表多个高斯分布混合着一起
而高斯分布一定是中间的点比较密集,这里的p(x)会比较高
假设我们的数据点是有代表性的,所以拟合出p(x)高的高斯分布,会更合理一些

对于这个如何求解?
直接用梯度下降很难求解,因为在log里面求和。。。求导试试看

当然这里如果z已知,那么就很简单,直接变成高斯判别分析问题,但是问题现在z未知。

解决这个问题的方法,就是EM算法,Expectation Maximization Algorithm

这个算法其实思路很简单,但是如何推导和证明他的收敛和有效,比较复杂

所以先看看思路和实现,再来看推导

思路很简单,既然不知道z,并且如果知道就可以解这个问题,那么我们就先随便猜z,然后再迭代

具体如下,

E步骤,我们任意初始化参数 ,就可以算出每个xi对应的zi,其实只要算出上面的这个概念分布就可以

具体算的公式如下,

,其中分别符合多项式和多项高斯分布,代入公式很容易算出

M步骤

用上面猜的z来重新计算参数,这里看到为何只要算出w就ok,因为就已经足够算出新的参数

至于为何是这个公式,因为从上面高斯判别分析,可以得到,

只是简单的把部分替换成w

通过不停的E,M步骤的迭代,最终一定可以收敛到局部最优,和k-means一样,可以多试些初始值,来找到全局最优

但是为何这么简单的方法会有效,如何理解EM?继续

 

The EM algorithm

上面看到使用EM来拟合混合高斯问题,但这只是EM的一个特例

这章会推导出EM的一般形式,他可以解决各种含有隐变量的预估问题(estimation problems with latent variables.)

 

Jensen‘s inequality

先介绍一下Jensen不等式

首先通过下面的图理解一下,当f是凸函数的时候
E[f(x)] >= f(E[x])

对于凸函数,如果x是随机变量,分布均匀,那么x的均值一定比较接近谷底,所以这个不等式一定成立的

当f是严格凸函数的时候,即 时,普通凸函数,二阶导数可能为0,比如某一段为直线
如果要E[f(x)] = f(E[x]),当且仅当 x = E[x], 即x是个常量

需要注意,这个不等式对于concave,凹函数也是满足的,但不等式的方向相反

 

EM algorithm

下面来看看EM算法,

对于m个独立的训练数据点,似然函数如下,
这里是通用形式,所以参数就是 ,这里没有假设z和x|z的分布,可以是任意分布


这个直接解是很困难的,所以用EM算法解

解的思路,

E-step, construct a lower-bound on
先随便初始化参数,构建这个分布的下界,即最差的case
然后通过下界的分布,得到z

M-step, optimize that lower-bound
用E-step得到的z来最优化参数

如下图,在迭代过程中,下界的分布会不断的逼近真实分布

 

首先,假设Q为z的某种分布,Q(zi)为zi出现的概率,那么有 ,并且Q(zi)>=0

然后为了使用Jensen不等式,对(1)分子分母同时乘上Q(zi),这样就产生了期望E

先看下期望的定义,

参考,(EM算法)The EM Algorithm

 

那么对应于上面的公式,其中

,为g(z)

,为p

所以,

就是,

再来看Jensen不等式,E[f(x)] >= f(E[x]),其中f就是log,所以得到上面(3)

所以这样就产生了的下界,

我们需要在M-step中去最优化这个下界,但问题是现在Q分布还没有确定,如何确定哪种Q分布会最好

我们虽然给出在参数时的下界,但是我们希望这个下界是可以尽量逼近的,所以希望(3)中最好可以取到等式,这样下界就等于

这时候再看Jensen不等式中,对于=取值的条件,即,

由于,所以让分子和分母对所有的z求和,应该还是等于c,比如2+4 /1+2,仍然为2,得到

所以得到Q的分布,就是z的后验概率

所以,最终得到的general EM算法为,

可以对比一下,之前混合高斯的EM,体会一下特例和通用的差别

那么这个算法是收敛的吗?即证明下面的式子,第t+1次迭代的>=第t次迭代

过程如下,

(4)给出 的下界

(5)因为在M-step,要在固定Q情况下,最优化,所以优化完,一定比原来的要大

(6)因为在取下界的时候,选择Q使得

所以得证

EM和k-means都是一定会收敛到局部最优的

从另外一个角度来看EM,其实是一种坐标上升算法,

在E-Step,我们固定 来,求解最优的Q

在M-Step,我们固定Q来,求解最优的

 

Mixture of Gaussians revisited

看完通用的EM算法,再会过头来看看混合高斯算法,应该会更清晰一些

对于E-step很简单,

通用的EM,表示为

而对于混合高斯算法,为 ,这个很自然,不需要解释

然后对于M-step,需要最大化下面的式子以求出

后面的求解过程就是分别对,,求导然后求解,就可以得到上面的已经列出的公式,具体过程可以参考讲义,这里就不列了

 

文本聚类- Mixtures of Naive Bayes Model

这个没有讲义,只能截图

对于naive bayes是文本分类,而因为这里的训练集是不知道y的,所以就是文本聚类问题
得到m个文本,每个文本是n维向量,其中每维取{0,1}代表该word是否在文本中出现

而隐变量z,也是取值{0,1},表示分两类,那么z就符合伯努力分布

p(x|z),符合naive bayes分布

这里给出,E-step和M-step的公式

当然其中M-step是通过最大化P(x|z),求解出来的

Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm

时间: 2024-08-22 03:58:03

Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm的相关文章

Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control

网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比如下棋或直升机自动驾驶 无法确切知道,下一步怎么样是正确的,因为这是一个连续和序列化的决策,比如直到最终直升机crash或下棋输了,你才知道之前的选择是不好的,但中间那么多步决策,到底是哪部分出了问题,可见这是个比较复杂的问题 强化学习,基本思路就是,既然不知道怎样是正确的,那就随便try,然后根据

Andrew Ng机器学习公开课笔记–Independent Components Analysis

网易公开课,第15课 notes,11 参考, PCA本质是旋转找到新的基(basis),即坐标轴,并且新的基的维数大大降低 ICA也是找到新的基,但是目的是完全不一样的,而且ICA是不会降维的 对于ICA,最经典的问题,"鸡尾酒会"问题 在鸡尾酒会,上很多人同时在说话,还有背景音乐,如果我们放若干个话筒进行声音采集 是否可以从采集到的数据中,分离出每个人独立的声音 假设有n个不同的人,m个时间采集点,一般会用和人数一样多的话筒,也是n个 is an n-dimensional vec

Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)

网易公开课,第14课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Components Analysis (PCA), 比Factor Analysis更为直接,计算也简单些 主成分分析基于, 在现实中,对于高维的数据,其中有很多维都是扰动噪音,或有些维是冗余的,对描述数据特征没有作用 比如我们在描述汽车速度的时候,用不同的单位mph or kph作为两维,其实只需要其中一维即可

Andrew Ng机器学习公开课笔记 -- 学习理论

网易公开课,第9课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法 Bias/variance tradeoff 还是用这组图,学习算法追求的是generalization error(对未知数据的预测误差),而不是training error(只是对训练集) 最左边,underfit,我们说这种学习算法有较大的bias Informally, we define the bias of

线性回归、梯度下降 - Andrew Ng机器学习公开课笔记1.1

实例 首先举个样例.如果我们有一个二手房交易记录的数据集.已知房屋面积.卧室数量和房屋的交易价格,例如以下表: 假如有一个房子要卖,我们希望通过上表中的数据估算这个房子的价格. 这个问题就是典型的回归问题,这边文章主要讲回归中的线性回归问题. 线性回归(Linear Regression) 首先要明确什么是回归. 回归的目的是通过几个已知数据来预測还有一个数值型数据的目标值. 如果特征和结果满足线性关系,即满足一个计算公式h(x).这个公式的自变量就是已知的数据x,函数值h(x)就是要预測的目标

广义线性模型 - Andrew Ng机器学习公开课笔记1.6

转载请注明出处:http://www.cnblogs.com/BYRans/ 前面的文章已经介绍了一个回归和一个分类的例子.在逻辑回归模型中我们假设: 在分类问题中我们假设: 他们都是广义线性模型中的一个例子,在理解广义线性模型之前需要先理解指数分布族. 指数分布族(The Exponential Family) 如果一个分布可以用如下公式表达,那么这个分布就属于指数分布族: 公式中y是随机变量:h(x)称为基础度量值(base measure): η称为分布的自然参数(natural para

损失函数 - Andrew Ng机器学习公开课笔记1.2

线性回归中提到最小二乘损失函数及其相关知识.对于这一部分知识不清楚的同学可以参考上一篇文章<线性回归.梯度下降>.本篇文章主要讲解使用最小二乘法法构建损失函数和最小化损失函数的方法. 最小二乘法构建损失函数 最小二乘法也一种优化方法,用于求得目标函数的最优值.简单的说就是:让我们的预测值与真实值总的拟合误差(即总残差)达到最小. 在线性回归中使用最小二乘法构建了损失函数: 上一篇文章<线性回归.梯度下降>中提到求解使损失函数J(θ)取最小的θ值有两种方法:梯度下降(gradient

局部加权回归、欠拟合、过拟合 - Andrew Ng机器学习公开课笔记1.3

本文主要讲解局部加权(线性)回归.在讲解局部加权线性回归之前,先讲解两个概念:欠拟合.过拟合,由此引出局部加权线性回归算法. 欠拟合.过拟合 如下图中三个拟合模型.第一个是一个线性模型,对训练数据拟合不够好,损失函数取值较大.如图中第二个模型,如果我们在线性模型上加一个新特征项,拟合结果就会好一些.图中第三个是一个包含5阶多项式的模型,对训练数据几乎完美拟合. 模型一没有很好的拟合训练数据,在训练数据以及在测试数据上都存在较大误差,这种情况称之为欠拟合(underfitting). 模型三对训练

牛顿方法 - Andrew Ng机器学习公开课笔记1.5

牛顿方法(Newton's method) 逻辑回归中利用Sigmoid函数g(z)和梯度上升来最大化?(θ).现在我们讨论另一个最大化?(θ)的算法----牛顿方法. 牛顿方法是使用迭代的方法寻找使f(θ)=0的θ值,在这里θ是一个真实的值,不是一个参数,只不过θ的真正取值不确定.牛顿方法数学表达式为: 牛顿方法简单的理解方式为:先随机选一个点,然后求出f在该点的切线,即f在该点的导数.该切线等于0的点,即该切线与x轴相交的点为下一次迭代的值.直至逼近f等于0的点.过程如下图: 牛顿方法最大化