本文转自中国人工智能学会通讯第3期,已获授权,特此感谢!
欢迎人工智能领域技术投稿、约稿、给文章纠错,请发送邮件至heyc@csdn.net
3月3日,中国人工智能学会AIDL第二期【人工智能前沿讲习班】在北京中科院自动化所举行,来自清华大学计算机科学与技术系的朱军副教授分享了题为《贝叶斯学习前沿进展》的演讲。内容主要分为三部分:贝叶斯基本理论、模型和算法;可扩展的贝叶斯方法;深度生成模型。本文为第一部分:贝叶斯基本理论、模型和算法。
非常感谢周老师给这个机会让我跟大家分享一下。我今天想和大家分享的是,在深度学习或者大数据环境下我们怎么去看待相对来说比较传统的一类方法——贝叶斯方法。它是在机器学习和人工智能里比较经典的方法。
类似的报告我之前在CCF ADL 讲过,包括去年暑假周老师做学术主任在广州有过一次报告,大家如果想看相关的工作,我们写了一篇文章,正好我今天讲的大部分思想在这个文章里面有一个更系统的讲述,大家可以下去找这篇文章读。
这次分享主要包括三个部分:
第一部分:基本理论、模型和算法
贝叶斯方法基础
正则化贝叶斯推理和案例
第二部分:可扩展的贝叶斯方法
在线学习
分布式MCMC
第三部分:深度生成模型
第一部分:贝叶斯基础和正则化贝叶斯
贝叶斯方法概念是比较简单的,一般情况下我们做贝叶斯推理,用了一个核心的工具叫贝叶斯定理或者贝叶斯准则,实际上写出来就是这么一个简单的公式,大家学概率基本上都学过这个。公式里有几个基本的对象,我们用θ 描述模型的参数,这个模型可以是神经网络、线性模型,或者SVM,参数都用θ 来描述;D 是我们的训练集;π(θ) 是先验分布,是我们看到数据之前对模型本身分布的描述;p(D|θ) 是似然函数,给定一个模型θ 的情况下描述这个数据的似然。我们的目标是想获得这个后验分布,是看到数据之后再重新看模型本身的分布情况。这是1763 年当时贝叶斯生前没有发表的文章里面,最早阐述了这个公式,最后正式发表了。
在机器学习里面,贝叶斯法则可以做什么?
首先,预测问题。我们用大M来描述model class,比如线性模型、非线性模型,model class里面有多个具体的模型,我们还是用参数θ表示。对新来的样本做一个预测,比如算它的似然,这样可以用前边推出来的后验分布来做一个积分。这个是给定模型下样本的似然,这是所有可能模型的分布。本质上是做了一个平均,这个思想实际上跟周老师的集成学习的思想是比较相近的,我们也是对很多种模型做了一个加权的平均,只是说在这个地方模型可能有无限多个,我们是用概率分布来去描述它。
这个似然函数通常假设在给定模型参数的情况下,测试数据与训练数据是独立的,这就是我们通常说的独立同分布的假设。
除了做预测,我们还可以做不同模型的比较、模型的选择。比如说我们要做分类问题,到底是要选线性的模型还是深度学习的非线性模型,这是在做模型选择的问题。这个问题可以描述成这样:我们用M1表示一个model class,可能是一个线性模型,我们用M2表示另外一个model class,是非线性模型,我们在同样数据集D的情况下,我们可以去比较这两个量哪个大,这个量是描述的在M1下我们观察到训练集的一个似然,另外一个是在M2的情况下观察的数据集似然,可以通过这个比较看我应该选择哪一种模型,这是一个用贝叶斯方法做模型选择的一个基本的规则。
为什么要用贝叶斯方法?