参与蒋思源 刘晓坤 李亚洲

深度学习贝叶斯,这是一份密集的6天速成课程(视频与PPT)

在 Deep|Bayes 夏季课程中,授课人将讨论贝叶斯方法如何结合深度学习,并在机器学习应用中实现更好的结果。近期研究表明贝叶斯方法的利用可以带来许多好处。学生将学到对理解当前机器学习研究非常重要的方法和技术。他们还将体会贝叶斯方法和强化学习之间的联系,学习神经网络的现代随机优化方法和正则化技术。在课程之后,授课人还设置了实践环节。

  • 项目地址:https://github.com/bayesgroup/deepbayes-2018

  • 视频地址:https://www.youtube.com/playlist?list=PLe5rNUydzV9Q01vWCP9BV7NhJG3j7mz62

  • PPT 地址:https://drive.google.com/drive/folders/1rJ-HTN3sNTvhJXPoXEEhfGlZWtjNY26C

教师

多数讲师和助教都是贝叶斯方法研究团队的成员以及来自世界顶级研究中心的研究者。很多讲师曾经在顶级国际机器学习会议例如 NIPS、ICML、ICCV、CVPR、ICLR、AISTATS 等发表过论文。贝叶斯方法研究团队已经开发了一系列的大学课程,包括贝叶斯方法、深度学习、优化以及概率图模型,拥有大量的教学经验。

学生

该夏季课程面向:

  • 本科生(最好已完成至少两年的大学课程),以及拥有很强数学背景、具备足够机器学习知识(包括深度学习)的硕士生。

  • 想要扩展知识和技能的机器学习领域或相关领域研究者和行业专家。

学习本课程的必备基础

  1. 机器学习的扎实基础,熟悉深度学习

  2. 数学:熟练线性代数和概率论(很重要)。

  3. 编程:Python、PyTorch 和 NumPy。

  4. 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)就可以作为整个模型的优化目标,或者说整个模型的损失函数。在上面的案例中,最大化这个变分下界就代表着找出一些高斯分布,且每一个样本都最可能属于某个高斯分布

整个课程介绍了非常多的理论知识,尤其是关于贝叶斯学派的各种理论。如果读者对数学比较有自信的话,可以详细学一学该系列教程。

入门贝叶斯
202
相关数据
神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

贝叶斯学习技术
Bayesian learning

基于贝叶斯概率定理的学习方法

Dropout技术
Dropout

神经网络训练中防止过拟合的一种技术

判别模型技术
Discriminative Model

在机器学习领域,有一种分类方法将模型分为判别模型和生成模型(generative model)两种。 判别模型是一种对未知数据y与已知数据x之间关系进行建模的方法,是一种基于概率理论的方法。已知输入变量x,判别模型通过构建条件概率P(y|x)分布预测结果,或试图直接从输入x的空间学习映射到标签{0,1}(如感知器算法)的函数。生成模型则是考虑x与y之间的联合分布。 在实际应用中判别模型非常常见,如:逻辑回归(logistic regression),支持向量机(support vector machine), 提升方法(Boosting),条件随机场(conditional random fields),神经网络(neural network),随机森林(random forests)典型的生成模型则包括:高斯混合模型(Gaussian Mixture Model),隐马尔科夫模型(hidden markov model),简单贝叶斯(naive Bayes)等。不难看出两者的区别。

高斯分布技术
Gaussian distribution

正态分布是一个非常常见的连续概率分布。由于中心极限定理(Central Limit Theorem)的广泛应用,正态分布在统计学上非常重要。中心极限定理表明,由一组独立同分布,并且具有有限的数学期望和方差的随机变量X1,X2,X3,...Xn构成的平均随机变量Y近似的服从正态分布当n趋近于无穷。另外众多物理计量是由许多独立随机过程的和构成,因而往往也具有正态分布。

生成模型技术
Generative Model

在概率统计理论中, 生成模型是指能够随机生成观测数据的模型,尤其是在给定某些隐含参数的条件下。 它给观测值和标注数据序列指定一个联合概率分布。 在机器学习中,生成模型可以用来直接对数据建模(例如根据某个变量的概率密度函数进行数据采样),也可以用来建立变量间的条件概率分布。

图像压缩技术
Image compression

图像压缩是数据压缩技术在数字图像上的应用,目的是减少图像数据中的冗余信息,从而用更加高效的格式存储和传输数据。图像压缩可以是有损数据压缩也可以是无损数据压缩。

机器学习技术
Machine Learning

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

映射技术
Mapping

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

损失函数技术
Loss function

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

马尔可夫链技术
Markov chain

马尔可夫链,又称离散时间马尔可夫链,因俄国数学家安德烈·马尔可夫得名,为状态空间中经过从一个状态到另一个状态的转换的随机过程。该过程要求具备“无记忆”的性质:下一状态的概率分布只能由当前状态决定,在时间序列中它前面的事件均与之无关。这种特定类型的“无记忆性”称作马尔可夫性质。

最大似然估计技术
Maximum Likelihood Estimation

极大似然估计是统计学中用来估计概率模型参数的一种方法

过拟合技术
Overfitting

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

概率模型技术
probabilistic models

概率模型(Statistical Model,也稱為Probabilistic Model)是用来描述不同随机变量之间关系的数学模型,通常情况下刻画了一个或多个随机变量之间的相互非确定性的概率关系。 从数学上讲,该模型通常被表达为 ,其中 是观测集合用来描述可能的观测结果, 是 对应的概率分布函数集合。

先验知识技术
prior knowledge

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

概率图模型技术
Probability Graphical Model

在概率论和统计学中,概率图模型(probabilistic graphical model,PGM) ,简称图模型(graphical model,GM),是指一种用图结构来描述多元随机 变量之间条件独立关系的概率模型

强化学习技术
Reinforcement learning

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

变分推断技术
Variational inference

see Variational Bayesian methods (approximation)

变分自编码器技术
Variational autoencoder

变分自编码器可用于对先验数据分布进行建模。从名字上就可以看出,它包括两部分:编码器和解码器。编码器将数据分布的高级特征映射到数据的低级表征,低级表征叫作本征向量(latent vector)。解码器吸收数据的低级表征,然后输出同样数据的高级表征。变分编码器是自动编码器的升级版本,其结构跟自动编码器是类似的,也由编码器和解码器构成。在自动编码器中,需要输入一张图片,然后将一张图片编码之后得到一个隐含向量,这比原始方法的随机取一个随机噪声更好,因为这包含着原图片的信息,然后隐含向量解码得到与原图片对应的照片。但是这样其实并不能任意生成图片,因为没有办法自己去构造隐藏向量,所以它需要通过一张图片输入编码才知道得到的隐含向量是什么,这时就可以通过变分自动编码器来解决这个问题。解决办法就是在编码过程给它增加一些限制,迫使其生成的隐含向量能够粗略的遵循一个标准正态分布,这就是其与一般的自动编码器最大的不同。这样生成一张新图片就比较容易,只需要给它一个标准正态分布的随机隐含向量,这样通过解码器就能够生成想要的图片,而不需要给它一张原始图片先编码。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。