准随机搜索

本单元侧重于准随机搜索。

为何使用准随机搜索?

准随机搜索(基于低差异序列)在用于迭代调整过程中(我们称之为“探索阶段”)的迭代调整过程中时,我们更倾向于使用精美的黑盒优化工具。贝叶斯优化和类似工具更适合用于开发阶段。基于随机偏移的低差异序列的准随机搜索可以视为“抖动、重排网格搜索”,因为它会随机但随机地探索给定的搜索空间,并且比随机搜索更分散搜索点。

准随机搜索相对于更复杂的黑盒优化工具(例如贝叶斯优化、进化算法)的优势包括:

  • 通过非自适应方式对搜索空间进行采样,无需重新运行实验即可更改事后分析中的调整目标。例如,我们通常希望根据训练过程中任何时间点的验证错误找出最佳试验。然而,准随机搜索的非自适应性质使我们能够根据最终验证错误、训练错误或一些替代评估指标找到最佳试验,而无需重新运行任何实验。
  • 准随机搜索的行为方式一致,并且统计上可重现。即使搜索算法的实现发生变化,只要保留相同的统一性属性,应该也可以重现六个月之前的研究。如果使用复杂的贝叶斯优化软件,版本之间的实现可能会发生重大变化,使旧搜索的再现难度增加。回滚到旧实现并非总是可行的(例如,如果优化工具作为服务运行)。
  • 对搜索空间进行统一探索有助于更轻松地推断结果以及它们对搜索空间可能有何建议。例如,如果准随机搜索遍历中的最佳点位于搜索空间的边界上,那么这是一个好的(但并非万无一失)的信号,表明应更改搜索空间边界。 但是,自适应黑盒优化算法可能会因一些不吉利的早期试验而忽略了搜索空间的中间,即使碰巧包含同样效果良好的点,良好的优化算法需要利用这种精确的非均匀性来加快搜索速度。
  • 与自适应算法不同,使用准随机搜索(或其他非自适应搜索算法)时,并行和依序运行不同数量的试验不会产生统计上不同的结果。
  • 更复杂的搜索算法并不一定能正确处理不可行的点,尤其是在设计这些算法时没有考虑到神经网络超参数调节。
  • 准随机搜索很简单,在许多调整试验并行运行时特别有效。有趣的是,自适应算法1很难击败预算为 2 倍的准随机搜索,尤其是在许多试验需要并行运行的情况下(因此在启动新的试验时,很少有机会利用之前的试验结果)。如果不具备贝叶斯优化和其他高级黑盒优化方法方面的专业知识,则可能无法实现其原则上能够提供的优势。在实际的深度学习调优条件下,很难对高级黑盒优化算法进行基准测试。这些都是当前研究中非常活跃的领域,对于没有经验的用户来说,更复杂的算法也会存在一些隐患。这些方法的专家能够获得良好的结果,但在高并行性条件下,搜索空间和预算往往更加重要。

即便如此,如果您的计算资源只允许并行运行少量试验,并且您可以负担得起按顺序运行许多试验的费用,那么贝叶斯优化会更有吸引力,尽管调整结果会更难以解释。

Open-Source Vizier 提供了准随机搜索实现。在此 Vizier 使用示例中设置 algorithm="QUASI_RANDOM_SEARCH"此超参数清除示例中存在替代实现。这两种实现都会为给定的搜索空间生成 Halton 序列(旨在按照关键超参数:No Random, No Cry 中的建议实现经过移位的扰码 Halton 序列)。

如果基于低差异序列的准随机搜索算法不可用,则可以改用伪随机统一搜索,不过这可能会稍微降低效率。您也可以使用 1-2 维的网格搜索,但在更高维中无法使用网格搜索。(请参阅 Bergstra 和 Bengio,2012 年)。

要通过准随机搜索获得良好的结果,需要进行多少次试验?

一般来说,您无法确定通过准随机搜索获得结果所需的试验次数,但您可以查看具体示例。如图 3 所示,研究中的试验次数会对结果产生重大影响:

验证错误率(y 轴)与调整预算(x 轴)的箱形图,其中调整预算是试验次数。平均验证错误率通常会随着调整预算的增加而下降。

图 3:在 ImageNet 上进行了 100 次试验调整的 ResNet-50。使用引导来模拟不同的调整预算金额。系统会绘制每项试验预算的最佳性能的箱形图。

 

请注意图 3 中的以下事项:

  • 抽样 6 个试验时的四分位范围远大于 20 个试验抽样时的四分位范围。
  • 即使进行了 20 次试验,特别幸运的研究和不太幸运的研究之间的差异可能也比该模型重新训练具有固定超参数的不同随机种子之间的典型差异更大,对于此工作负载而言,验证错误率约为 23%。

  1. Ben Recht 和 Kevin Jamieson 指出以 2 倍预算随机搜索作为基准的强大程度(Hyperband 论文提出了类似的论点),但最先进的贝叶斯优化技术击败了预算为 2 倍的随机搜索,搜索空间和问题无疑是有可能的。但是,根据我们的经验,在高并行性机制中,击败 2 倍预算的随机搜索变得困难得多,因为贝叶斯优化没有机会观察先前试验的结果。