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
先看下期望的定义,
那么对应于上面的公式,其中
,为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),求解出来的
其实想想,EM和K-mean的基本思路是差不多的
首先对于数据集,选定特征后,是可分的,即如果把数据画出来,是可以看到明显聚集的
所以随意设定初值后,不断迭代,比如混合高斯,总是可以渐渐收敛到局部最优的,不同于k-mean的是
EM可以给出具体的密度函数p(z|x)
对于隐变量z,其实K-mean,如果设k=2,即两类,相当于产生z取值{0,1}
Andrew Ng机器学习公开课笔记 -- Mixtures of Gaussians and the EM algorithm的更多相关文章
- Andrew Ng机器学习公开课笔记 -- 支持向量机
网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考 先继 ...
- Andrew Ng机器学习公开课笔记–Principal Components Analysis (PCA)
网易公开课,第14, 15课 notes,10 之前谈到的factor analysis,用EM算法找到潜在的因子变量,以达到降维的目的 这里介绍的是另外一种降维的方法,Principal Compo ...
- Andrew Ng机器学习公开课笔记 -- 学习理论
网易公开课,第9,10课 notes,http://cs229.stanford.edu/notes/cs229-notes4.pdf 这章要讨论的问题是,如何去评价和选择学习算法 Bias/va ...
- Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf Model Selection 首先需要解决的问题是,模型 ...
- Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control
网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比 ...
- Andrew Ng机器学习公开课笔记 – Factor Analysis
网易公开课,第13,14课 notes,9 本质上因子分析是一种降维算法 参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析 把大量的原始变量, ...
- Andrew Ng机器学习公开课笔记–Independent Components Analysis
网易公开课,第15课 notes,11 参考, PCA本质是旋转找到新的基(basis),即坐标轴,并且新的基的维数大大降低 ICA也是找到新的基,但是目的是完全不一样的,而且ICA是不会降维的 对于 ...
- Andrew Ng机器学习公开课笔记 -- Online Learning
网易公开课,第11课 notes,http://cs229.stanford.edu/notes/cs229-notes6.pdf 和之前看到的batch learning算法不一样,batch ...
- Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个 ...
随机推荐
- PHP单引号和双引号的区别
单引号和双引号的区别 .双引号 里的东西 输入的时候能判断是否 包含 变量,如果包含 变量 就一起输出 .单引号里的就不一样,不判断是否有变量,就全部当成 字符串 输出 .单引号解析的时间比双引号快 ...
- poj 1276 多重背包
735 3 4 125 6 5 3 350 //735的最大额,3种,4个125,6个5,3个350 633 4 500 30 6 100 1 5 0 1 735 0 0 3 10 100 10 50 ...
- 开始写github
公司即将开发手机钱庄网,于是最近在写一些手机上常用的js组件做前期准备. 之所以没有沿用pc的那些插件,原因是: 之前的插件大多数是使用jquery写的 移动端的性能要求更严格 以前写的插件从现在看看 ...
- LightOJ1360 Skyscraper(DP)
题目大概是,一个数轴上n个线段,每个线段都有起始坐标.长度和权值,问从中取出没有公共交点的线段的最大权和. 取k次是个经典的最小费用最大流问题,不过这题建容量网络有20W个点,离散化最多也要6W个点, ...
- BZOJ3749 : [POI2015]Łasuchy
设f[i][S]表示第i份食物被两个人吃的状态为S是否有可能,枚举f[1][]的情况后检验 f[i][0]=(f[i-1][1]&a[i-1]>=a[i])|(f[i-1][3]& ...
- HTML6 展望
HTML5 概述 HTML5 是 HTML 语言最受欢迎的版本之一,它支持音频和视频.离线存储.移动端.和标签属性等等.还提供了<article>, <section>, &l ...
- 生成跨语言的类型声明和接口绑定的工具(Djinni )
Djinni 是一个用来生成跨语言的类型声明和接口绑定的工具,主要用于 C++ 和 Java 以及 Objective-C 间的互通. 示例接口定义文件: # Multi-line comments ...
- HDU 4605 Magic Ball Game(离线算法)
题目链接 思路就很难想+代码实现也很麻烦,知道算法后,已经写的很繁琐而且花了很长时间,200+,好久没写过这么长的代码了. #pragma comment(linker, "/STACK:1 ...
- Spring Aop实例
一.XML方式 1. TestAspect:切面类 package com.spring.aop; import org.aspectj.lang.JoinPoint; import org.aspe ...
- 李洪强-C语言9-C语言的数据,变量和常量
一.数据 图片文字等都是数据,在计算机中以0和1存储. (一)分类 数据分为静态数据和动态数据. ①. 静态数据:一些永久性的的数据,一般存储在硬盘中,只要硬盘没坏数据都是存在的.一般以文件的形式存储 ...