现代机器学习系统在高效探索庞大搜索空间时面临关键挑战,从生成结构化输出到发现最优架构均是如此。搜索在结构化预测与架构搜索中扮演着重要角色。
在结构化预测中,模型必须在一个组合规模极大的输出空间中进行搜索以生成预测结果。而在架构搜索中,则需要研究人员或自动化搜索程序系统性地探索架构设计空间,以找到具备期望性能特征的模型(例如速度与任务性能的理想权衡)。因此,在设计新型机器学习方法时,必须高度重视搜索。
本论文从两个互补层面探讨了搜索挑战:模型推理阶段(结构化预测) 与 模型设计阶段(架构搜索)。
第一部分针对结构化预测中的暴露偏差问题(即训练条件与测试推理之间的不匹配)。我们提出了一种统一的面向集束(beam-aware)训练的元算法,该算法在训练过程中引入搜索。该元算法将此类算法分解为三个关键选择:集束大小、展开策略(rollout strategy) 和 损失函数。这不仅统一了相关文献中的方法,还提出了新的变体,更好地缓解了暴露偏差。通过理论分析与在超标签(supertagging)任务上的实证评估,我们展示了在训练时同时结合搜索与模型展开能够显著提升性能,尤其是在生成过程中需要处理大量不确定性的情况下。
第二部分则针对神经架构搜索问题,引入了 DeepArchitect —— 一个用于定义架构搜索空间并将其暴露给搜索算法的模块化框架。该方法的主要优势在于,它允许研究人员使用一种搜索空间规范语言来定义搜索空间。随后,这种语言可以通过统一接口将架构提供给搜索算法,而无需依赖对搜索空间的具体先验知识。从根本上来说,这一框架通过模块化分解问题,促进了架构搜索的科学化,使得不同搜索算法能够在相同条件下进行公平比较,而不受实现细节差异的干扰。我们首先介绍了定义单输入单输出架构搜索空间所需的语言构件,然后扩展到具有无环图结构的任意架构。通过对比不同搜索策略和架构空间的大量实验,我们验证了该框架的有效性。进一步地,在语义角色标注任务上的应用展示了如何通过多目标优化发现能在准确率与推理速度之间实现优良权衡的架构,从而在实际相关区域拓展帕累托前沿(Pareto frontier)。