来自系列:应用机器学习
亚当•Filion MathWorks
机器学习都是关于拟合模型Todata的。 This process typically involves using an iterative algorithm that minimizes the model error. The parameters that control a machine learning algorithm’s behavior are called hyperparameters. Depending on the values you select for your hyperparameters, you might get a completely different model. So, by changing the values of the hyperparameters, you can find different, and hopefully better, models.
此视频遍历超参数优化的技术,包括网格搜索,随机搜索和贝叶斯优化。它解释了为什么随机搜索和贝叶斯优化优于标准网格搜索,它描述了在优化模型时如何与特征工程相关的超参数。
机器学习就是把模型和数据结合起来。模型由参数组成,通过拟合得到各参数的值。这个过程通常涉及到最小化模型误差的某种迭代算法。这个算法有参数来控制它的工作方式,这就是我们所说的超参数。
在深度学习中,我们也称决定层特征的参数为超参数。今天,我们将讨论这两种技术。
那么,为什么我们关心Quand参赛者?好吧,事实证明,大多数机器学习问题都是非凸的。这意味着取决于我们选择的超参数,我们可能会得到一个完全不同的模型。通过更改超级参数的值,我们可以找到不同的,并且希望更好的模型。
好的,我们知道我们有超参数,我们知道我们想要调整它们,但是我们怎么做呢?有些超参数是连续的,有些是二元的,还有一些超参数可能是任意数量的离散值。这是一个棘手的优化问题。对超参数空间进行穷尽性搜索几乎总是不可能的,因为它花费的时间太长。
因此,传统上,工程师和研究人员已经使用了栅栏搜索和随机搜索等超级计数器优化的技术。在此示例中,我正在使用网格搜索方法来改变2个超参数 - 框约束和内核比例 - 对于SVM模型。如您所见,结果模型的错误对于超级参数的不同值不同。在100次试验之后,搜索已发现12.8和2.6是这些超参数的最有希望的值。
最近,随机搜索变得比网格搜索更受欢迎。
“那怎么样?”你可能会问。
网格搜索在均匀探索超参数空间方面不是做得更好吗?
让我们想象一下,你有2个超级,“a”和“b”。您的模型对“A”非常敏感,但对“B”不敏感。如果我们做了3x3网格搜索,我们只会评估3个不同的“A”值。但是,如果我们做了一个随机搜索,我们可能会得到9个不同的“a”值,即使有些人可能会靠近在一起。结果,我们有更好的机会找到“A”的良好价值在机器学习中,我们经常有许多超级参数。有些对结果有很大影响,有些人则没有。所以随机搜索通常是更好的选择。
网格搜索和随机搜索都很好,因为很容易理解正在发生的事情。然而,它们仍然需要许多函数计算。它们也没有利用这样一个事实:当我们评估越来越多的超参数组合时,我们了解了这些值如何影响我们的结果。出于这个原因,您可以使用创建代理模型的技术——或者将误差近似作为超参数的函数。
贝叶斯优化就是这样一种技术。这里我们看到一个运行的贝叶斯优化算法示例,其中每个点对应不同的超参数组合。我们还可以看到算法的代理模型,这里显示为曲面,它使用它来选择下一组超参数。
关于贝叶斯优化的另一个很酷的事情是它不仅仅关注模型的准确性。它还可以考虑到需要多长时间的训练。可能有一组超参数会导致训练时间增加100倍或更多,如果我们试图赶在截止日期前完成,这可能不是很好。您可以通过多种方式配置贝叶斯优化,包括预期的每秒改进,这将惩罚需要花费很长时间来训练的超参数值。
现在,超参数优化的主要目的是改进模型。而且,尽管我们还可以做其他事情来改进它,但我喜欢把超参数优化看作是一种低工作量、高计算量的方法。这与特性工程之类的东西形成了对比,在特性工程中,您需要付出更高的努力来创建新特性,但您需要更少的计算时间。并不总是很明显哪个活动会产生最大的影响,但超参数优化的好处是它很适合“夜间运行”,所以您可以在计算机工作时睡觉。
这是对Quand参数优化的快速解释。有关更多信息,请查看描述中的链接。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。