Bayes statistics近况简介

近来实在太忙,没有机会接着写Ferguson的那篇paper的介绍,只好暂且贴一些其他的文章蒙混一下。刚刚看到有童鞋在问Bayes statistics的情况,以及和生统的比较,觉得可以简单介绍一下,以帮助大家更好的在各种不同的方向之间选择。

关于Bayes统计和传统统计的基本区别在之前的帖子里已经大概提到了。这里主要想比较一下这两种方法近来的发展上的区别,以及将来的趋势。很多同学都觉得业界不用Bayes,我觉得这个观点在渐渐过时,现在业界已经在逐渐接受而且更加欢迎Bayes的方法。这主要是近来bayes和machine learning方面紧密联系,以及Bayes方法本身的特点决定的。这我们在后面会讲。传统统计的方法把所有问题转化成一个最优化问题,而Bayes把所有问题转化成一个sampling问题,这点不同就直接导致了两种方法的研究侧重点不同。如果一个问题被划归为最优化问题,你面临的最大困难是如果刻画估计的uncertainty,所以frequentist的重点就是研究各种asymptotic的性质,然后用normal distribution去近似。但如果一个问题被转化为sampling问题,那么最大的困难就是如何实现这个sampling,所以Bayesian研究的很大重点就在于如何有效的从后验分布里抽样。但是这两个问题又是可以互相转化的。对于frequentist而言,如果不想使用传统的Wald’s interval之类的方法去刻画uncertainty,那么可以bootstrap代替。而对于Bayesian而言,如果嫌sampling太慢的话,也可以用Laplacian approximation之类的来代替。所以在实际使用上,两种方法之间没有明确的界限,哪种方便就用哪种。实际上很多时候bayes会比传统方法方便很多,举例来说,如果同样得到了对一个参数\theta的估计,而我们实际还关心另一个参数g(\theta),那么如何得到g(\theta)的uncertainty呢?如果用Bayes的方法,你只要对每个抽样得到的\theta点做个g的变换,就可以得到g(\theta)的后验分布了。但是如果是frequentist,你可能需要delta method去近似,而且结果还可能很糟糕。到头来可能还是只能用bootstrap这种类似于bayes的sampling方法。当然Bayes困扰使用者的最大问题就是prior的选择问题,如果确实有先验信息,那么这是一个优势。但是如果没有,大家可能会担心糟糕的prior很可能会导致不好的估计结果。不过实际上选择一些noninformative的prior的话可以完全避开这个问题。其次利用empirical Bayes的方法(虽然这是所有Bayesian鄙视的方法,而且有重复利用数据的危险),也可以轻易获得一个里估计结果很近的prior。

业界里偏向于frequentist是历史的原因。Bayes要算到1992才真正开始发展。一方面虽然MCMC很早就被提出来,但是由于计算机技术上的落后,这个方法很难被有效使用。另一方面Gibbs sampler是Alan他们在1992年第一次使用到bayes估计当中的。Gibbs sampler作为一种特殊的MCMC,是非常高效及快速的。于是Bayes方法从那年之后开始进入了一个全新的发展阶段。现在来回答之前提出来的问题,为什么bayes会越来越受欢迎呢?这主要源自于Bayes在modeling上的优势,以及在计算上的简洁。首先,正因为可以加入prior,Bayes方法可以很轻易的加入一些使用者希望拥有的性质,而且这些性质很多是不能被写进likelihood里面的。比如现在很火的nonparametric baye领域,利用Dirichlet process可以很好的处理infinite mixture model。infinite mixture model可以被用来做clustering。这里使用DP的好处是你可以不用像frequentist或者传统ML那样事先假定有多少个cluster,而是posterior能直接决定cluster的数目,以及cluster的结果。在比如Natural language processing (NLP)里的Latent Dirichlet Allocation (LDA)模型,如果使用者希望topic之间不是简单的独立,而是有相互排斥的性质,那么就可以在prior里加入repulsive process,这些模型可能连likelihood都写不出来,只能通过posterior sampling来做inference. 又比如现在大热的frequentist 的 high dimensional 问题,那些penalized的方法都可以看成是加入了一个prior,比如lasso对应的就是Laplacian distribution。第二,Bayes能很轻松的实现hierarchical modeling,这在frequentist里面被称为random effect model。frequentist里要估计一个一层的hierarchical structure就已经足够复杂了,但是Bayes通过sampling的方法可以轻松的估计所有parameter。而hierarchical modeling本身就是用来model complex problem的,比如某些变量之间有一定的同质性,某些又有一定的排异性,通过hierarchical structure就可以很简单的刻画这些问题,比如在meta analysis上的运用。第三,在计算上,当一个问题的规模很大时,最优化会有很严重的问题。比如要使用newton法的话,储存一个Hessian矩阵占用的空间可能就非常大了,而且计算一个Hessian矩阵需要调用计算likelihood的次数也会很多,结果会占用大量资源,而且收敛也很缓慢。MCMC的话,每次抽样只需要计算Likelihood一次,而且proposal process选的合理的话,不需要储存任何的大型矩阵,在计算资源上会节省很多。不过唯一的问题就是收敛速度慢,所以与之对应现在有了很多其他的抽样方法,比如particle filtering, Hamilton MC 等等。除了sampling以外,Baysian还发展了另外一套近似方法来避开收敛速度慢的问题,比如variation Bayes以及INLA。这写方法主要是利用一些形式简单的函数去近似posterior distribution来避免sampling,可以被看成是Laplacian approximation的发展。

个人感觉machine learning领域已经越来越重视Bayes的方法了,就是因为Bayes方法建模简单,计算方便,比如刚才的LDA模型。而且ML本身也不太care所谓的理论性质渐近性质如何。随着在ML里的广泛使用,Bayes也开始逐渐被业界接受,现在很多大型的IT公司,以及某些金融公司也会专门招聘一些Bayes领域的人。我想说一个学校侧重点是Bayes的话,不代表以后就一定去做Bayes了,往往两个领域里的东西你都能学到。另外Bayes里很多东西需要经验,而frequentist里的东西很多从书中就可以掌握。所以如果以后并不打算从事理论研究,不需要大量证明训练的话,去一个Bayes的系掌握两种不同的统计方法也未尝不是一个好的选择。

最后总结一下近来Bayes的发展作为结束。现在最热的领域当然是nonparametric bayes,包括Dirichlet process有关的一大堆特殊的prior的性质,以及对应的sampling方法。关于这个我可能会写一系列的介绍性文章(主要是读完paper后的理解)。第二就是Bayes处理high dimensional problem的方法,同样也是通过一些神奇的Prior比如Horse shore来实现,而且这些方法的好处是同时可以获得variable selection的uncertainty,这对于frequentist的方法来说是很难的。第三是单纯的sampling或者posterior approximation 算法上的发展,像之前已经提到的SMC, HMC, VB&EP,有很多方法效果很好,但是理论上都还没有被证明有效,所以还有很多研究的空间。第四是manifold&shape learning有关的东西,以及和information theory领域的结合。利用nonparametric bayes本身的优势可以很好的处理manifold learning的问题,这些方法最后很有可能被用在图象处理及相关领域。最后就是Big data的问题,当然这也是frequentist 关心的问题,也是目前工业界都关心的问题。hierarchical modeling可以是一种ad-hoc的解决方法,不过并不永远work。GPU computing有可能成为解决的手段之一,不过也不好说。Big data是现在研究重点所在。Potential的应用不可估量。

本文谢绝转载。