在深度学习的多个应用场景中,联合优化多个损失项是一个普遍的问题。典型的例子包括物理信息神经网络(Physics-Informed Neural Networks, PINNs)、多任务学习(Multi-Task Learning, MTL)和连续学习(Continual Learning, CL)。然而,不同损失项的梯度方向往往相互冲突,导致优化过程陷入局部最优甚至训练失败。
目前,主流的方法通常通过调整损失权重来缓解冲突。例如在物理信息神经网络中,许多研究从数值刚度、损失的收敛速度差异和神经网络的初始化角度提出了许多权重方法。然而,尽管这些方法声称具有更高的解的精度,但目前对于最优的加权策略尚无共识。
此外,ConFIG 方法还引入了一种基于动量的变种。通过计算并缓存每个损失项梯度的动量,可以避免在每次训练迭代中计算所有损失项的梯度。结果表明,基于动量的 ConFIG 方法在显著降低训练成本的同时保证了优化的精度。
想深入了解 ConFIG 的技术细节?我们已经为你准备好了完整的论文、项目主页和代码仓库!
ConFIG 方法获得最终无冲突优化方向的计算过程可以总结为:
原论文中给出了上述 ConFIG 更新收敛性的严格证明。同时,我们还可以证明只要参数空间的维度大于损失项的个数,ConFIG 运算中的逆运算总是可行的。
ConFIG 方法引入了矩阵的逆运算,这将带来额外的计算成本。然而与计算每个损失的梯度带来的计算成本,其并不显著。在包括 ConFIG 在内的基于梯度的方法中,总是需要额外的反向传播步骤获得每个梯度相对于训练参数的梯度。这使得基于梯度的方法的计算成本显著高于标准优化过程和基于权重的方法。为此,我们引入了 M-ConFIG 方法,使用动量加速优化:
在物理信息神经网络中,用神经网络的自动微分来近似偏微分方程的时空间导数。偏微分方程的残差项与边界条件和初始条件被视作不同的损失项在训练过程中进行联合优化。我们在多个经典的物理神经信息网络中测试了 ConFIG 方法的表现。
相同迭代步数下不同方法在 PINNs 测试中相比于 Adam 优化器的相对性能提升
不同损失项随着训练周期的变化情况
在实际应用中,相同训练时间下的模型准确性可能更为重要。M-ConFIG 方法通过使用动量近似梯度带来的运算速度提升可以使其充分发挥潜力。在相同训练时间内,M-ConFIG 方法的测试结果优于其他所有方法,甚至高于常规的 ConFIG 方法。
此外,我们还在最具有挑战性的三维 Beltrami 流动中进一步延长训练时间来更加深入地了解 M-ConFIG 方法的性能。结果表明,M-ConFIG 方法并非仅在优化初始阶段带来显著的性能改善,而是在整个优化过程中都持续改善优化的过程。
相同训练时间下不同方法在 PINNs 测试中相比于 Adam 优化器的相对性能提升
三维 Beltrami 流动案例中预测误差随着训练时间的变化
我们还测试了 ConFIG 方法在多任务学习(MTL)方面的表现。我们采用经典的 CelebA 数据集,其包含 20 万张人脸图像并标注了 40 种不同的面部二元属性。对每张人像面部属性的学习是一个非常有挑战的 40 项损失的多任务学习。
在我们的测试中,当任务数量等于 10 时,M-ConFIG 方法在相同训练时间下的性能就已经弱于 ConFIG 方法。增加单次迭代过程中的动量更新次数可以显著缓解这种性能下降。在标准的 40 任务 CelebA 训练中将动量更新次数提升到 20 时,M-ConFIG 方法的性能已经接近 ConFIG 方法,而训练时间仅为 ConFIG 方法的 56%。当更新步数达到 30 时,其性能甚至可以优于 ConFIG 方法。
ConFIG 方法在 CelebA 人脸属性数据集中的表现
在本研究中,我们提出了 ConFIG 方法来解决不同损失项之间的训练冲突。ConFIG 方法通过确保最终更新梯度与每个子梯度之间的正点积来确保无冲突学习。此外,我们还发展了一种基于动量的方法,用交替更新的动量代替梯度,显著提升了训练效率。ConFIG 方法有望为众多包含多个损失项的深度学习任务带来巨大的性能提升。
文章来自于“机器之心”,作者“刘强”。