当前位置: 积分机 >> 积分机前景 >> 清华大学计算机科学与技术系朱军教授机器学
θ)是似然函数,给定一个模型θ的情况下描述这个数据的似然;我们的目标是想获得这个后验分布,是看到数据之后我们再重新看模型本身的分布情况。这是年当时贝叶斯生前没有发表的文章里面,最早阐述了这个公式,最后正式发表了。在机器学习里面,贝叶斯法则可以做什么?首先,预测问题。我们用大M来描述modelclass,比如线性模型、非线性模型,modelclass里面有多个具体的模型,我们还是用参数θ表示。对新来的样本做一个预测,比如算它的似然,这样可以用前边推出来的后验分布来做一个积分。这个是给定模型下样本的似然,这是所有可能模型的分布。本质上是做了一个平均,这个思想实际上跟周老师的集成学习的思想是比较相近的,我们也是对很多种模型做了一个加权的平均,只是说在这个地方模型可能有无限多个,我们是用概率分布来去描述它。这个似然函数通常假设在给定模型参数的情况下,测试数据与训练数据是独立的,这就是我们通常说的独立同分布的假设。除了做预测,我们还可以做不同模型的比较、模型的选择。比如说我们要做分类问题,到底是要选线性的模型还是深度学习的非线性模型,这是在做模型选择的问题。这个问题可以描述成这样:我们用M1表示一个modelclass,可能是一个线性模型,我们用M2表示另外一个modelclass,是非线性模型,我们在同样数据集D的情况下,我们可以去比较这两个量哪个大,这个量是描述的在M1下我们观察到训练集的一个似然,另外一个是在M2的情况下观察的数据集似然,可以通过这个比较看我应该选择哪一种模型,这是一个用贝叶斯方法做模型选择的一个基本的规则。为什么要用贝叶斯方法?做贝叶斯的人会告诉你很多的理由,我们后边从例子里边也会看到一些答案。这里给大家简单讲一个,概率论的结果告诉我们实际上在很多情况下对数据的建模是存在这种贝叶斯的模型来刻画的。这有一个基本性质叫InfiniteExchangeability,假如你数据有N个样本,如果将它们任意交换顺序,这些数据的联合分布不变化,也即是我们通常说的和序列无关,那么它的联合分布可以写成贝叶斯的形式---存在一个模型和对应的分布,你通过积分的形式可以刻画整个分布。如果用图示画一下,在给定这个模型的情况下,数据是完全独立的,我们叫条件独立性,这是概率图模型里的一个非常重要的概念。稍微提一点,可交换性比前面讲的独立同分布更广泛一点,可交换的数据可以不是独立同分布的。另外,这个定理只告诉你存在,但是后面的问题是我们不知道具体的模型应该是什么样的,比如说是线性模型、非线性模型,用什么样的模型去刻画,这是统计建模要解决的问题。先验(Prior)从哪里来?在贝叶斯里有两个流派,一个是客观贝叶斯,另一个是主观贝叶斯。所谓客观贝叶斯,就是希望能够把先验的影响尽量弱化,所以会研究一些noninformativepriors,就是你用贝叶斯的结果像用统计的方法得到结果一样,有一些统计性质。而主观贝叶斯,实际上是更希望利用贝叶斯框架的灵活性,因为贝叶斯框架给了你一个先验的分布,你可以在先验上做文章,我们后边也会有些例子来讲怎么去利用先验提供的灵活性,来做具体的学习任务或者解决问题。用主观贝叶斯的好处之一是,当你的数据足够多的时候,可以通过先验引入一些知识来帮助你学习,这个尤其在交叉学科里,比如用贝叶斯方法做认知或者神经科学,是大家比较喜欢用的方法。当然还有另外一些具体的技术,我可以相信这个prior,但是我尽量弱化prior里边参数的影响,这里面有一种技术叫“层次的prior”。有一个基本的假设,这个π里面的参数叫超参数,它离我这个产生数据的模型越远的话影响就越弱,实际上利用这种基本假设,就可以构建多层的prior。从这里面可以看到,贝叶斯本身就是一个多层的,和深度学习的多层表示本质是一样的,只不过这里边完全用概率的方式来刻画。当然还有一些近似的方法,做一些empiricalprior,通过数据估计出来。好处是计算相对比较简单,不好的地方是多次用训练数据,会得到一些过拟合的问题。我们如何计算积分?我们前面已经看到,不管是在最基本的贝叶斯运算或者是在多层先验里面都会反复用到积分运算,这是在用贝叶斯方法时面临的最讨厌的事情,因为这里的积分不像我们学微积分时的那种一元或者二元简单的积分运算,这里的积分可能是非常高维的积分。假设我们用一个线性模型,当特征维时,我这个就是维的积分,如果更高维的,比如说上千、上万维,这个积分相应更高维。这里面有很重要的计算问题,我怎么用数值的方法来算这个积分。这是在这种不确定性或者概率推理里边要解决的主要目标。近似贝叶斯推理我用一页PPT简单给大家介绍了一下。因为积分非常难算,所以通常情况下会用一些近似,尤其是在机器学习里面,大家用的贝叶斯方法通常是一个近似的贝叶斯推理。这里面我列举了几个比较常用的经典近似贝叶斯推理的方法。首先第一种,变分的方法。变分的基本原理是把一个要解的问题,通过引入一个变量变成一个优化的问题。这样做的好处是,你可以在优化问题中引入一些约束,让问题简化,以达到快速求解的过程;但是也会带来坏处,如果你的约束比较严格的话,近似的程度就会变差。下面一种是非常通用而且理论上精确的方法,它是基于随机模拟的,我们叫MCMC的方法,它是通过构造一个随机过程来逐渐逼近你要的分布,通过这个随机过程不断的采样,达到刻画目标分布的结果。现在面临的挑战是:1)当数据比较多的时候,怎么去做这个计算;2)在高维空间里面怎么去做随机的模拟;3)当我们的模型变得复杂的时候,比如最后会给大家讲的深度产生式模型里边有多层的隐含变量,像深度学习一样,这种模型下我怎么还去做MCMC。这些挑战同样存在于变分近似方法里面,现在仍然是研究的热点。还有一些相关的,比如像EP或者拉普拉斯近似,基本上可以理解为变分的一种特殊类别。贝叶斯方法面临的挑战其实我前面已经给大家简单讲了一些,这个是我们的一个总结,如果想去做贝叶斯机器学习的话,基本面临着几个方面的问题。第一点,是基本理论上的问题。我前面讲的贝叶斯方法概念非常简单,它的核心是贝叶斯定理。贝叶斯定理已经多年了,它存在一些自己的局限,我们怎么从基本信息处理准则的角度来重新理解它,去做更灵活的推理。第二点,是关于计算方面的。有了模型、有了推理框架之后我怎么去做高效的计算、怎么做高精度的计算。第三点,对不同场景怎么去做建模。将贝叶斯方法应用到不同场景时,你要去理解你的问题,找到合适的模型。我后面基本上围绕这三个方面给大家讲。第一个方面,给大家提出一种比较新的观点来看经典的贝叶斯定理,告诉大家怎么去扩展它的灵活性。第二个是关于Scalability,我怎么算比较快。最后一个,贝叶斯方法和深度学习怎么结合,既利用深度学习的好处又保持贝叶斯在概率建模和推理的能力。KL散度我们先从最基本的概念开始,可能大家学过模式识别或者信号处理,都会接触过这个概念,叫KL散度,它描述两个概率分布之间的差异有多大。首先,我们可以通过优化的方式重新审视贝叶斯推理。对任意一个分布我可以来做这件事情,这个是我们的目标P,我们可以找一个Q分布,它是一个welldefined的分布,我可以通过最小化它们之间的KL,取最小值的时候两个是相等的,这是非常简单的道理。我们可以把这个基本过程用到贝叶斯定理里。贝叶斯推理的目标是找到这个后验分布,将它代入这个目标函数里,现在Q是我假设的分布。这样,我们得到了一个优化的问题。这是我们原来的贝叶斯定理,如果这个目标函数等于0的话,实际上Q等于我们想要的P(C/D)的后验分布。目标函数的第一项是限制我们的后验分布不能离先验分布太远,后面一项实际上是描述了对数据集的拟合程度。这样的话,我们获得了一种新的角度来看贝叶斯推理在干吗。有了这种新的理解之后,我们可以做的事情有很多。贝叶斯定理作为一种信息处理准则实际上,我们说贝叶斯定理或者贝叶斯推理是信息处理的一种准则。在信息论里,我们有一个通道,有输入和输出。在做贝叶斯推理时,我们的输入是一个先验分布和一个似然函数,输出是一个后验分布。有了这种观点之后,我们可以做很多扩展。大家可以想,我的输入、输出可以保持不变,但我可以替换信息处理的准则。我可以把这里边信息处理的准则拿掉,做的比经典贝叶斯更加普适。这种基于优化的解释,实际上在上世纪80年代就有统计学家提出过,E.T.Jaynes是比较有名的统计学家,对我们前面讲的优化解释做了一些
转载请注明:http://www.aideyishus.com/lkcf/7247.html