从系列:应用机器学习
亚当•Filion MathWorks
机器学习是 数据拟合模型。 过程通常需要使用一个迭代算法,最小化模型误差。控制机器学习算法行为的参数称为超参数。 hyperparameters取决于您选择的值,你可以得到一个完全不同的模型。因此,通过改变hyperparameters的值,你可以找到不同,希望更好, 模型。
本视频将介绍超参数优化的技术,包括网格搜索、随机搜索和贝叶斯优化。解释了随机搜索和贝叶斯优化优于标准网格搜索的原因,描述了超参数在优化模型时与特征工程的关系。
机器学习就是将模型与数据进行拟合。模型由参数组成,通过拟合过程确定参数的取值。这一过程通常涉及某种迭代算法,以最小化模型误差。这个算法有一些参数来控制它的工作方式,这些参数就是我们所说的超参数。
在深度学习中,我们也把决定层特征的参数称为超参数。今天,我们将讨论两者的技术。
那么,我们为什么要关心超参数呢?事实上,大多数机器学习问题都是非凸的。这意味着根据我们为超参数选择的值,我们可能会得到一个完全不同的模型。通过改变超参数的值,我们可以找到不同的,甚至更好的模型。
好,我们知道我们有超参数,我们知道我们想要调整它们,但是我们怎么做呢?有些超参数是连续的,有些是二进制的,还有一些可能采用任意数量的离散值。这就造成了一个棘手的优化问题。对超参数空间进行彻底搜索几乎总是不可能的,因为它花费的时间太长了。
因此,传统上,工程师和研究人员已经使用超参数优化技术,如网格搜索和随机搜索。在这个例子中,我使用网格搜索方法来改变支持向量机模型的两个超参数-框约束和核尺度。正如您所看到的,对于超参数的不同值,结果模型的错误是不同的。经过100次试验,研究发现12.8和2.6是这些超参数最有希望的值。
最近,随机搜索比网格搜索更受欢迎。
“怎么可能呢?”你可能会问。
网格搜索在均匀探索超参数空间方面不是做得更好吗?
假设有两个超参数,A和B。你的模型对“A”很敏感,但对“B”不敏感。如果我们做一个3x3的网格搜索,我们只会计算3个不同的a的值。但如果我们随机搜索,我们可能会得到9个不同的“a”值,尽管有些可能很接近。因此,我们有更好的机会为“a”找到一个好的价值。“在机器学习中,我们经常有很多超参数。有些对结果有很大的影响,有些则没有。所以随机搜索通常是更好的选择。
网格搜索和随机搜索很好,因为它们很容易理解。然而,它们仍然需要许多函数计算。它们也没有利用这样的事实,当我们评估越来越多的超参数组合时,我们知道这些值如何影响我们的结果。由于这个原因,您可以使用创建代理模型的技术—或者将错误近似为超参数的函数。
贝叶斯优化就是这样一种技术。这里我们看到一个运行的贝叶斯优化算法的例子,其中每个点对应一个不同的超参数组合。我们还可以看到算法的代理模型,在这里显示为曲面,它使用该模型来选择下一组超参数。
贝叶斯优化的另一个很酷的地方是它不仅仅是看一个模型有多精确。它还可以考虑到训练需要多长时间。可能会有一组超参数导致训练时间增加100倍或更多,如果我们试图赶在最后期限之前完成,这可能不是很好。您可以以多种方式配置贝叶斯优化,包括每秒预期的改进,这将惩罚需要很长时间进行训练的超参数值。
现在,做超参数优化的主要原因是为了改进模型。而且,尽管我们还可以做一些其他的事情来改进它,但是我认为超参数优化是一种低成本、高计算的方法。这与特性工程之类的东西形成了对比,在特性工程中,您需要更大的努力来创建新特性,但是您需要更少的计算时间。哪些活动的影响最大并不总是很明显,但是超参数优化的好处在于它很适合“通宵运行”,因此您可以在计算机工作时睡觉。
这是超参数优化的一个简单解释。有关更多信息,请查看描述中的链接。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站表现。其他MathWorks国家站点不适合来自您所在位置的访问。