您好、欢迎来到现金彩票网!
当前位置:国民彩票app下载 > 高斯式分布 >

AlphaGo Zero用它来调参?【高斯过程】到底有何过人之处?

发布时间:2019-05-15 08:25 来源:未知 编辑:admin

  原标题:AlphaGo Zero用它来调参?【高斯过程】到底有何过人之处?

  高斯过程可能不是当前机器学习最火的研究方向,但仍然在很多前沿的研究中被使用到——例如,最近在AlphaGo Zero中自动调整MCTS超参数就使用了它。在建模能力和进行不确定性估计方面,它们具有非常高的易用性。

  然而,高斯过程很难掌握,尤其是当你习惯了深度学习中其他常见的模型之后。所以本文希望在具备相当少的ML知识背景下,对高斯过程提供一个直观的理论介绍,请学习者下载notebook并实现本文中提到的所有代码。

  高斯过程(Gaussian process, GP)是一个强大的模型,可以用来表示函数的分布。机器学习中的大多数现代技术都倾向于通过参数化函数,然后对这些参数(例如线性回归中的权重)进行建模来避免这种情况。

  然而,GP是直接对函数建模的非参模型。这种方法带来的一个非常重要的好处是:不仅可以拟合任何黑箱函数,还可以拟合我们的不确定性。量化不确定性是非常有价值的——例如,如果允许我们随意探索(需要更多的数据),我们就可以选择尽可能高效地探索最不确定的领域。这是贝叶斯优化背后的主要思想。

  如果你给我几张猫和狗的照片作为学习资料,然后给我一张新的猫的照片让我分类——我应该给出一个置信度相当高的预测。但是如果你给我一张鸵鸟的照片,强迫我判断它是猫还是狗——我最好还是给出一个置信度非常低的预测。

  对于这个介绍,我们将考虑一个没有噪声的简单回归模型设置(但GP可以扩展到多维和噪声数据):

  GP背后的关键思想是可以使用无限维多元高斯分布拟合函数。换句话说,输入空间中的每个点与一个随机变量相关联,并将多元高斯分布用来拟合这些点的联合分布。

  那么,这究竟意味着什么呢?让我们从一个更简单的情况开始:一个二维高斯。已知:

  通常它是高度表示概率密度的3D钟形曲线。但是,假如不是表示整个分布,我们只需要从分布中抽样。然后我们将得到两个值,我们可以绘制点d并在它们之间画一条线。

  观察图中的这些直线,看起来像我们仅仅抽取了10个线性函数样本……如果我们现在使用20维的高斯函数,依次连接每个样本点,会发生什么样的变化呢?

  这些绝对看起来像多个函数,但相对于我们的目的,它们看起来噪声太大所以不可用。让我们进一步考虑可以从这些样本中得到什么,以及如何改变分布从而获得更好的样本……

  多元高斯有两个参数,即均值和协方差矩阵。如果我们改变了均值的话,我们只会改变整体趋势(即如果均值是上升的整数,如np.arange(D),那么样本会呈现出整体正向线性趋势),但是仍然会出现锯齿形的噪声形状。出于这个原因,我们将GP的均值设置为0——它们实际上已经足够强大,可以在不改变均值的情况下拟合各种函数。

  相反,我们需要一些平滑的概念:即如果两个输入点彼此邻近,那么我们期望这些点的函数值是相似的。就我们的模型而言,对用于相邻点的随机变量在它们的联合分布(即高斯协方差)下采样时应该具有相似的值。

  这些点的协方差被定义为高斯的协方差矩阵。假设我们有N维高斯模型y0,…yN,协方差矩阵Σ是N╳N维且它的第(i,j)个元素是Σij = cov(yi,yj)。换句话说,Σ是对称的而且存储着所有随机变量的联合模型的成对协方差。

  那么如何定义我们的协方差函数呢?这时大量关于核的文献可以派上用场。我们将选择平方指数核(最简单的形式)来达到我们的目的,定义如下:

  我们可以绘制这个核函数来展示它在x = x’时是最大的,然后随着两个输入的不同开始平滑的下降

  因此,为了得到我们想要的那种平滑性,我们将考虑在xi和xj处绘制两个随机变量yi和yj,来得到它们的协方差cov(yi,yj) = k(xi,xj) ——它们越接近,它们的协方差越高。

  使用上面的核函数我们可以得到k(xs,xs)这个矩阵。现在我们试着从20维高斯中抽取另外10个样本,但是这次使用新的协方差矩阵。当我们这样做时,我们可以得到:

  现在我们有了一些开始看起来像一个(有用的)函数分布。而且我们可以看到,随着维数趋于无穷大,我们不再需要连接这些点,因为我们可以为每一个可能的输入指定一个点。

  首先,我们需要获取训练数据。 这可以通过构造我们的秘密函数f来生成数据。

  我选择它是因为这个函数有个漂亮的波浪图形。当然,我们也可以用其它的函数。

  现在我们已经进入高斯过程的核心了。这需要更多的数学知识,不过不用担心,我们只需要巩固已有的知识就行,然后用一个小技巧在观测数据上决定我们的联合概率分布:

  注意:下面给的代码在实际过程中并没有用到,因为K通常处于较差条件,所以它的逆通常不准确。在本教程第二部分中我们将给出一个更好的方法。

  这就是上面公式的代码实现! 现在就可以用这两个参数从条件概率分布中采样了。我们将它们与真实函数(虚线)画在一起对比。因为我们用的是高斯过程,它包含有不确定性信息,这种不确定性信息以随机变量的方差形式表示出来。我们知道第i个随机变量的方差为∑*ii,换句话说,方差就是∑*的对角线值。下图中的样本包含了标准方差为±2的不确定性。

  实际上,我们需要做更多的工作才能得到更好的预测结果。你可能已经注意到核中包含两个参数-σ和l。如果你在采样过程中试着改变这两个参数,你会发现σ影响纵坐标的变化而l影响横坐标的范围。

  因此,我们需要改变它们来反映我们对隐函数的先验置信度。譬如,如果我们希望隐函数有更大的输出范围(一个我们感兴趣的范围),那么我们需要相应的增加

  的值(试着将隐函数返回的值放大100倍,看会出现什么,然后将sigma设置为100再看)。事实上,任何用到核的函数,我们都可以通过改变核得到一个完全不一样的函数(例如,周期函数)。

  核的选择需要人工进行,但参数可以通过最小化损失函数来自动优化。这就是高斯过程回归的内容。

  最后,我们需要考虑怎么处理含有噪声的数据,例如,在实际过程中我们可能无法获得符合隐函数的标准数据。在这种情况下我们需要将这种不确定性纳入模型中以获得更好的泛化能力。

http://catacurian.net/gaosishifenbu/264.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有