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