【机器学习笔记】判别模型和生成模型(贝叶斯估计)

先验和后验的区别

先验概率是在缺乏某个事实的情况下描述一个变量; 而后验概率是在考虑了一个事实之后的条件概率. 先验概率通常是经验丰富的专家的纯主观的估计.

判别模型

不妨重新考虑一下LR的过程来理解,因为这就是一个判别模型,我总是在用这个例子。
我们有一堆样本点 (x1,y1),(x2,y2),...,(xn,yn)
希望通过训练,用一个 hθ(x) 来拟合 y 的值。

我们拥有的样本点 xi 就是 hθ(x) 的输入参数,是一个特征向量,相当于,我们已经知道了对每个样本的哪些特征去建模。所以,我们是相当于对 p(y|x) 来建模,这个模型由参数 θ 决定,所以,每个样本被正确预测的概率为:

p(y|x;θ)=(hθ(x))y(1hθ(x))1y

模型的构建就基于最大似然所有样本被正确预测的联合分布率:

L(θ)=i=1mp(y(i)|x(i);θ)

求解过程就不说了,得到的 θ 就是预测函数 hθ(x) 的参数。

所以总结来看,我们是已知了对怎样的 x 去建模,并且是对这样一个条件概率 p(y|x) 来建模。

生成模型

换一种思路,如果不采用如上的做法,比如,我不知道怎么提特征,

我们取到所有 y=0 的样本,同时取到 y=1 的所有样本, 想看一下他们的样本分布有何不同,然后如果来一个新的样本点,我们看它更拟合哪种分布。(这一点如果不太理解,可以去看看讲义里elephant和dog的例子)

所以我们是对 p(x|y=0),p(x|y=1) 建模,(暂时先不管参数),也就是对 p(x|y) 建模,但是,我们的目的仍然是依据 x 的一些信息来预测他属于哪个类别,也就是说,还是想求得 p(y|x) , 所以,根据贝叶斯公式:

p(y|x)=p(x|y)p(y)p(x)

我们就还需要对 p(y) 建模,
所以生成模型是对 p(x|y),p(y) 建模。

然后训练的时候,仍然是最大似然样本的联合分布率:

L(parameters)=i=1np(x(i)|y(i);parameters)p(y(i);parameters)

所以这里可以看出一个比较:

  • 生成模型考虑 joint likelihood
  • 判别模型考虑 conditional likelihood

在这里怎么理解先验概率和后验概率?

这里的先验概率就是 p(y) ;
而后验概率就是 p(y|x) ;
也就是说,我们的模型训练过程是在最大化样本的后验概率。而在这里,我们是通过最大化联合概率 p(x|y)p(y) 来达到这一目的。

我尤其喜欢最后的一个例子
捕获.PNG-19.3kB
我随手画了一个,假设我们构建了 p(x|y=0) p(x|y=1) 的分布函数,如上图的两个高斯分布(以高斯分布为例子),那么我们再去根据贝叶斯公式计算 p(y|x) 的时候,就会得到一个类似sigmoid的函数,很神奇~

总结

简单来说,判别模型就是对 p(y|x) 建模,而生成模型则是对 p(x|y) p(y) 建模。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值