您的位置:首页 > 其它

ML学习心得(1)--- 贝叶斯理论思想

2014-08-18 17:34 148 查看
0、前言

最近学习machine learning也有一段时间了,可总是觉得自己对于其核心方法之一——贝叶斯理论——的掌握一直处于混沌的状态。故想写一篇文章理理自己的思路,对于其的理解。初接触的时候觉得贝叶斯这个名词颇具奇幻色彩,似乎在很多地方都能有所听闻,稍加了解之后觉得,原来就是数学里经常遇到的那个公式啊。深入的了解之后才明了,贝叶斯的思想是那么的平凡而又神奇。

1、贝叶斯理论及其历史

贝叶斯思想的鼻祖自然就是贝叶斯了,具体可以看这里

所谓的贝叶斯方法源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝 叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大”。而一个自然而然 的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对
袋子里面的黑白球的比例作出什么样的推测”。这个问题,就是所谓的逆概问题。

这一思想提出的深刻背景是由于人类观察的局限性。倘若你能知道明天是阴天还是下雨,你还需要根据往年的经验、之前的天气等等一些列东西来做出假设(hypothesis)吗?

而贝叶斯公式又是怎么来的呢?我们下面举个例子。

已知一个水果筐里有M个苹果和N个梨,都有可能是黄色和绿色。苹果为黄色的概率为20%,梨子为黄色的概率为80%,问,假如我在这堆水果中拿到了一个黄色的水果,

问这个水果是梨子的概率是多少(假设我们没有办法从外形判断)。

用数学语言表示出来就是P(苹果)=M/(M+N),P(梨)=N/(M+N),P(黄色|苹果)=0.2,P(黄色|梨)=0.8,我们要求的是P(梨|黄色)的值时多少。

这时我们就需要求出一共多少个黄色的水果,其中梨是多少

P(黄色) =P(苹果)*P(黄色|苹果) +P(梨)*P(黄色|梨)------------------------1)

P(黄色、梨) =P(黄色|梨)
* M / (M+N) = P(黄色|梨) * P(梨)--------------2)

那么我们所要求的P(梨|黄色)就是黄色的水果中,黄色的梨的概率是多少,也就是上述的式2)/式1),即:P(梨|黄色)
= P(黄色、梨)/P(黄色) =P(黄色|梨) * P(梨)/P(黄色),写的简单些就是

P(A|B) = P(B|A)*P(A)/P(B)

这就是我们所熟识的贝叶斯公式,在概率论中经常使用到,这也是我为什么接触之后觉得就是一个简单的公式而已,但是它却蕴含着复杂的思想。

2、先验概率与后验概率

首先我们先明确先验概率、后验概率是什么

先验概率:P(A)。它并不是指先于一切经验之前的概率,而是先于我们这次观察之前,所知的概率。

后验概率:P(A|B)。在我们完成至此观察之后,可以理解为根据这次观察,我更新了先验概率,得到了现在的后验概率。

大家会疑问,公式中的P(B|A)和P(B)又分别是什么呢。这里我之前一直找不到好的例子来解释,直到看到了这篇博客里的一个例子,觉得很不错,跟大家分享一下

2.1拼写纠错

问题是,一个人输错了单词之后,将这错写的单词纠正成什么?那么自然我们要找到以下概率最大的情况,纠正成这一次假设

P(我们猜测他输入的单词1|他实际输入的单词)、P(我们猜测他输入的单词2他实际输入的单词)……

我们抽象成P(h1|D)……=>P(h|D)、运用贝叶斯公式可得

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

对于不同的h,我们的猜测D是一样的,所以这个公式可以不管P(D),得到

P(h | D) ∝ P(h) * P(D | h)

这个式子的抽象含义是:对于给定观测数据,一个猜测是好是坏,取决于“这个猜测本身独立的可能性大小(先验概率,Prior )”和

“这个猜测生成我们观测到的数据的可能性大小”(似然,Likelihood )的乘积。

接下来,对于我们猜测为可能的每个单词计算一下 P(h) * P(D | h) 这个值,然后取最大的,得到的就是最靠谱的猜测。

2.2拼写纠错的延伸思考

自然,我们会想,为什么一定要用这样的贝叶斯思想来求呢?那我们就尝试用别的方法来求解。

假设,他拼错的单词是thew,那么我们根据编辑距离猜测可能是the和thaw,然而两者的编辑距离都是一样的,那么我们到底该选

哪个呢?我们注意到字母 e 和字母 w 在键盘上离得很紧,无名指一抽筋就不小心多打出一个 w 来,the 就变成 thew 了。而另一方

面 thaw 被错打成 thew 的可能性就相对小一点,因为 e 和 a 离得较远而且使用的指头相差一个指头,因此我们判断是the。那么这

个思想是什么呢?对,就是最大似然的想法(在接下来的篇章会写到),求使得的P(D|h)最大的h,也就是我们上一篇章所提到的P(B|A)。

那么既然最大似然也能判断出来,我为什么要用贝叶斯想法呢?这两者的区别在哪呢?

3、MLE最大似然估计与MAP最大后验概率

首先我们明确下什么是MLE,MAP

MLE:即求使得上述式子中P(D|h)最大的h

MAP:求上述式子 P(h)*P(D|h)最大的h

接着上一篇章。那么这和我们的贝叶斯方法有什么区别吗?
P(h) * P(D | h) 没错,我们多乘了一个先验概率P(h),而这又有什么影响呢?举个例子

比如用户输入tlp ,那到底是 top 还是 tip ?这个时候,当最大似然不能作出决定性的判断时,先验概率就可以插手进来给出指示——“既然你无法

决定,那么我 告诉你,一般来说 top 出现的程度要高许多,所以更可能他想打的是 top ”)。这个top的概率比较高,这个就是我们的P(h)先验概率。

这个例子就很好的告诉我们,单纯的利用最大似然概率的方法没有办法提供求解的全部信息。

最大似然还有另一个问题:即便一个猜测与数据非常符合,也不代表这是一个合理的猜测。举个例子:假设你抛一枚硬币,抛了5次,而且运气就是

那么好,全部都是正面,那么我们根据P(D|h),最大似然的方法可以做出预测,抛出正面的概率是1,抛出反面的概率是0。而这很明显根据我们的

常识这是不合理的。当然这一现象也可以解释overfitting这一类的问题,我们选用了复杂的模型,能很好的匹配我们的观测量D,但是却是不合理的

道理是一样的。

因此我们在做模型选择的时候,其实就是P(h)和P(D|h)两者之间的均衡。

这里想要补充一点,大家在学习machine learning的时候,会发现很多情况下,使用的都是MLE,而不是MAP,这里的原因有以下几点

1、先验概率相等。先验概率相等的话,就意味着它对我的判别并没有影响,所以不用计算。之所以会相等,举个例子,regression的时候,每条回归线的概率肯定是相等的,不存在哪一条的可能性更大

2、先验概率难求。对于这样的情况下,我们就假设他们相等,不去考虑。

reference:

数学之美番外篇:平凡而又神奇的贝叶斯方法



维基百科
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: