从贝叶斯出发,如何真正的理解算法?

大学时学习了很多高深的课程,什么数学物理方法、小波函数等等,但现在脑海里估计已经一片空白,反正大概是一堆公式和解题方法吧,其实就是在当时,也根本没深究过这些数学公式的来龙去脉,更无法理解这些公式后面的光辉思想。

贝叶斯算法大名鼎鼎,但用过贝叶斯的估计没几个能从业务的角度去真正理解贝叶斯吧?有多少人能将贝叶斯思想自然的用于解释生活中的各种现象呢?在电梯里你能用几句话跟领导解释清楚吗?

当然直接拿着贝叶斯公式或者调用一个函数的确可以快速解决问题,但这种方法显然没法内化,逻辑上的推导才是算法精神和乐趣所在,对于一个建模的人来说,如果有时间,还是要尽量让一个算法长在自己心里,语言和工具总会不断被更新,你也许永远跟不上这个节奏,唯有里面的思想是持久的,也是一大把年纪后能留下的唯一的算法资产,特别是如果其还能指导你的生活,知道为什么总是很重要。

1、关于信念

你相信上帝吗?你相信中医吗?你相信全球变暖是人为造成的吗?你相信转基因食品安全吗?你相信大年初一去灵隐寺烧香能带来好运吗?信或不信,我们可以用一个量化数字来表示,比如说概率,大年初一去灵隐寺烧香能带来好运的可能性是90%,这是主观概率,就好比天气预报说明天下雨的概率90%一样。

真正的深信不疑或彻底不信都是很少的,一般情况下对一般有争议的问题我们都是抱着将信将疑的态度,信念值在0.01%到99.99%之间,而且,我们对大多数事物的信念值都在动态变化,比如有什么特别突兀的新东西出来,我们一开始可能是不信的,随着证据增多,慢慢增加信念,那么,我如何基于这些证据去计算新的信念值?

2、贝叶斯的困惑

所谓的贝叶斯方法源于他生前为解决一个“逆概”问题写的一篇文章,而这篇文章是在他死后才由他的一位朋友发表出来的。在贝叶斯写这篇文章之前,人们已经能够计算“正向概率”,如“假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大?”

而一个自然而然的问题是反过来:“如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球,观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测,随着取出的球越来越多,我的推测是否也会变化?”

实际上,贝叶斯当时的论文只是对这个问题的一个直接的求解尝试,并不清楚他当时是不是已经意识到这里面包含着的深刻的思想。然而后来,贝叶斯方法席卷了概率论,并将应用延伸到各个问题领域,所有需要作出概率预测的地方都可以见到贝叶斯方法的影子,特别地,贝叶斯成为机器学习的核心方法之一。

3、从业务出发推导贝叶斯定理

如果我在决策时掌握所有的信息,我当然能计算一个客观的概率,比如在一个桶里有黑白色的球,如果我事先知道里面黑白球的比例,我自然知道我随机拿到一个白球的概率是多少,如果我事先知道去灵隐寺获得好运的可能性就是90%,我自然会在某次路过灵隐寺的时候进去烧香。

可是生活中绝大多数决策面临的信息是不全的,我们手里只有有限的几个证据,而贝叶斯定理的精神在于,人类的观察能力是有限的,既然无法得到全面的信息,我们就在证据有限(表面)的情况下,尽可能地做一个更好的判断,下面我们先祭出贝叶斯公式,然后尝试用灵隐寺烧香能否显灵的例子推导出它:

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

这里P(A)代表认为升职的概率,B代表一个与A相关的事件(实例),比如“我朋友去年去了灵隐寺烧香,结果他升职了”,P(A/B)代表在B发生的情况下,A发生的概率,其他类似。

P(A)代表了我的原始信念A,就是说我对于升职有一个初始的判断概率,比如15%。P(A/B)代表某个实际事件发生后,有了新的证据,我需要对于原始的信念A做个调整,你可以把A当成你对一般情况的理论预言,而B是一次实验结果,有了新的实验结果,你就调整自己的理论预言,这个新的预言就是P(A/B)。

那么P(A/B)这个新的预言如何计算呢?

首先,跟初始的P(A)有关系,假如P(A)一开始极小,则再多的事件发生你也不会改变初衷,我们的当前观点肯定受先前观点的影响。

其次,跟P(B/A)/P(B)也有关系,就是说如果在原始信念P(A)作用下发生某个特定事件(B)的可能性相对更高了,则我由于这个事件改变原始信念的可能性就越高,比如这里P(B)代表去灵隐寺的概率,P(B/A)就代表升职的人中去过灵隐寺的的概率,两者比值就表示信念由于事实改变的相对大小,注意好好理解这句话。

最后,我们就得到了能业务化解释的贝叶斯公式:P(A/B)=P(B/A)/P(B)*P(A),假如你真理解了,你就不会纠结搞混这个公式。

4、从技术出发推导贝叶斯定理

当然,如果纯粹去推导出这个公式,其实也是容易的,笔者这里简要示意下:

U代表全空间,A代表升职,B代表去灵隐寺,C代表交集,很容易推导:

P(A,B)=C/U

P(A/B)*P(B)=C/B*B/U=C/U

P(B/A)*P(A)=C/A*A/U=C/U

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

5、生活的启示

请看以下第一张图,你认为大树后面是一个箱子,还是两个箱子,或是三个箱子,为什么? 如果你认为是一个箱子,请看第二张图,你到底凭什么判断是一个箱子?

很简单,你会说:要是真的有两个箱子那才怪了,怎么就那么巧这两个箱子刚刚好颜色相同,高度相同呢?

那么,如何证明?

我们可以很容易用贝叶斯来解释这个生活常识问题,假如A1代表认为是一个箱子,A2代表二个箱子,B代表观察到的事件,则其实求解P(A1/B)、P(A2/B)哪个概率最大?

P(A1/B)=P(B/A1)/P(B)*P(A1)

P(A2/B)=P(B/A2)/P(B)*P(A2)

显然P(B/A2)猜测后面是两个箱子使得我们的观测结果成为小概率的时候,我们才会说才怪呢?哪能这么巧呢?

6、中文分词问题

中文分词领域就用到了贝叶斯,分词问题的描述为:给定一个句子(字串),如:南京市长江大桥,如何对这个句子进行分词(词串)才是最靠谱的,例如:

1. 南京市/长江大桥

2. 南京市长/江大桥

这两个分词,到底哪个更靠谱呢?

我们用贝叶斯公式来形式化地描述这个问题,令 B 为句子,A 为词串(一种特定的分词假设),我们就是需要寻找使得 P(A|B) 最大的 A ,使用一次贝叶斯可得:

P(A分词/B句子)=P(B/A)/P(B)*P(A)

由于P(B)对于每个A都一样,P( B/A )近似为1,则P(A/B)主要由P(A)决定,也就是要寻找一种分词A使得这个句子B的概率最大化。

如何计算一个词串,A=W1,W2,W3,W4...的可能性呢?

我们知道,根据联合概率的公式展开:P(W1, W2, W3, W4 ..) = P(W1) * P(W2|W1) * P(W3|W2, W1) * P(W4|W1,W2,W3) * ...,然而不幸的是随着条件数目的增加(P(Wn|Wn-1,Wn-2,..,W1) 的条件有 n-1 个),数据稀疏问题也会越来越严重,即便语料库再大也无法统计出一个靠谱的 P(Wn|Wn-1,Wn-2,..,W1) 来。

为了缓解这个问题,科学家们一如既往地使用了“天真”假设:我们假设句子中一个词的出现概率只依赖于它前面的有限的 k 个词(1个词就是朴素贝叶斯),这个就是所谓的“有限地平线”假设。

虽然这个假设很傻很天真,但结果却表明它的结果往往是很好很强大的,现在式子变成了:P(W1) * P(W2|W1) * P(W3|W2) * P(W4|W3) ..。

对于我们上面提到的例子“南京市长江大桥”由于“南京市长”和“江大桥”在语料库中一起出现的频率为 0 ,这个整句的概率便会被判定为 0 ,从而使得“南京市/长江大桥”这一分词方式胜出。

其他应用案例比如:

垃圾邮件识别(过滤器):P(A(垃圾邮件)/B(N个单词组成的垃圾邮件));

统计机器翻译:P(A(翻译成的外文)/B(待翻译的句子));

语音识别:P(A(推测出发送的句子)/B(观测到的语音信号));

7、一个具体计算案例

一般人中艾滋病的携带者比例是0.01%,如果一个人检测血液呈阳性,其得艾滋的概率是多少?(如果是真艾滋,血液检测的准确性达到99.9%,如果是假艾滋,血液检测准确率是99.99%)。

P(A(得艾滋)/B(检测呈阳性))= P(B/A)/P(B)*P(A)=99.9%/(0.01%*99.9%+99.9%*0.01%)*0.01%=50%。

真没想到,在这么高的血液检测准确性条件下,一个检测血液呈阳性的人真得艾滋的概率也只有50%。

直观解释:随机找1万人做实验,根据分布,只有1人得艾滋,由于检测手段强,这个人会被检测出来,但剩下的9999人虽然没艾滋,但检测出艾滋的概率由于0.01%,还是有1人被错误检测,因此共有2人检测成阳性,得艾滋的概率为50%。

因此,如果一个事情很罕见,即先验概率很低,即使再多的可疑事实出现,也要注意可能误判,比如不要对抓特务报太大信心!

笔者学习贝叶斯也是东看看,西看看,看了忘,忘了看,这次把学习的综合写成一篇还算易懂的文章,算是了却一个心愿,对于任何一个公式一定要在业务上搞懂搞透,起码能自圆其说吧,贝叶斯算是好懂的,但很多算法不是这样,公式的推导就已经让人发疯,更别提搞懂来龙去脉甚至跟生活去接轨了,从历史上看,牛人一般也只愿意show 结果,而不愿意把思考过程写下来,比如费马定理的证明,这个非常遗憾。

好了,贝叶斯介绍完了,如果你真的看到这里,是否对于其思想有一个新的理解?作为传统企业的一个技术人员,其实对于算法的掌控深度是非常纠结的,因为即使理解透了也可能于工作无益,这并非是性价比很高的方式,工程上能搞定就可以了。

但笔者想的是,这是一种学习方式,也许不用那么功利,自己觉得值就去干吧,没有谁能说现在学哪个知识就一定将来有用,或者没用,未来是如此不确定,在这个大数据时代。

微信公众号:与数据同行(ysjtx_fyp)  微信号:fuyipingmnb  欢迎交流!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容