BRML第一章:概率推断
最近我在阅读 David Barber 的 Bayesian Reasoning and Machine Learning(以后都用BRML来简称)。阅读过程中,随手记录了一些笔记。现在稍作整理,发表为一系列博文。本文是第一篇,也就是第一章的笔记整理。后续的博文都是各个章节的笔记整理,基本是一章一篇博文,个别重要的章节或许会作为多篇博文来写。
BRML的第一章主要复习了概率的基本知识,通过贝叶斯公式(或者条件概率公式)引入概率推断的概念,然后对先验概率,后验概率和似然值做了详细介绍。从第一章就可以窥测本文将会用大量的例子来阐述概念,这是我比较喜欢的书籍的风格。
1 贝叶斯法则
为了保证完整性,记录贝叶斯公式的定义。
已知事件 y时,事件x发生的概率,定义为:p(x|y)≜p(x,y)p(y)=p(x)p(y|x)p(y)
这个公式是如此重要,基本上撑起了机器学习的半壁江山。另外,这个公式在通信系统的信道译码算法中也频频出现,尤其在消息传递算法或者置信度传递算法中。关于其重要性,就不再多言。随着学习的深入,对这个公式及其扩展的理解会愈加深刻。
从贝叶斯规则引入统计独立的概念,即当p(x,y)=p(x)p(y)
2 概率推断
概率推断的核心是识别环境中所有相关的随机变量x1,…,xN,并且根据他们的关系创建一个概率模型p(x1,…,xN)。推断的过程是根据已知信息更新某个随机变量概率的过程。
医生发现一个人得KJ病的概率是相当低的大约是1/100000,但是得了Kreuzfeld-Jacob(KJ)病的人几乎都吃汉堡包,p(HamburgerEater|KJ)=0.9。
假设一个人吃汉堡包的概率是0.5,p(HamburtgerEater)=0.5,那么一个吃汉堡包的人得KJ的概率是多少?
这个概率可以表示为:
p(KJ|HamburtgerEater)=p(KJ,HamburtgerEater)p(HamburtgerEater)=p(HamburtgerEater|KJ)p(KJ)p(HamburtgerEater)=0.9×1/1000001/2=1.8×10−5如果吃汉堡包的人的概率比较低,不是0.5而是0.001,那么一个吃汉堡包的人得KJ的概率是多少?
重复上面的计算
p(KJ|HamburtgerEater)=p(KJ,HamburtgerEater)p(HamburtgerEater)=p(HamburtgerEater|KJ)p(KJ)p(HamburtgerEater)=0.9×1/1000000.001≈1/100
这个例子告诉我们不要为一些不大可能的事情担心:得了KJ的前提下吃汉堡包的概率和吃汉堡包的前提下得KJ的概率完全是两码事。
再给一个异或门的例子,我们知道一个标准的异或门电路的逻辑关系满足表1:
A | B | C=A⊕B |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
当我们观测到异或门的输出是0时,对于A或者B的概率我们知道多少?在这样的情况下,可能A,B都是0,也可能A,B都是1。 A,B处于0或者1的概率是等该的。
但是考虑一个软判决输出的异或门逻辑,其逻辑关系如表2,我们假定A,B是独立的且p(A=1)=0.65,p(B=1)=0.77,那么求p(A=1|C=0)?
A | B | p(C=1|A,B) |
---|---|---|
0 | 0 | 0.1 |
0 | 1 | 0.99 |
1 | 0 | 0.8 |
1 | 1 | 0.25 |
由条件概率公式,得:
p(A=1|C=0)=p(A=1,C=0)p(C=0)=p(A=1,C=0)p(A=1,C=0)+p(A=0,C=0)接下来,我们对9右边分母上的两个求和项进行展开:
p(A=1,C=0)=∑Bp(A=1,B,C=0)=∑Bp(C=0|B,A=1)p(B)p(A=1)带入表格中相应的概率数字得出p(A=1|C=0)=0.8436
3 先验概率,似然值和后验概率
现实生活中非常多的问题可以归类为:当我知道数据D时,告诉我随机变量θ的概率。这个问题可以归类为:
p(θ|D)=p(D|θ)p(θ)p(D)=p(D|θ)p(θ)∫θp(D|θ)p(θ)这个模型在机器学习和信道编码理论中都有普遍的实用,甚至是其基础的基础。那么从式14我们可以读出什么信息呢?式14告诉我们,我们可以从数据生成模型p(D|θ)和先验概率p(θ)推断后验概率p(θ|D)。最大后验概率准则(maximize a posteriori,MAP )准则,可以表示为:
ˆθ=argmaxθp(θ|D)对于等概率分布的先验概率p(θ),MAP准则和最大似然准则(maximum likelihood,ML) 是等效的,即最大化p(D|θ)的θ同样最大化p(θ|D)。
现在针对p(D|θ)我们给出一个例子。假设一个钟摆在摆动,我们用xt来表示钟摆在t时刻的角度。假设每次测量都是独立的。假设每次测量都是精确的,则有
xt=sin(θt)这里假设系统没有阻尼则θ=√g/L,其中g是地球引力场数,L是吊起钟摆的绳子的长度,但是我们是在测试θ,是根据x1,…,xT来测量θ。另外,实际测量过程中(比如测量位置仪器质量很差或者定时器不准),测量总是存在误差,假设误差是ϵt,测量结果可以表示为:
xt=sin(θt)+θt一般情况我们定义ϵt服从均值为零方差为δ2的高斯随机变量。所以关于θ的后验概率可以表示为:
p(θ|x1,…,xT)∝p(θ)T∏t=11√2πδ2e12δ2(xt−sin(θ)t)2我们来考虑投掷两个均匀骰子的场景。假设现在有人告诉你两个骰子的数字之和为9。求此时关于两个骰子上数字的后验概率分布。
首先我们用sa,sb代表两个骰子的数字,其取值范围是{1,2,3,4,5,6}。两者之和为t=sa+sb这三个随机变量的模型遵循:
p(t,sa,sb)=p(t|sa,sb)⏟likelihoodp(sa,sb)⏟prior假设两个骰子是均匀的p(sa,sb)则p(sa,sb)=p(sa)p(sb)其概率分布表格为:
sa=1 | sa=2 | sa=3 | sa=4 | sa=5 | sa=6 | |
---|---|---|---|---|---|---|
sa=1 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 |
sa=2 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 |
sa=3 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 |
sa=4 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 |
sa=5 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 |
sa=6 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 | 1/36 |
由于骰子是均匀的则p(sa)=p(sb)=1/6。另外,我们有p(t|sa,sb),表格如下:
sa=1 | sa=2 | sa=3 | sa=4 | sa=5 | sa=6 | |
---|---|---|---|---|---|---|
sa=1 | 0 | 0 | 0 | 0 | 0 | 0 |
sa=2 | 0 | 0 | 0 | 0 | 0 | 0 |
sa=3 | 0 | 0 | 0 | 0 | 0 | 1 |
sa=4 | 0 | 0 | 0 | 0 | 1 | 0 |
sa=5 | 0 | 0 | 0 | 1 | 0 | 0 |
sa=6 | 0 | 0 | 1 | 0 | 0 | 0 |
后验概率 p(sa,sb|t=9)=p(t=9|sa,sb)p(sa)p(sb)p(t=9),其中p(t=9)=∑sasbp(t=9|sa,sb)p(sa)p(sb)
综上我们可以得到后验概率表:
sa=1 | sa=2 | sa=3 | sa=4 | sa=5 | sa=6 | |
---|---|---|---|---|---|---|
sa=1 | 0 | 0 | 0 | 0 | 0 | 0 |
sa=2 | 0 | 0 | 0 | 0 | 0 | 0 |
sa=3 | 0 | 0 | 0 | 0 | 0 | 1/4 |
sa=4 | 0 | 0 | 0 | 0 | 1/4 | 0 |
sa=5 | 0 | 0 | 0 | 1/4 | 0 | 0 |
sa=6 | 0 | 0 | 1/4 | 0 | 0 | 0 |