后验概率估计

0.引言

        在谈后验概率估计之前,我们先回顾一下最大似然估计。最大似然估计的思想很简单,就是当前事件发生的概率要最大,由此得到未知参数。

        然而最大似然估计有一个最大的问题就在于缺少先验知识,比如抛硬币,在样本量不足的情况下,硬币的正反次数比可能为8:2,然而先验知识告诉我们,正确的比例应该是5:5。在大样本条件测试下,最大似然估计的准确性会提高,但我们也的确会遇到样本不足的情况,此时,如果能够引入先验知识,无疑是有益的。

1.条件概率

        后验概率(贝叶斯概率)的核心思想就是使用条件概率,即

P(A|B)=\frac{P(AB)}{P(B)}

2.最大后验概率

        为了清晰的比较,这边先写一下极大似然估计的公式

argmax\ P(x|\theta)

        极大似然估计是求取一组参数\theta使得P(X|\theta)的概率最大。当然值得注意和谨记的是,在实际使用的过程中,常常会使用对数似然,因为加对数不会影响极大值点(会影响极大值)。

        然而最大后验概率是在给定当前样本X的条件下,推定拥有最大概率的参数\theta,即

argmax\ P(\theta|X)=argmax\ \frac{P(X|\theta)P(\theta)}{P(X)}=argmax\ P(X|\theta)P(\theta)

        第二个等号成立的原因是,P(X)这一项表示的是样本的概率,在实际计算时,由于样本已经选定,这一项便可以视作常数。而P(X|\theta)是最大似然估计的结果,P(\theta)就是我们说的先验知识。

        来看看具体的求解过程:

        argmax\ P(\theta|X) \\=argmax\ logP(\theta|X) \\=argmax\ logP(X|\theta)P(\theta) \\=argmax\ (logP(X|\theta)+logP(\theta)) \\=argmax\ (\prod_{x_i\epsilon X}{logP(x_i|\theta)}+logP(\theta)) \\=argmax\ (\sum_{x_i\epsilon X}{logP(x_i|\theta)}+logP(\theta))

3.拼写纠错实例

        有时候用户错误地输入了一个不存在的单词,我们是否可以去猜测用户真正想输入什么。即计算P(用户真正想要的输入|用户实际的输入)。记用户实际的输入为D(Data,观测数据)。

        现在我们来猜测一些可能,P(h_1|D),P(h_2|D),...,P(h_n|D),我们希望找到最大的P(h_i|D),根据后验概率公式有

P(h_i|D)=P(h_i)*P(D|h_i) / P(D)

        P(h_i)代表着先验知识,在拼写纠错种,这可以代表中单词本身的概率,可以理解为是一个单词出现的频率也即代表着单词本身的常用程度。

        P(D|h_i)代表将单词h_i错写成D的概率,一般来说,可以用词语相似度进行衡量。

        P(D)表示用户的输入为D的概率,这个值实际上我们可以认为是一个定值,因为对用户来说,在不知道用户当前输入了什么词之前,用户输入任何词都是有可能的。

        所以,我们可以知道,存在如下正比关系

P(h|D)\ \alpha P(h)*P(D|h)

        也就是说,对于给定的观测数据D来说,猜测的好坏,取决于“猜测本身的可能性大小”(即先验概率P(h)和“由这个猜测生成我们观测到的数据的可能性大小”P(D|h)

        接下来我们就可以算出P(h_1|D),P(h_2|D),...,P(h_n|D),通过比较取最大值就可以知道用户想要输入的是哪一个词了。

注:关于先验知识的作用-用户输入了tlp,现在我们要判断可能是top还是tip,此时我们发现,top和tip一样,与tlp只有中间的字母不同,可以理解为最大似然求出来的概率相同,那么根据先验知识,top出现的频率更高,因此用户更可能想打top。

4.垃圾邮件过滤

        给定一封邮件,判定是否属于垃圾邮件。用D表示邮件,D由N个单词组成。用h+表示垃圾邮件,h-表示正常邮件。

        根据贝叶斯后验概率可得:

P(h+|D)=P(h+)*P(D|h+)/P(D)

 P(h-|D)=P(h-)*P(D|h-)/P(D)

        P(h+),P(h-)是先验概率,可以从统计的角度,在大数据量邮件的条件下计算出来。

        P(D|h+),P(D|h-)是似然估计值,即在已知当有邮件 是/不是 垃圾邮件的条件下,计算组成内容为,其中的D可以分解为d_1,d_2,...,d_n,其中d_i表示邮件中的第i个单词,则有

P(D|h+)=P(d_1,d_2,...,d_n|h+)

       P(d_1,d_2,...,d_n|h+)表示在垃圾邮件中出现和我们目前手上这封邮件一模一样的邮件的概率。然而这个公式描述是十分严格的,内容完全一模一样的垃圾邮件并不常见,有时候我们并不会要求内容完全一致,而是近似即可。我们可以用P=P(d_i|d_{i-1},...,d_2,d_1,h+)表示在当前已经确定前面i-1个单词为d_1,d_2,...,d_{i-1}的时候,第i个单词为d_i的概率,于是有下式

P(D|h+)=P(d_1,d_2,...,d_n|h+)=P(d_n|d_{n-1},...,d_1,h+)*....*P(d_1|h+)

        为了简化问题,我们可以假设d_id_{i-1}是完全条件无关的(朴素贝叶斯假设特征之间相互独立,互不影响;此处我们把组成D的每一个单词当作D的特征),也就是说,在朴素贝叶斯的假设前提下,d_2在垃圾邮件中的概率不再是P(d_2|d_1,h+)而是P(d_2|h+),于是上式可以简化为

P(d_1,h+)*P(d2|h+)*...P(d_n|h+)

        对于P(d_1,h+),P(d2|h+),...,P(d_n|h+),只需要统计d_i这个单词在垃圾邮件中出现的频率即可,到此,邮件过滤问题已解。

注:通过这个朴素贝叶斯的假设我们也可以明白,在实际解决问题的时候,很多现实条件约束是比较严苛的,为了使得问题可解,我们需要做一些假设使得问题变得简单,进而求解。我们最终的目的是求解而不是严格描述问题,这一点要明确;另外,我们所做的假设也是要有理论依据的,比如,在假设误差时,我们往往会选用正态分布来假设,这是因为依据我们的经验,误差的的确确是符合正态分布的。

5.模型比较理论

最大似然:最符合观测数据(即P(D|h))的模型最具有优势

奥卡姆剃刀:P(h)较大(先验知识越有说服力)的模型有较大的优势

举例:

        假设当前抛掷一枚硬币,观察到“正”,根据最大似然估计,我们认为硬币投掷出“正”的概率是1,因为只有这样才能最大化P(D|h)。

        但是从奥姆剃刀的角度,硬币抛掷得到正反的先验概率都是0.5。

  • 5
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值