超参数优化

机器学习中，超参数优化Matthias Feurer and Frank Hutter. Hyperparameter optimization . In: AutoML: Methods, Systems, Challenges, pages 3–38.或整定（tuning）是为学习算法选择一组最佳超参数的问题。超参数是用于控制学习过程的参数。

超参数优化会找到能产生最优模型的超参数元组，在给定的独立数据上将预定义的损失函数最小化。目标函数获取超参数元组，返回相关损失。交叉验证常用于估算这种泛化性能，从而为超参数选择一组能使其最大化的值。

 方法 

 网格搜索 
超参数优化的传统方法是网格搜索（grid search）或参数扫描（parameter sweep），即对学习算法超参数空间中人工指定的子集暴力搜索。网格搜索算法必须以某些性能指标为指导，通常是在训练集上交叉验证Chin-Wei Hsu, Chih-Chung Chang and Chih-Jen Lin (2010). A practical guide to support vector classification . Technical Report, National Taiwan University.或在保持验证集上评估。

由于机器学习的参数空间可能包括参数的实值空间或无界值空间，因此在网格搜索前可能要手动设置边界与离散化。

例如，配备RBF核的典型软边界SVM分类器至少有两个超参数需要调整，以便在未见数据上获得良好性能：正则化常数C、核超参数γ。它们都是连续的，因此网格搜索要为每个参数选择一组有限的“合理”值，如

然后，网格搜索会以两个集合的笛卡尔积的每对训练SVM，并在不变的验证集上评估性能（或在训练集上进行内部交叉验证，这时每对集合会训练多个SVM）。最后，算法会输出验证中得分最高的超参数。

网格搜索会受到维数灾难影响，但由于评估的超参数设置通常相互独立，是过易并行的。


 随机搜索 
随机搜索以随机选择取代所有组合的暴力搜索。这可以简单地应用于上述离散空间，也可推广到连续空间和混合空间。对连续超参数，随机搜索比网格搜索能探索更多的值，这时优化问题具有较低的内蕴维度。随机搜索也是过易并行的，此外还允许指定采样分布以纳入先验知识。随机搜索虽简单，但仍是较新的超参数优化方法性能的重要基准。


 贝叶斯优化 

贝叶斯优化是一种针对噪声黑盒函数的全局优化方法。 贝叶斯优化用于超参数优化时建立超参数值到在验证集上目标函数值的函数的概率模型。贝叶斯优化是要据当前模型，迭代地评估较好的超参数配置、再更新，收集尽可能多的观察结果，揭示有关该函数的信息，尤其是最佳值的位置。它试图在探索（结果最不确定的超参数）和利用（预期接近最优的超参数）之间取得平衡。实践中，贝叶斯优化同前两种算法相比，由于能在实验前就推理实验质量，因此能以更少的评估次数获得更好的结果。

 基于梯度的优化 
对特定的学习算法，可以计算超参数的梯度，再用梯度下降法优化超参数。 这类技术的首次使用主要在神经网络。此后，到其他模型也有推广，如支持向量机或逻辑回归。

获得超参数梯度的另一种方法是用自动微分，微分迭代优化算法的步骤。Shaban, A., Cheng, C. A., Hatch, N., & Boots, B. (2019, April). Truncated back-propagation for bilevel optimization . In The 22nd International Conference on Artificial Intelligence and Statistics (pp. 1723-1732). PMLR.沿这种思路，最近的一项研究利用隐函数定理计算超梯度，提出了一种稳定的逆黑塞近似法，可推广到数百万个超参数，需要恒量的内存。Lorraine, J., Vicol, P., & Duvenaud, D. (2018). Optimizing Millions of Hyperparameters by Implicit Differentiation. arXiv preprint arXiv:1911.02590.

另一种方法是Lorraine, J., & Duvenaud, D. (2018). Stochastic hyperparameter optimization through hypernetworks. arXiv preprint arXiv:1802.09419.训练超网络以逼近最佳响应函数，这种方法也能处理离散超参数。自整定网络MacKay, M., Vicol, P., Lorraine, J., Duvenaud, D., & Grosse, R. (2019). Self-tuning networks: Bilevel optimization of hyperparameters using structured best-response functions. arXiv preprint arXiv:1903.03088.为超网络选择一种紧表示，提供了一种内存效率更高的版本。最近，Δ-STNBae, J., & Grosse, R. B. (2020). Delta-stn: Efficient bilevel optimization for neural networks using structured response jacobians. Advances in Neural Information Processing Systems, 33, 21725-21737.对超网络进行轻微的重参数化，加速了训练。Δ-STN还通过在权值中线性化网络，从而消除权值大幅变化带来的非线性影响，从而更好逼近最佳响应雅可比。

超网络之外，梯度方法也可用于优化离散超参数，如对参数进行连续松弛。Liu, H., Simonyan, K., & Yang, Y. (2018). Darts: Differentiable architecture search. arXiv preprint arXiv:1806.09055.这类方法已被广泛用于神经结构搜索中的结构超参数优化。

 演化优化 

演化优化是一种对噪声黑盒函数进行全局优化的方法。超参数优化中，演化优化使用进化算法搜索给定算法的超参数空间，遵循受演化启发的过程：

 创建随机解的初始种群（随机生成超参数元组，通常超过100个）
 取值，并计算其适值函数（如使用这些超参数的机器学习算法的10折交叉验证准确率）
 按相对适值排序超参数元组
 用由交叉与变异产生的新超参数元组取代之前表现较差的
 重复2-4，直到达到令人满意的算法性能，或无法再提高为止

演化优化已被用于统计机器学习算法、自动机器学习、典型神经网络、深度神经网络结构搜索中的超参数优化，以及深度神经网络中的权重训练。

 基于种群 
种群训练（Population-Based Training，PBT）同时学习超参数值和网络权重。使用不同超参数的学习过程相互独立进行。与演化算法类似，性能更差的模型会被迭代地替换为从性能较好的模型修改来的超参与权重的模型。替换模型热启动是PBT与其他演化算法的主要区别。因此，PBT允许超参数演化，无需手动调超参。此过程对模型结构、损失函数或训练过程不做任何假设。
PBT及其变体是自适应方法：在模型训练时更新超参。非自适应法的次优策略是在整个训练过程中分配一组恒定的超参。

 基于提前停止 
一类基于提前停止的超参优化算法专为大型超参数搜索空间设计，尤其是评估一组超参数的计算成本很高时。Irace实现了迭代竞赛算法（iterated racing algorithm），将搜索重点放在最有前景的配置上，用统计测试剔除不佳的。
另一种提前停止超参数优化算法是连续减半算法（SHA），一开始是随机搜索，但会定期修剪低性能模型，从而将计算资源集中到更有前景的模型上。异步连续减（ASHA）无需同步评估与修剪，从而进一步提高了SHA的资源利用率。Hyperband是一种更高级的基于提前停止的算法，可多次调用SHA或ASHA，具有不同程度的剪枝侵占性（aggressiveness），因此适用范围更广，所需输入也更少。

 其他 
RBF与谱方法也有开发。

 超参数优化的问题 
超参数优化结束后，通常会在训练集上拟合一组超参数，然后根据在验证集的泛化性能或得分来选择。但这种方法可能使验证集的超参数过拟合，因此验证集（在交叉验证中可以是多个）的泛化性能得分不能同时用于估算最终模型的泛化性能。为此，必须在独立于优化超参的集合（且两两不交）上评估，否则性能值可能畸大。这可在第二个测试集上进行，也可由称作嵌套交叉验证的外部交叉验证，对模型泛化性能进行无偏估计，同时考虑到超参数优化带来的偏差。

 另见 
 自动机器学习
 神经结构搜索

 模型选择
 自整定
 XGBoost

 参考文献 

Category:机器学习
Category:数学最佳化
Category:模型选择