(PRML) 总结

Bishop 的《模式识别与机器学习》(Pattern Recognization and Maching Learning),简称为PRML,被认为是贝叶斯方法的扛鼎之作。在科研之余,花了半年时间,我现在算是把这本书通读了一遍并且也把各个章节的习题几乎完成了一遍,各章练习题解答可见我的博客-练习题解答,各章章节小结可见我的博客-章节小结。作为看完这本书最后一个环节,我想为我看完这本书做一个总结。总结分为如下几个部分,分别是阅读此书可以采取的方法,极大似然法和贝叶斯法,本书各章小结。

一:阅读此书可以采取的方法

(1):I:可以首先看目录,大概了解一下本书中各个章节主要讲的是什么内容,比如从第三章到第七章介绍的都是用于回归(regression)与分类(classification)的一些基本模型;同时也可以看一下章节与章节之间是否有无联系,比如说第六章提到了 kernel method,紧接着第七章就用到了 kernel ,这样第六章与第七章就可以形成一个整体来看;

   II:当具体看各个章节内容时,不要希望一遍就能看懂,可以静下心来多看几遍,第一遍看时可以不求甚解,只是了解一下这章大概讲的是什么内容以及具体的逻辑思路,非常多的章节采取的逻辑思路都是:先介绍模型,然后介绍极大似然法,最后介绍贝叶斯方法(先推理后预测)

    III: 第二遍第三遍看时,着重理解作者在讲什么,碰到不懂的数学推导不需要过多纠结,可以先暂时忽略,毕竟这属于细节,重在理解内容;最后的话再纠结数学推导,书中提到的数学推导最好要会推导,特别是刚开始看的时候一定要亲自动手推导,因为 PRML 这本书涉及到了非常多的数学推导,如果刚开始不注重数学推导,可能越往后面看由于繁杂的数学推导就越没有动力看了;

(2):课后习题:事实上,章节内容中碰到的数学推导在课后习题中几乎都会遇到,因此可以通过做课后习题来熟悉掌握章节内容中的数学推导并且以此提高自己的数学推导能力。同时做课后习题还有一个重要的原因是通过做习题,边做边思考,可以进一步提高自己对书中知识点的理解。因此就我个人而言,我认为各个章节后的习题还是很有必要做的,反正网上有 PRML 这本书课后所有习题的解答集,不会做的话可以参阅这本解答集;

(3):关于本书数学这一部分:其实这本书所要求的数学知识也就是我们在大一时所学的微积分,概率统计和线性代数,并且这本书中所要求的数学知识几乎都能够在书后的附录中找到,所以说该书的数学部分达到了相当高程度的自洽。刚开始看的时候可能会觉得书中的数学推导有点复杂,但如果刚开始看的时候能够静下心来进行数学推导并且课后习题能够认真完成的话,反而是越看到后面章节越会觉得数学那一部分不会构成太大的障碍,因为后面章节用到的大部分数学知识点以及数学推导技巧(trick)在前面章节中就遇到了。

二:极大似然法和贝叶斯法

1:极大似然法和贝叶斯法的本质不同

在极大似然法中,我们将模型参数看做是具有确定值的一组参数,因此我们需要做的就是通过最大化似然函数对模型参数做出点估计(point estimate);

贝叶斯法是将模型参数看成变量,在观察到数据集之前,我们先假设模型参数具有一个概率分布,称之为先验分布(prior distribution),这个代表了我们在观察一个事物之前对该事物的先验认知;有了数据集后,我们运用贝叶斯公式获得模型参数的后验分布(posterior distribution),这一步骤可以理解为通过观察我们调整了对该事物的先验认知从而获得了更加准确的后验认知;

千万不要以为用到了贝叶斯公式的方法就是贝叶斯方法,贝叶斯方法中最核心的是把模型参数看做是变量,没有把模型参数看做是变量的方法是不能算作贝叶斯方法的。

2:本书应用极大似然法和贝叶斯法的具体步骤

1):本书应用极大似然法的具体步骤

(1):构造数据集的似然函数 p(X|θ⃗ ) (如果数据集中数据点被假设是独立且全同分布(i.i.d),则将各数据点对应的概率分布相乘即得到似然函数);

(2):将似然函数取负ln,即得到误差函数 E=lnp(X|θ⃗ ) (结合实际情况,有时候需要在误差函数后面添加一些其他项,比如正则化项);

(3):通过最优化算法最小化误差函数 E,得到误差函数 E 全局最小值或局部最小值所对应的模型参数 θ⃗  最优值;

(4):将上述获得的模型参数 θ⃗  最优值带入模型中做预测。

2):本书应用贝叶斯法的具体步骤

(1):先假设模型参数 θ⃗  的先验分布(prior distribution) p(θ⃗ |α⃗ ) ,其中参数 α⃗  被称之为超参数(hyperparameter) (通常我们会假设先验分布为共轭先验分布,使得参数的先验分布与后验分布具有相同的概率分布形式);

(2):最大化 model evidence p(X|α⃗ ) 以获得超参数 α⃗  最优值 α⃗ opt

p(X|α⃗ )=p(X|θ⃗ )p(θ⃗ |α⃗ )dθ⃗ 

(3):推理(Inference):运用如下的贝叶斯公式得到模型参数的后验分布 p(θ⃗ |X,α⃗ opt)

p(θ⃗ |X,α⃗ opt)=p(X|θ⃗ )p(θ⃗ |α⃗ opt)p(X)

其中 p(X|θ⃗ ) 为数据集的似然函数,超参数 α⃗  已经被采取了固定的值 α⃗ opt (要注明的是求取模型参数的后验分布这一步骤在贝叶斯方法中称之为 Inference stage);

(4):预测(Estimation):将模型参数按如下公式边际化,即得到数据点预测分布 p(x⃗ new|X,α⃗ opt)

p(x⃗ new|X,α⃗ opt)=p(x⃗ new|θ⃗ )p(θ⃗ |X,α⃗ opt)dθ⃗ 

3:三种形式的贝叶斯方法

(1):Fully Bayes method:不仅假设参数有概率分布,同时也要求超参数也有概率分布,因此做预测时不仅对参数边际化,同时也对超参数边际化;

p(x⃗ new|X)=p(x⃗ new|θ⃗ )p(θ⃗ |X,α⃗ )p(α⃗ |X)dθ⃗ dα⃗ 

(2):Empirical Bayes method:先求出超参数的最优值,然后在求取预测分布时仅对参数边际化,PRML 中采取的是 Empirical Bayes;

(3):MAP(poor man’s Bayes) method:不涉及边际化过程,仅仅是最大化模型参数后验概率 p(θ⃗ |X) 获得模型参数 θ⃗  的点推测值。

:有时候我们会看到naive bayes,其关键假设是:条件在某一类 (假设是 Ck 下),观察变量 x⃗  各个成分 x1,...,xD 之间是相互独立的,概率表达如下:

p(x⃗ |Ck)=p(x1|Ck)...p(xD|Ck)

naive bayes 与参数边际化无关,因此其不属于贝叶斯方法的一种

4:极大似然法和贝叶斯方法的优缺点

1:贝叶斯方法与人类看待事物的方法比较契合,毕竟我们人类看待一个事物时是先有一个关于此事物的先验认知,然后通过不断的观察该事物以此来调整我们对该事物的认知;但贝叶斯方法计算复杂,尤其是对参数边际化时,并且有时候我们选择模型参数先验概率分布时并不是依赖于我们的先验认知而只是从数学便利性的角度选择先验分布形式(使得参数先验分布与后验分布具有相同的分布形式);

2:相比于贝叶斯方法,极大似然法的计算会简单很多,但此方法与人类看待事物的方法不是很契合;同时会遭受到过度拟合(overfitting)问题,也就是 low bias and high variance,因此我们往往需要在误差函数后面添加正则化项以此降低模型参数幅度值以减少模型复杂度;

3:当然贝叶斯方法相比于极大似然法有其他一些优点,比如当我们用极大似然法训练模型时,我们不能利用训练集中所有数据点训练模型,因为必须要把一些数据点划分到 validation set 中以便于比较模型,然而贝叶斯方法是能够利用训练集中所有数据点训练模型的,比较模型时只需比较 model evidence p(X)。

三:本书各章小结

1:第一章小结

(1):借助于曲线拟合这个例子,作者向我们展示了极大似然法和贝叶斯方法以及它们之间的一些不同点。同时也向我们展示了贝叶斯方法中核心的两个步骤,即推理(Inference)和预测(prediction),推理即是运用贝叶斯公式求得参数的后验概率分布,预测即是利用参数的后验概率分布对参数进行边际化以此进行推断;

(2):介绍了概率论的一些相关概念,包括概率的sum和product规则( p(x)=yp(x,y),p(x,y)=p(x|y)p(y) )以及怎么计算变量的期待值(expectation)和怎么计算变量与变量之间的协方差(covariance);

(3):介绍了信息论(Information theory)的一些知识,包括了怎么计算离散和连续变量的熵(entropy),以及用于计算衡量变量与变量之间概率分布近似程度的相对熵(relative entropy),同时也介绍了两个非常重要的概念,convex 和 concave 函数。

2:第二章小结

这一章向我们展示了各种各样的概率分布,包括二项式分布,多项式分布和高斯分布,同时介绍了一类非常重要的分布 Exponential Family,前面介绍的这些分布都具有具体的函数形式以及一些参数,因此本章最后介绍了不需要对具体函数形式做一定假设的但能够用于概率密度推测的 Nonparametric Methods。

3:第三,第四,第五,第六和第七章小结

(1):之所以把这五章内容放在一起进行小结是因为这五个章节介绍的模型都是用来解决监督式学习(supervised learning)下的回归(regression)和分类(classification)问题。这五个章节介绍的模型如下:Linear Models(第三和第四章),Neural Networks(第五章),Kernel Methods(第六章)以及 Sparse Kernel Machines(包括了SVM和RVM,第七章);

(2):第三,第四和第五章介绍的模型都利用到了基函数(basis function),第三章介绍的 Linear Models 是用于解决回归问题,第四章介绍的 Linear Models 是用于解决分类问题,同时在第五章介绍的 neural networks 既能用于解决分类又能解决回归问题。作者在介绍这三章内容时采取的思路是:先介绍模型,然后介绍极大似然法,最后介绍贝叶斯方法(先推理后预测)。关于极大似然法和贝叶斯方法更详细的讨论见极大似然法和贝叶斯法;

(3):第六章和第七章介绍的关于 kernel 的方法没有利用基函数,而是假设一个 kernel 被给定。第六章介绍了 kernel 应该要满足的一些性质以及其怎么利用 kernel 将 Gaussian Processes 应用于回归和分类问题;第七章介绍了利用 kernel 的一个具有稀疏解(sparse solution)的重要模型支持矢量机(SVM),但其具有一些缺点,比如其是 discriminant model导致输出结果没有概率解释,鉴于这些缺点,作者紧接着介绍了另外一个具有稀疏解(sparse solution)概率模型相关矢量机(RVM),虽然该模型也利用到了 kernel,但其不要求该 kernel 需要满足第六章介绍的 kernel 应该要满足的一些性质。

4:第八章小结

由于接下来几个章节介绍的概率模型略显复杂,需要使用图模型(graphical models)这一框架去描述,因此作者在第八章专门用一个章节介绍了图模型(graphical models)。作者首先介绍了有向图模型(directed graphical models)并介绍了其一些应用,比如其被用来描述Linear-Gaussian models,然后介绍了怎么利用D-separation规则从有向图中提取变量与变量之间的条件独立性,紧接着无向图模型(undirected graphical models)或者又叫做 Markov Random Fields 被介绍了,最后讲述了怎么将有向图或无向图转化为因子图(factor graphs)以便于推理(求取参数的后验概率),两个非常重要的算法 sum-product 和 max-sum 算法被详细介绍了。

5:第九章和第十二章小结

之所以把这两个章节放在一起是因为这两个章节都提起到了隐变量(latent variabls)及其应用,只不过是第九章介绍了离散隐变量(discrete latent variables),并且介绍了如何利用离散隐变量执行一类非常重要的最优化算法 EM(Expectation and Maximization)算法,第十二章介绍了如何将连续隐变量(continuous latent variables)应用到概率 PCA 和 Factor Analysis 中,在讲解概率PCA时遵循的思路依然是先介绍模型,然后介绍极大似然法,最后介绍贝叶斯方法,当然在第十二章中传统 PCA 和kernel PCA 也被做了比较详细的介绍。

6:第十章和第十一章小结

在应用贝叶斯方法时,参数的后验概率分布和参数的边际化往往是很难解析求解的并且往往需要做出某种近似,因此在第十章介绍了 Variation Inference 和 Expectation Propagation 这两种算法去近似求解参数的后验概率分布;在第十一章作者介绍了如何利用 Sampling Methods 去近似参数的边际化,同时作者也详细介绍了从一个给定的概率分布中如何利用 Sampling Methods 去抽样,其中 Markov Chain Monte Carlo 以及衍生出来的 Gibbs Sampling 被详细提起了。

7:第十三章小结

在第十三章之前作者对数据集中各个数据点做出的一个重要假设是这些数据点是独立且全同分布的(i.i.d),我们也知道这种假设不能适用于所有情况,因此作者在第十三章介绍了sequential data 这种前后数据点相关的情况,并且详细地介绍了适用于这种情况的 Hidden Markov Models(HMM) 和 Linear Dynamical System(LDS) 两种算法,特别要强调的是在这两种模型中,Latent variables 再一次被利用了,其中 HMM 模型对应的是离散隐变量,LDS 模型对应的是连续隐变量,由于有了隐变量,因此在推断这两个模型的参数值时使用的是 EM 算法。

8:第十四章小结

之前书中讲到的都是利用单独的模型来解决问题,但有时如果我们可以将许多模型结合起来求解问题往往能够取得更好的效果,因此作者在第十四章 Combining Models 这一章中介绍了将许多模型结合起来的方法,包括 Committee,Boosting,Tree-based Models 和 Conditional Mixture Models。

你可能感兴趣的:((PRML) 总结)