有一个函数f(x),它的计算成本很高,甚至不一定是解析表达式,而且导数未知。你的任务是,找出全局最小值。当然,这个任务挺难的,比机器学习中的其他优化问题要难得多。例如,梯度下降可以获得函数的导数,并利用数学捷径来更快地计算表达式。

 贝叶斯优化之美:精妙算法背面的直觉(贝叶斯优化算法实例) 算法 优化 场景 第1张

有一个函数f(x),它的核算本钱很高,乃至不必定是解析表达式,而且导数不知道。你的使命是,找出大局最小值。当然,这个使命挺难的,比机器学习中的其他优化问题要难得多。例如,梯度下降能够获得函数的导数,并运用数学捷径来更快地核算表达式。

别的,在某些优化场景中,函数的核算本钱很低。假如能够在几秒钟内得到数百个输入值x的变量成果,简略的网格查找效果会更好。别的,还能够运用很多非传统的非梯度优化办法,如粒子群算法或模拟退火算法(simulated annealing)。

可是,当时的使命没有还没这么高档。优化层面有限,首要包含:

  • 核算本钱高。抱负状况下,咱们能够对函数进行满足的查询,然后从实质上仿制它,可是选用的优化办法有必要在有限的输入采样中才干起效果。
  • 导数不知道。梯度下降及其风格仍然是最盛行的深度学习办法,乃至有时在其他机器学习算法中也备受欢迎的原因地点。导数给了优化器方向感,不过咱们没有导数。
  • 需求找出大局最小值,即便关于梯度下降这样精密的办法,这也是一项困难的使命。模型需求某种机制来防止堕入部分最小值。

咱们的解决方案是贝叶斯优化,它供给了一个简练的结构来处理相似于场景描绘的问题,以最精简的进程数找到大局最小值。

结构一个函数c(x)的假定比如,或许给定输入值x的模型的本钱。当然,这个函数看起来是什么姿态对优化器是躲藏的——这便是c(x)的实在形状,行话中被称为“方针函数”。

 贝叶斯优化之美:精妙算法背面的直觉(贝叶斯优化算法实例) 算法 优化 场景 第2张

贝叶斯优化经过署理优化办法来完结这项使命。署理函数(surrogate function)是指方针函数的近似函数,是依据采样点构成的。

 贝叶斯优化之美:精妙算法背面的直觉(贝叶斯优化算法实例) 算法 优化 场景 第3张

署理函数能够协助确认哪些点是或许的最小值。咱们决议从这些有期望的区域中抽取更多样本,并相应地更新署理函数。

在每次迭代中持续检查当时的署理函数,经过抽样了解相关感兴趣范畴的更多信息并更新函数。留意,署理函数的核算本钱要低得多。例如,y=x便是近似函数,核算本钱更高,即在必定规模内的y=arcsin((1-cos converx)/sin x))。

经过必定次数的迭代,终究必定会得到一个大局最小值,除非函数的形状十分古怪(由于它有大幅度且不安稳的动摇),这时呈现了一个比优化更有意义的问题:你的数据出了什么问题?

让咱们来赏识一下贝叶斯优化之美。它不做任何关于函数的假定(除了首要假定它本身是可优化的),不需求关于导数的信息,而且能够奇妙地运用一个不断更新的近似函数来运用常识推理,对原始方针函数的高本钱评价底子不是问题。这是一种依据代替的优化办法。

所以,贝叶斯理论究竟是什么呢?贝叶斯计算和建模的实质是依据新信息更新之前的函数(先验函数),发生一个更新后的函数(后验函数)。这正是署理优化在本例中的效果,能够经过贝叶斯理论、公式和意义来进行最佳表达。

细心看看署理函数,它一般由高斯进程表明,能够被视为一个骰子,回来合适给定数据点(例如sin、log)的函数,而不是数字1到6。这个进程回来几个函数,这些函数都带有概率。

 贝叶斯优化之美:精妙算法背面的直觉(贝叶斯优化算法实例) 算法 优化 场景 第4张

左:四个数据点的几个高斯进程生成的函数。右:函数聚合。| 图源:Oscar Knagg

运用GP而不是其他曲线拟合办法来建模署理函数,是由于它实质上是贝叶斯的。GP是一个概率散布,相似一个事情的终究成果的散布(例如,1/2的概率抛硬币),可是覆盖了一切或许的函数。

例如,将当时数据点集界说为40%可由函数a(x)表明,10%可由函数b(x)表明。经过将署理函数表明为概率散布,能够经过固有的概率贝叶斯进程更新信息。当引进新信息时,或许只要20%的数据可用函数a(x)表明。这些改变是由贝叶斯公式操控的。假如运用多项式回归来拟合新的数据点,难度就加大了,乃至不或许完成。

署理函数表明为概率散布,先验函数被更新为“收集函数”。该函数担任权衡探究和运用问题驱动新点的出题进行测验:

· “运用函数”企图进行取样以便署理函数猜测最合适的最小值,这是运用已知的或许的点。但是,假如咱们现已对某一区域进行了满足的探究,那么持续运用已知的信息将不会有什么收成。

· “探究函数”企图在不确认性高的当地取样。这就保证了空间中没有什么首要区域是不知道的——大局最小值或许刚好就在那里。

一个鼓舞多运用和少探究的收集函数将导致模型只停留在它首要找到的最小值(一般是部分的——“只去有光的当地”)。反之,模型则首要不会停留在部分或大局的最小值上,而是在奇妙的平衡中寻求最佳成果。

用a(x)表明收集函数,有必要一起考虑探究和运用。常见的收集函数包含预期改善和最大改善概率,一切这些函数都度量了给定的先验信息(高斯进程)下,特定输入值在未来获得成功的概率。

结合以上一切内容,贝叶斯优化的原理如下:

  • 初始化一个高斯进程的“署理函数”先验散布。
  • 挑选多个数据点x,使运转在当时先验散布上的收集函数a(x)最大化。
  • 对方针本钱函数c(x)中的数据点x进行评价,得到成果y。
  • 用新的数据更新高斯进程的先验散布,发生后验(鄙人一步将成为先验)。
  • 重复进程2-5进行屡次迭代。
  • 解说当时的高斯进程散布(本钱极低)来找到大局最小值。

贝叶斯优化便是把概率的概念树立在署理优化的根底之上。这两种概念的结合发明了一个功用强大的体系,运用规模宽广,从制药产品开发到自动驾驶轿车都有相关运用。

但是,在机器学习中最常见的是用于超参数优化。例如,假如要练习一个梯度增强分类器,从学习率到最大深度到最小杂质切割值,有几十个参数。在本例中,x表明模型的超参数,c(x)表明模型的功用,给定超参数x。

运用贝叶斯优化的首要意图在于应对评价输出十分贵重的状况。首要,需求用这些参数树立一个完好的树调集,其次,它们需求经过屡次猜测,这关于调集而言本钱极高。

能够说,神经网络评价给定参数集的丢失更快:简略地重复矩阵乘法,这是十分快的,特别是在专用硬件上。这便是运用梯度下降法的原因之一,它需求重复查询来了解其发展方向。

图源:unsplash

总结一下,咱们的结论是:

· 署理优化运用署理函数或近似函数来经过抽样估量方针函数。

· 贝叶斯优化经过将署理函数表明为概率散布,将署理优化置于概率结构中,并依据新信息进行更新。

· 收集函数用于评价探究空间中的某个点将发生“杰出”成果的概率,给定现在从先验已知的信息,平衡探究和运用的问题。

· 首要在评价方针函数本钱贵重时运用贝叶斯优化,一般用于超参数调优。有许多像HyperOpt这样的库能够完成这个功用。

贝叶斯优化之美,你感受到了吗?

本文转载自微信大众号「读芯术」,作者读芯术。转载本文请联络读芯术大众号。

 贝叶斯优化之美:精妙算法背面的直觉(贝叶斯优化算法实例) 算法 优化 场景 第5张

转载请说明出处
知优网 » 贝叶斯优化之美:精妙算法背面的直觉(贝叶斯优化算法实例)

发表评论

您需要后才能发表评论