Andrew Ng机器学习公开课笔记 -- Generative Learning algorithms
网易公开课,第5课
notes,http://cs229.stanford.edu/notes/cs229-notes2.pdf
学习算法有两种,一种是前面一直看到的,直接对p(y|x; θ)进行建模,比如前面说的线性回归或逻辑回归,这种称为判别学习算法(discriminative learning algorithms)
另外一种思路,就是这里要谈的,称为生成学习算法(generative learning algorithms),区别在于不会直接对p(y|x; θ)进行建模,而是对p(x|y) (and p(y))进行建模,然后用bayes定理算出p(y|x)
不像判别方法,给定x就能通过训练的模型算出结果
比如逻辑回归中,通过 
而生成学习算法的思路是这样的,由于需要对p(x|y)进行建模,x是连续的,但对于分类问题y是离散的,比如取值0或1
我们做的是,分别对每种y的情况进行建模,比如判断垃圾邮件,那么分别对垃圾和正常邮件进行建模,得到
p(x|y = 0) models 和 p(x|y = 1) models
而p(y) (called the class priors)往往是比较容易算出的
当来一个新的x时,需要计算每个y的p(y|x),并且取概率最大的那个y
这里由于只需要比较大小,p(x)对于大家都是一样的,不需要算

所以对于任意生成学习算法,关键就是要学习出
p(x|y = 0) models 和 p(x|y = 1) models
Gaussian discriminant analysis
首先学习的一个生成算法就是GDA,高斯判别分析
不解为何生成算法要叫判别。。。
多项高斯分布
对于这个算法,首先要假设p(x|y)符合多项高斯分布(multivariate normal distribution),区别于一般的高斯分布,参数μ是一维的,而多项高斯分布参数是n维的
其中,
,mean vector,是个n维的向量
,covariance matrix,是个n×n的矩阵
关于这个分布,课件里面讲的很详细,还有很多图,参考课件吧
其实只要知道这个分布也是一个bell-shape curve,μ会影响bell的位置(平移)
而covariance matrix会影响bell的高矮,扁圆的形状
The Gaussian Discriminant Analysis model
继续讲这个模型
前面说了对于生成学习算法,关键就是要找出p(x|y = 0),p(x|y = 1)和p(y)
好理解吗,y取值0或1,一定是伯努利分布,而p(x|y)根据前面假设一定是符合多项高斯分布,所以有
现在问题是要根据训练集,学习出
怎么学?最大似然估计

这里和判别学习算法不同,
判别学习算法,对p(y|x; θ)进行建模,所以称为conditional似然估计
而生成学习算法,是对于p(x|y)*p(y),即p(x,y)进行建模,所以称为joint似然估计
使用最优化算法计算maximizing ℓ,得到参数如下(计算过程略去) 
虽然没有写计算过程,但是得到的这个结果是reasonable的
φ就是y=1的概率,算出的结果就是在训练集中y=1的比例
μ0,μ1,结果是训练集中y=0(或y=1)时x的均值,都很合理
计算出这些参数,我们就得到p(x|y = 0),p(x|y = 1)和p(y),然后可以使用上面的方法就行预测
Discussion: GDA and logistic regression
这里有个很有趣的结论
We just argued that if p(x|y) is multivariate gaussian (with shared ), then p(y|x) necessarily follows a logistic function. The converse, however, is not true;
当p(x|y)满足multivariate gaussian的时候,p(y|x)一定是logistic function,但反之不成立。
使用视频中的截图,更容易理解
图中,叉表示y=0的点,圈表示y=1的点
所以对于y=0和y=1分别建模,就得到两边的两个bell-shaped的高斯曲线
这时如果要画出p(y=1|x),就得到中间的sigmod曲线
越靠左y=1的概率越小,越靠右y=1的概率越接近1,在中间两个曲线交界的地方,y=1的概率为0.5
非常形象的说明为什么p(y|x)会是一个logistic function
更酷的是,这个结论可以推广到任何指数族分布,即任何广义线性模型的分布
那么这里产生的问题就是,我们为什么需要GDA,直接使用逻辑回归不可以吗?
两者区别在于,
GDA比逻辑回归做出更强的假设,因为前面的结论是不可逆的
所以当数据p(x|y)确实或近似符合高斯分布时,GDA更有效,并且需要更少的训练数据就可以达到很好的效果
但是在实际中,其实你很难确定这点,
这时逻辑回归有更好的鲁棒性,比如如果p(x|y)符合泊松分布,而你误认为符合高斯分布,而使用GDA,那么效果就会不太好
而逻辑回归,对数据做出的假设比较少,只要p(x|y)指数族分布,都会有比较好的效果,当然逻辑回归需要的训练数据也是比较多的
这里其实就是一个balance
模型假设强弱和训练数据量之间的权衡
如果你明确知道符合高斯分布,那么用比较少的训练数据,使用GDA就很好
如果不确定,就使用逻辑回归,用比较多的训练数据
Andrew Ng机器学习公开课笔记 -- Generative Learning algorithms的更多相关文章
- Andrew Ng机器学习公开课笔记–Reinforcement Learning and Control
网易公开课,第16课 notes,12 前面的supervised learning,对于一个指定的x可以明确告诉你,正确的y是什么 但某些sequential decision making问题,比 ...
- Andrew Ng机器学习公开课笔记 -- Online Learning
网易公开课,第11课 notes,http://cs229.stanford.edu/notes/cs229-notes6.pdf 和之前看到的batch learning算法不一样,batch ...
- 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机器学习公开课笔记 -- 支持向量机
网易公开课,第6,7,8课 notes,http://cs229.stanford.edu/notes/cs229-notes3.pdf SVM-支持向量机算法概述, 这篇讲的挺好,可以参考 先继 ...
- Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf Model Selection 首先需要解决的问题是,模型 ...
- Andrew Ng机器学习公开课笔记 – Factor Analysis
网易公开课,第13,14课 notes,9 本质上因子分析是一种降维算法 参考,http://www.douban.com/note/225942377/,浅谈主成分分析和因子分析 把大量的原始变量, ...
- Andrew Ng机器学习公开课笔记 -- 线性回归和梯度下降
网易公开课,监督学习应用.梯度下降 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 线性回归(Linear Regression) 先看个 ...
- Andrew Ng机器学习公开课笔记 -- Logistic Regression
网易公开课,第3,4课 notes,http://cs229.stanford.edu/notes/cs229-notes1.pdf 前面讨论了线性回归问题, 符合高斯分布,使用最小二乘来作为损失函数 ...
随机推荐
- erlang-百度云推送Android服务端功能实现-erlang
百度云推送官方地址http://developer.baidu.com/wiki/index.php?title=docs/cplat/push 简单的介绍下原理: 百度云推送支持IOS和Androi ...
- OpenCV学习:图像的载入和显示
一.使用IplImage结构读取并显示图像文件: 运行结果: 二.使用Mat类读取并显示图像文件: 使用 Mat 类,内存管理变得简单,不再像使用 IplImage 那样需要自己申请和释放内存,而且一 ...
- windows下dubbo-admin和zookeeper安装部署
1. 概述 ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护.名字服务.分布式同步.组服务等.ZooKeeper的目标就是封装好复杂 ...
- HTML&CSS精选笔记_CSS入门
CSS入门 CSS核心基础 CSS样式规则 选择器{属性1:属性值1; 属性2:属性值2; 属性3:属性值3;} CSS代码结构中的特点 CSS样式中的选择器严格区分大小写,属性和值不区分大小写,按照 ...
- Java精选笔记_IO流(字节流、InputStream、OutputStream、字节文件、缓冲区输入输出流)
字节流 操作图片数据就要用到字节流. 字符流使用的是字符数组char[],字节流使用的是字节数组byte[]. 字节流读写文件 针对文件的读写,JDK专门提供了两个类,分别是FileInputStre ...
- try catch finally的执行顺序
1.将预见可能引发异常的代码包含在try语句块中. 2.如果发生了异常,则转入catch的执行.catch有几种写法: catch 这将捕获任何发生的异常. catch(Exception e) 这将 ...
- MVC--布局--razor
ASP.NET MVC Razor视图引擎攻略 转自:http://www.cnblogs.com/John-Connor/archive/2012/05/08/2487200.html --引子 看 ...
- hadoop程序MapReduce之DataDeduplication
需求:去掉文件中重复的数据. 样板:data.log 2016-3-1 a 2016-3-2 b 2016-3-2 c 2016-3-2 b 输出结果: 2016-3-1 a 2016 ...
- Linux wc 命令
wc命令可以用来统计文件的行数 .单词数 .字符数,用法如下: [root@localhost ~]$ wc 1.txt # 统计文件的行数.单词数.字符数 2 4 24 1.txt [root@lo ...
- JS 操作iframe
很多人一直都有个想法,要是可以随心所欲的操作iframe就好了.这样静态页面也就有了相当于后台动态页面php,jsp,asp中include,require实现统一多页面布局的能力. 通过Javasc ...