从拉斯维加斯到蒙特卡洛:机器学习系统中的随机算法

随机性和不确定性是现实世界中许多机器学习场景的关键要素。随机化方法是机器学习领域,它为输入中不确定性和随机性因素的算法建模。很多人可能都熟悉机器学习领域中最著名的随机算法:蒙特卡洛方法。蒙特卡洛技术属于随机算法的范畴,它试图为一个具有一定随机性的问题提供答案。在这个领域,蒙特卡洛方法被视为另一个算法的替代品:拉斯维加斯。

拉斯维加斯方法

蒙特卡罗和拉斯维加斯技术的主要区别在于输出的准确性。拉斯维加斯方法总是提供一个确切的答案,而蒙特卡洛方法是返回的答案与随机数量的误差。显然,蒙特卡洛系统的误差程度随着数据或计算模型等资源的增加而减小。

拉斯维加斯算法的一个典型例子是随机快速排序算法,它随机选取一个pivot,然后将元素分成三组:所有小于pivot的元素、所有等于pivot的元素以及所有大于pivot的元素。

随机快速排序方法往往消耗大量资源,但保证了确切的答案。因此,在具有少量潜在答案的情景中,倾向于推荐拉斯维加斯方法。

尽管拉斯维加斯模型在理论上看起来很棒,但它们在许多深度学习场景中都是不切实际的,这些场景如此之大,以至于永远无法产生精确答案。蒙特卡罗技术通过提高计算图的效率来解决拉斯维加斯算法的一些局限性,从而在答案中引入一定程度的随机性。毫不奇怪,蒙特卡罗技术在处理多维,大容量数据集的深度学习场景中变得非常流行。

蒙特卡罗方法

蒙特卡罗方法在深度学习系统中的主要应用之一是从表示数据集的一些概率分布中抽取样本。这通常被称为蒙特卡罗采样,并且在历史上被广泛用于解决高度复杂的数据估计问题。在一个最臭名昭着的例子中,法国数学家Pierre-Simon Laplace曾经提出一个利用蒙特卡罗抽样估计pi值的方法。

在深度学习系统的背景下,蒙特卡罗采样方法具有非常着名的应用。例如,通常利用蒙特卡罗采样来选择近似于原始数据集的训练数据集的分布。蒙特卡罗方法也在正则化或优化技术中起作用,估计输出数据集而无需评估整个计算图。

有几种蒙特卡罗技术已在现代深度学习平台中广泛实施。蒙特卡洛家族中最着名的成员是将马尔科夫链带入随机世界的技术,通常称为马尔可夫链蒙特卡罗方法(MCMC)。

MCMC

MCMC模型的主要目的是使用马尔可夫随机游走算法获得关于分布的信息。这是MCMC技术能够学习概率分布的基本属性而不必对其所有成员进行抽样的一种奇妙的说法。读这篇文章你可能会感到困惑。蒙特卡罗方法的作用不是从分布中抽取例子吗?如果是这样,MCMC又有什么不同呢?

MCMC方法的主要区别在于使用马尔可夫链使用特殊的顺序过程生成样本。虽然独立的蒙特卡罗方法能够从分布中生成样本,但是在许多情况下,没有可处理的方法从数据集中提取精确的示例。马尔可夫链是传统蒙特卡罗方法的补充,它使用了一个模型,其中每个随机样本都被用作生成下一个随机样本(因此称为链)的垫脚石。链的一个独特好处是,尽管每个新样本依赖于它之前的样本,但新样本不依赖于前一个样本之前的任何样本(这是“马尔科夫”属性)。

MCMC in Action

让我们用机器学习文献中的一个经典例子来说明MCMC模型的价值。假设一个讲师对学生群体的平均考试成绩感兴趣。虽然平均分是未知的,但是知道分数是正态分布的,标准差是15。到目前为止,讲师只观察了一个学生的测试分数:100。可以使用MCMC从目标分布中提取样本,在这种情况下是后验概率,表示给定总体均值的每个可能值的概率。

为了从测试分数的分布中抽取样本,MCMC从一个初始的猜测开始:从分布中抽取一个值。假设这个初始值是110。然后用MCMC从最初的猜测中得到一系列新的样品。每一个新样本都由两个简单的步骤产生:首先,通过向最近的样本如果你不想打工,如果你遇到了挫折瓶颈,如果你不想用自己的青春成就他人的梦想,我愿意帮助你改变你的人生命运,了解创业加微信一商一耳零漆二零久巴零添加一个小的随机perturbation来创建新样本的提案;其次,这个新提案要么被作为新样本接受,要么被拒绝(在这种情况下,旧的样本被保留)。通过不断重复这个过程,MCMC模型应该产生一系列非常接近原始概率分布的样本。

如果我们接受随机性是社会经济动力学的一个关键特征,那么构建理解随机输入的算法是机器学习主流采用的一个重要因素。拉斯维加斯和蒙特卡罗方法都在提高机器学习方法对随机性的适应性方面发挥着重要作用。我们可以在许多流行的深度学习框架中找到这两类算法的几种实现。

推荐阅读更多精彩内容