近年来,自动机器学习(AutoML)在深度学习的模型结构和训练策略等多个领域取得了显著进展。然而,损失函数作为训练深度学习模型的重要组成部分,仍然缺乏深入的研究与探索。目前,大部分研究仍依赖于交叉熵损失(Cross-Entropy Loss)和范数损失(L1/L2 Loss)来指导网络训练。尽管这些损失函数在许多情况下能够产生良好的效果,但它们与网络在测试期间使用的评估指标之间往往存在差异,这种差异可能会显著影响模型的训练效果。
为了降低为不同任务设计合适损失函数所需的人力成本,来自香港中文大学和商汤科技等机构的研究者们提出了一种通用的损失函数搜索框架——AutoLoSS-ZeRo。该方法的设计旨在通用性,搜索空间由一些基本的数学运算构成,而不是针对特定评估指标进行设计。由于有效的损失函数在此类搜索空间中非常稀疏,研究者们提出了一种高效且通用的拒绝机制和梯度等价性检测,以提升搜索效率。在给定任务和评估指标的情况下,AutoLoSS-ZeRo可以在合理的时间内(使用4张V100显卡,48小时内)从随机初始化开始,找到表现与手工设计的损失函数相当或更优的损失函数。
主要贡献包括:
AutoLoSS-ZeRo是首个适用于多种任务的损失函数搜索框架,其搜索空间由基本的数学运算构成,无需任何先验知识,从而显著减少了设计损失函数所需的人工成本。该研究在多项计算机视觉任务(如目标检测、语义分割、实例分割和姿态估计)中验证了AutoLoSS-ZeRo的有效性。
该研究提出了一种高效的拒绝机制,可以快速筛选掉大多数不具希望的损失函数。此外,研究者们还提出了一种基于梯度的等价性检测方法,以避免对彼此等价的损失函数进行重复评估。
实验结果表明,搜索得到的损失函数可以有效地迁移到不同的数据集和网络结构上。
在搜索空间方面,该研究首先定义了搜索目标。在任意任务的评估指标 ξ 下,框架尝试寻找一个最优的损失函数 L(ŷ,y;N_ω),其中 N_ω 表示网络的参数,ŷ 代表网络的预测结果,而 y 是训练目标。因此,搜索目标可以表示为一个嵌套优化问题。
在初始化搜索阶段,研究者随机生成 K(默认 K=20)个损失函数作为初始种群。之后,每次更新时,从当前种群中随机抽样 T(默认 T=5%)比例的损失函数,并对其中在代理任务中表现最佳的一个进行变异,从而生成新的个体,并加入种群。在种群更新过程中,仅保留最新的 P=2500 个个体。
由于搜索空间中有效损失函数的稀疏性,尽管代理任务已经相对简化,但对每个候选损失函数进行评估的时间成本仍然不可接受。因此,研究者们设计了一种损失函数拒绝机制(Loss-Rejection Protocol),对候选损失函数进行初步筛选。在随机生成和变异候选个体的过程中,如果无法通过筛选,则重新生成/变异,直到获得可以通过筛选的损失函数用于代理任务的评估。此外,在评估候选损失函数之前,该方法会先检测其是否与已评估过的损失函数等价(Gradient-equivalence-check strategy),若等价则跳过网络训练,复用之前相同个体的分数。
损失函数的随机初始化过程如图2所示。计算图从根节点开始,递归地从候选运算集合 H 中随机抽样运算符作为其子节点。每个节点的子节点数由其代表的运算的操作数决定。该方法将随机初始化的计算图深度固定为 D(默认 D=3),当当前节点深度达到 D 时,从候选输入集合中有放回地随机抽样子节点,这些子节点即为计算图的叶子节点。
基于该研究提出的损失函数表示形式,研究者们定义了三种不同的变异类型:插入(Insertion)、删除(Deletion)和替换(Replacement)。这三种变异类型的示意图如图3所示。
搜索的目标是找到能够尽可能最大化评估指标 ξ 的损失函数 L。为了衡量损失函数对评估指标的优化能力,研究者们提出了损失函数 L 和评估指标 ξ 之间的相关性分数 g(L;ξ)。
该研究在语义分割、目标检测、实例分割和姿态估计等四项计算机视觉任务上,从随机初始化开始进行了搜索。此外,研究者们还对搜索得到的损失函数的泛化性进行了研究,并分析了前述搜索算法中的各项技术对搜索效率的影响。
在语义分割任务中,该研究使用 PASCAL VOC 数据集对六个主流评价指标进行了搜索,并利用得到的损失函数对 DeepLab V3+ 网络进行了重新训练(Re-train)。表2展示了该研究的实验结果。结果表明,搜索得到的损失函数在多个主流评价指标上达到了或超过了当前最佳结果,仅在 BIoU 指标上略低于专门针对语义分割任务的 ASL 方法,但仍明显优于现有的手工设计损失函数。
该研究还验证了搜索得到的损失函数在不同数据集和不同网络结构上的泛化性。在表3中,研究者使用 ResNet50-DeepLabV3+ 网络在 PASCAL VOC 上进行搜索,并将得到的损失函数应用于不同数据集(CITYscapes)和不同网络结构(PSPNet)。结果显示,该方法搜索得到的损失函数具有良好的泛化能力。
在 COCO 数据集上,研究者还对 FAsteR R-CNN 进行了实验,针对 FAsteR R-CNN 中的四个损失函数分支(RPN 网络的分类与回归,以及 FAst R-CNN 子网络的分类与回归)同时进行搜索。表4提供了该方法与常用的 IoULoss、GIoULoss 及专门针对目标检测任务进行的损失函数搜索工作 CSE-AutoLoSS-A 的比较结果。实验表明,搜索到的损失函数与这些损失函数表现相似。
同时,研究者们也对目标检测中搜索到的损失函数的泛化性进行了实验,结果见表5。
在 COCO 数据集上,该研究使用 Mask R-CNN,针对五个损失函数分支进行同时搜索。表6显示,搜索得到的损失函数与手工设计的损失函数表现相近。
该研究还在 COCO 数据集上进行了姿态估计任务的实验,结果见表7。与姿态估计中常用的均方误差损失(MSE Loss)进行比较,实验结果表明,AutoLoSS-ZeRo 从零开始搜索得到的损失函数表现略优于 MSE Loss。
该搜索算法基于进化算法。为提高搜索效率,研究者们设计了损失函数拒绝机制(Loss-Rejection Protocol)和梯度等价性检测(Gradient-Equivalence-Check Strategy)。如图4所示,研究者发现这些模块能显著提高搜索效率。尤其在目标检测任务中,由于同时对四个分支进行搜索,搜索空间极为稀疏,若没有损失函数拒绝机制,搜索过程在合理的时间内(约400次代理任务评估)无法找到任何得分大于0的损失函数,证明高效的拒绝机制是实现有效搜索的关键。
在表8中,研究者进一步分析了各模块对搜索效率的提升。完整的 AutoLoSS-ZeRo 能在48小时内(使用4块V100 GPU)探索超过10^6个候选损失函数,这使其能在庞大而稀疏的搜索空间内高效探索。
