我目前正在研究 Bengio 和 Bergstra 的Random Search for Hyper-Parameter Optimization [1],其中作者声称随机搜索在实现大致相等的性能方面比网格搜索更有效。
我的问题是:这里的人同意这种说法吗?在我的工作中,我一直在使用网格搜索,主要是因为缺乏可轻松执行随机搜索的工具。
人们使用网格与随机搜索的体验如何?
我目前正在研究 Bengio 和 Bergstra 的Random Search for Hyper-Parameter Optimization [1],其中作者声称随机搜索在实现大致相等的性能方面比网格搜索更有效。
我的问题是:这里的人同意这种说法吗?在我的工作中,我一直在使用网格搜索,主要是因为缺乏可轻松执行随机搜索的工具。
人们使用网格与随机搜索的体验如何?
随机搜索有 95% 的概率在 5% 的最优值内找到参数组合,只需 60 次迭代。此外,与其他方法相比,它不会陷入局部最优。
查看Alice Zheng在 Dato 的这篇很棒的博客文章,特别是超参数调整算法部分。
我喜欢失败者获胜的电影,我喜欢机器学习论文,其中简单的解决方案被证明非常有效。这是 Bergstra 和 Bengio 的“随机搜索超参数优化”的故事情节。[...] 随机搜索以前没有被认真对待。这是因为它不会搜索所有的网格点,所以它不可能击败网格搜索找到的最优值。但随后出现了伯格斯特拉和本吉奥。他们表明,在许多令人惊讶的情况下,随机搜索的性能与网格搜索差不多。总而言之,尝试从网格中采样 60 个随机点似乎就足够了。
事后看来,对结果有一个简单的概率解释:对于具有有限最大值的样本空间上的任何分布,60 个随机观测值的最大值位于真实最大值的前 5% 内,概率为 95%。这听起来可能很复杂,但事实并非如此。想象一下真正最大值附近的 5% 区间。现在假设我们从他的空间中采样点,看看是否有任何点落在该最大值内。每次随机抽签有 5% 的概率落在那个区间,如果我们独立抽 n 个点,那么他们都错过了期望区间的概率是 . 因此,其中至少一个成功达到区间的概率是 1 减去该数量。我们希望至少有 0.95 的成功概率。要计算出我们需要的抽奖次数,只需求解等式中的 n:
我们得到。达达!
这个故事的寓意是:如果超参数的接近最优区域占据了至少 5% 的网格表面,那么使用 60 次试验的随机搜索将以高概率找到该区域。
您可以通过更多的试验来提高这种机会。
总而言之,如果要调整的参数太多,网格搜索可能会变得不可行。那是我尝试随机搜索的时候。
如果您可以编写一个函数来进行网格搜索,那么编写一个执行随机搜索的函数可能会更容易,因为您不必预先指定和存储网格。
除此之外,像 LIPO、粒子群优化和贝叶斯优化这样的方法可以明智地选择哪些超参数可能更好,所以如果你需要将模型的数量保持在绝对最小值(比如,因为拟合模型),这些工具是有前途的选择。它们也是全局优化器,因此它们很有可能找到全局最大值。BO 方法的一些获取函数具有可证明的后悔界限,这使得它们更具吸引力。
更多信息可以在这些问题中找到:
默认情况下,随机搜索和网格搜索是糟糕的算法,除非满足以下条件之一。
大多数人声称随机搜索比网格搜索更好。但是,请注意,当函数评估的总数预先定义时,网格搜索将导致搜索空间的良好覆盖,这不比具有相同预算的随机搜索差,并且两者之间的差异可以忽略不计。如果您开始添加一些假设,例如,您的问题是可分离的或几乎可分离的,那么您将找到支持网格搜索的论据。总的来说,除非在极少数情况下,否则两者都相当糟糕。因此,除非考虑到有关该问题的一些额外假设,否则无需区分它们。