选自GitHub,Bayesian Methods Research Group,机器之心整理。git
在 Deep|Bayes 夏季课程中,授课人将讨论贝叶斯方法如何结合深度学习,并在机器学习应用中实现更好的结果。近期研究代表贝叶斯方法的利用能够带来许多好处。学生将学到对理解当前机器学习研究很是重要的方法和技术。他们还将体会贝叶斯方法和强化学习之间的联系,学习神经网络的现代随机优化方法和正则化技术。在课程以后,授课人还设置了实践环节。github
项目地址:github.com/bayesgroup/…算法
视频地址:www.youtube.com/playlist?li…编程
PPT 地址:drive.google.com/drive/folde…网络
教师机器学习
多数讲师和助教都是贝叶斯方法研究团队的成员以及来自世界顶级研究中心的研究者。不少讲师曾经在顶级国际机器学习会议例如 NIPS、ICML、ICCV、CVPR、ICLR、AISTATS 等发表过论文。贝叶斯方法研究团队已经开发了一系列的大学课程,包括贝叶斯方法、深度学习、优化以及几率图模型,拥有大量的教学经验。分布式
学生函数
该夏季课程面向:性能
本科生(最好已完成至少两年的大学课程),以及拥有很强数学背景、具有足够机器学习知识(包括深度学习)的硕士生。学习
想要扩展知识和技能的机器学习领域或相关领域研究者和行业专家。
学习本课程的必备基础
机器学习的扎实基础,熟悉深度学习。
数学:熟练线性代数和几率论(很重要)。
编程:Python、PyTorch 和 NumPy。
Deep|Bayes 2018 夏季课程中使用英语,所以学生应该熟悉技术英语。
我在 Deep|Bayes 能学到什么?
贝叶斯方法为何(在机器学习和平常生活中)这么有用?随机性究竟是什么?
隐变量模型。如何训练模型识别在训练前未知的模式?
可扩展的几率模型。为何将几率推断问题转换为优化问题是有用的?
强化学习和贝叶斯方法之间的联系。如何训练随机计算图?
自动 Dropout 率的微调。神经网络会过拟合吗?(会的)
随机优化。如何以比计算一个点的函数值更快的速度来优化函数?
该课程的目标是展现在深度学习中使用贝叶斯方法能够扩展其应用范围,并提高性能。尽管机器学习中有不少不一样的问题设定,但贝叶斯网络的几率推断能够用类似的方式来解决它们。你,心动了吗?
课程主要内容
整个课程涉及贝叶斯学习的方方面面,从最基础的贝叶斯原理到比较难的变分推断和马尔可夫链蒙特卡洛方法。如下展现了整个课程的主题列表,机器之心将简要介绍部分课程内容。
第一天:
贝叶斯方法简介
贝叶斯推理
隐变量模型和 EM 算法
EM 算法
次日:
随机优化简介
可扩展贝叶斯方法
变分自编码器
狄利克雷隐变量
第三天:
变分推断高级方法
变分推断视角下的强化学习
强化学习
分布式强化学习
第四天:
生成模型
对抗学习
扩展再参数化的技巧
第五天:
高斯过程
贝叶斯优化
深度高斯过程
马尔可夫链蒙特卡洛方法
随机马尔可夫链蒙特卡洛方法
第六天:
贝叶斯神经网络和变分 Dropout
稀疏变分 Dropout 和方差网络
信息瓶颈
整个课程须要六天才能完成,且每一天的的课程量都很是大,所以机器之心只简要介绍最基本的贝叶斯方法和隐变量模型,其中贝叶斯方法是整个课程的核心思想,而隐变量模型又是生成模型等不少高级方法的基础。
贝叶斯方法简介
咱们首先围绕「盲人摸象」的例子来介绍贝叶斯定理,而后简单描述频率学派和贝叶斯学派的区别。
1 贝叶斯定理:
首先贝叶斯定理的基本形式为
即后验=似然度 x 先验/证据
形式化的样子是
如今咱们开始讨论「盲人摸象」问题。
一群「盲人」在摸一头大象,试图猜想摸的是什么东西,然而没有一我的猜的是正确的。在不肯定的世界里,这就是咱们在用几率论理解世界时的样子。
为简单起见,咱们把问题设置得简单一些:一群「盲人」在摸一头大象,而且知道这是一头大象,他们但愿根据摸到的东西猜想大象的重量。
贝叶斯方法是怎么解决这个问题的呢?
咱们假设这些盲人之间会互相交流观察结果,而且都拥有必定的共同常识,也就是对大象重量的最初猜想:
而后他们能够这样:
第一我的的观察结果是摸到了尾巴,以及尾巴的长度 y1,而后从新猜想大象的重量;
第二我的将第一我的的猜想做为先验,而且观察结果是摸到了肚子,以及肚子的面积 y2,而后再次猜想大象的重量;
第三我的同理,根据第二我的的猜想,继续观察、猜想……
在此过程当中,他们一开始的共有常识、大象的猜想重量即先验 P(x),第一我的的观察结果即似然度 P(y1|x),观察结果自己出现的可能性就是证据 P(y1),最后就获得的是 P(x|y1),也就是根据观察结果 y 获得的大象重量为 x 的可能性(几率分布):
而第二我的在此基础上,将能获得 P(x|y1,y2):
第三我的将能获得 P(x|y1,y2,y3)……
好了,随着观察报告的增长,这头大象的重量也愈来愈藏不住了(峰值变得尖锐):
固然,授课人在课程中会很详细地把概念一步一步讲清楚,包括条件分布、联合分布、边缘分布之间的关系,以及乘积规则、和规则的介绍,能够把上面这个例子涉及的各个概念串联起来,帮助学生理解得更加透彻。
2 频率学派和贝叶斯学派的联系和区别:
频率学派不假设任何的先验知识,不参照过去的经验,只按照当前已有的数据进行几率推断。而贝叶斯学派会假设先验知识的存在(猜想大象的重量),而后再用采样逐渐修改先验知识并逼近真实知识。但实际上,在数据量趋近无穷时,频率学派和贝叶斯学派获得的结果是同样的,也就是说频率方法是贝叶斯方法的极限。
以上就是贝叶斯方法的基础理论部分的大体内容,以后还有生成、判别模型的区别,贝叶斯训练过程以及贝叶斯方法优点的讨论。
隐变量模型
前面简要介绍了贝叶斯方法的核心思想贝叶斯定理,而在这一章节中,Dmitry Vetrov 重点介绍了隐变量模型。隐变量模型是不少复杂方法的基础,例如在变分自编码器这一辈子成模型中,咱们但愿将图像压缩为一系列的隐变量,这些隐变量表示了图像的高级语义信息,例如图像主体的倾角、颜色和位置等。
这一部分咱们会根据 Dmitry Vetrov 介绍的内容讨论隐变量模型的直观概念、KL 散度、混合分布和变分下界等。
如前所述,VAE 最大的优点即中间编码的短向量表明了图像的某些语义特征,但又由于咱们不能明确地知道具体是哪些图像特征,所以咱们能够把这个短向量称之为隐变量。直观上来讲,彻底从总体上一个个像素生成图像是很是困难的,由于咱们须要考虑的可能性太多。而若是先决定要生成图像的特征,再根据这幅蓝图生成图像就会容易不少。
VAE 正是这样,先学习如何将图像正确地压缩为一组隐变量,而后再学习如何根据隐变量生成图像。当模型完成学习后,咱们给定任意一组隐变量,模型都会尝试生成正确的图像。这也就是隐变量模型的直观概念。
KL 散度通常做为两个分布间距离的度量方法,它经常使用于生成模型的损失函数。如下展现了 KL 散度的直观理解,即分布 Q(z) 与分布 P(Z) 之间越重合,那么 KL 散度就越小,两个分布之间的距离就越近。
在离散型变量的状况下,KL 散度衡量的是,当咱们使用一种被设计成可以使几率分布 Q 产生的消息的长度最小的编码,发送包含由几率分布 P 产生的符号的消息时,所须要的额外信息量。KL 散度有不少有用的性质,最重要的是它是非负的。KL 散度为 0 当且仅当 P 和 Q 在离散型变量的状况下是相同的分布,或者在连续型变量的状况下是 『几乎到处』相同的。
随后 Dmitry Vetrov 展现了隐变量建模的案例,若是咱们有一些服从未知高斯分布的样本,那么咱们能够用最大似然估计或点估计等方法将该未知分布的均值和方差推断出来。
而如今若是咱们假设有一组采自不一样高斯分布的样本,且咱们须要估计这些高斯分布的参数。这个问题看上去不能解决,但若是咱们知道哪些样本是从具体哪个高斯分布中采样,这个问题就比较容易解决。
可是若是咱们不知道样本是从哪一个高斯分布中采样的,那么咱们就只能使用隐变量模型。它主要的思想即先估计这些样本属于哪个高斯分布,也就是将样本映射到隐变量「均值」和「方差」。而后再基于隐变量完成对三个高斯分布的建模。
随后顺着这个想法,咱们能够构建一个混合高斯模型,并但愿将数据编码为隐变量 Z,再根据该隐变量完成建模。以下所示当咱们不知道隐变量 Z 的状况下,最大化从 Z 中采样出样本 X 的几率,就能推导出最大化变分下界,这也是变分自编码器最核心的表达式。
变分自编码器中最大化变分下界(ELBO)就能够做为整个模型的优化目标,或者说整个模型的损失函数。在上面的案例中,最大化这个变分下界就表明着找出一些高斯分布,且每个样本都最可能属于某个高斯分布。
整个课程介绍了很是多的理论知识,尤为是关于贝叶斯学派的各类理论。若是读者对数学比较有自信的话,能够详细学一学该系列教程。