欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 培训 > 【博士每天一篇文献-算法】多任务学习之MGDA算法:Multi-Task Learning as Multi-Objective Optimization

【博士每天一篇文献-算法】多任务学习之MGDA算法:Multi-Task Learning as Multi-Objective Optimization

2024/11/29 18:22:37 来源:https://blog.csdn.net/weixin_43935696/article/details/142934533  浏览:    关键词:【博士每天一篇文献-算法】多任务学习之MGDA算法:Multi-Task Learning as Multi-Objective Optimization

1 介绍

年份:2018
期刊: Advances in neural information processing systems,
引用量:1301

Sener O, Koltun V. Multi-task learning as multi-objective optimization[J]. Advances in neural information processing systems, 2018, 31.
本文提出了一种基于梯度的多目标优化算法,用于多任务学习,该算法通过优化一个上界来高效地找到帕累托最优解,且只需单次反向传播。

2 创新点

  1. 多任务学习与多目标优化结合:将多任务学习(MTL)问题明确地表述为多目标优化问题,寻找帕累托最优解。
  2. 适用于大规模问题的优化算法:针对大规模学习问题,提出了一种基于梯度的多目标优化算法,解决了传统多目标优化算法在梯度维度和任务数量上扩展性差的问题。
  3. 高效的上界优化:提出了一种多目标损失的上界,并证明在现实假设下优化这个上界可以得到帕累托最优解,且计算效率高。
  4. 适用于深度学习模型:算法适用于多任务深度学习问题,包括数字分类、场景理解(联合语义分割、实例分割和深度估计)和多标签分类。
  5. 显著的性能提升:在多个多任务学习基准测试中,所提出的方法比现有的多任务学习方法或单独任务训练产生了性能更高的模型。
  6. 计算开销小:通过优化上界,算法能够在几乎不增加计算开销的情况下,扩展到非常大的模型和任务数量。
  7. 理论上的保证:证明了在一定的假设下,所提出的优化方法能够保证找到帕累托最优解。

3 相关研究

3.1. 多任务学习(MTL)

(1)硬参数共享与软参数共享

  • 硬参数共享:部分参数在任务之间共享,其他参数为任务特定的。
  • 软参数共享:所有参数为任务特定,但通过贝叶斯先验【Xue et al., 2007; Bakker and Heskes, 2003】或共享字典【Argyriou et al., 2007; Long and Wang, 2015; Yang and Hospedales, 2016; Ruder, 2017】进行联合约束。
    • Learning multiple tasks with deep relationship networks. arXiv:1506.02117, 2015.
    • Y. Yang and T. M. Hospedales. Trace norm regularised deep multi-task learning. arXiv:1606.04038, 2016
    • S. Ruder. An overview of multi-task learning in deep neural networks. arXiv:1706.05098, 2017.

(2)其他相关方法

  • 早期的 MTL 研究:Baxter (2000) 将 MTL 视为个体学习者和元算法之间的交互。
  • 超越加权和的元算法:Li et al. (2014) 使用多目标优化的核学习,Zhang and Yeung (2010) 提出了基于任务亲和矩阵的方法。
  • 基于字典共享和集群的 MTL:Zhou et al. (2011a) 和 Bagherjeiran et al. (2005) 假设任务共享字典,提出了类似期望最大化的元算法。
  • 基于群体优化的 MTL:de Miranda et al. (2012) 和 Zhou et al. (2017b) 使用群体优化算法。
    • D. Zhou, J. Wang, B. Jiang, H. Guo, and Y. Li. Multi-task multi-view learning based on cooperative multiobjective optimization. IEEE Access, 2017b.

(3) 深度学习中的多任务学习

  • 在计算机视觉、自然语言处理、语音处理等领域,基于梯度优化的多任务学习取得了成功【Bilen and Vedaldi, 2016; Misra et al., 2016; Rudd et al., 2016; Yang and Hospedales, 2016; Kokkinos, 2017; Collobert and Weston, 2008; Dong et al., 2015; Liu et al., 2015a; Luong et al., 2015; Hashimoto et al., 2017; Huang et al., 2013; Seltzer and Droppo, 2013; Huang et al., 2015】。
  • 不确定性与梯度幅值的启发式方法:Kendall et al. (2018) 和 Chen et al. (2018) 分别提出基于不确定性和梯度幅度的多任务学习启发式方法。

(4)多任务学习与多智能体强化学习

  • 多任务学习还被应用于多智能体强化学习【Rosenbaum et al., 2017】。

3.2. 多目标优化

(1)多目标优化背景

  • 多目标优化综述:Miettinen (1998) 和 Ehrgott (2005) 提供了该领域的详细综述。

(2)基于梯度的多目标优化

  • 基于梯度的多目标优化方法是该领域的一个重要方向【Fliege and Svaiter, 2000; Schäffler et al., 2002; Désidéri, 2012】。
  • 这些方法利用多目标 Karush-Kuhn-Tucker (KKT) 条件找到能减少所有目标的下降方向。

(3) 拓展至随机梯度下降

  • 随机梯度下降被用于多目标优化【Peitz and Dellnitz, 2018; Poirion et al., 2017】。
    • S. Peitz and M. Dellnitz. Gradient-based multiobjective optimization with uncertainties. In NEO, 2018.
    • F. Poirion, Q. Mercier, and J. Désidéri. Descent algorithm for nonsmooth stochastic multiobjective optimization. Computational Optimization and Applications, 68(2):317–331, 2017.

(4)2.4 其他应用

  • 多目标优化还应用于多智能体学习、核学习、序列决策、贝叶斯优化等领域【Ghosh et al., 2013; Pirotta and Restelli, 2016; Parisi et al., 2014; Li et al., 2014; Roijers et al., 2013; Shah and Ghahramani, 2016; Hernández-Lobato et al., 2016】。

4 算法

4.1 算法原理

  1. 问题定义:多任务学习问题被定义为寻找一个参数集合,使得所有任务的损失函数都能被优化。这与多目标优化问题相似,目标是优化可能相互冲突的多个目标。
  2. 帕累托最优性:在多任务学习中,一个解被称为帕累托最优,如果不存在另一个解在所有任务上都不比它差,并且至少在一个任务上比它好。
  3. 梯度下降法:算法使用梯度下降法来优化每个任务的损失函数。对于多目标优化问题,需要找到同时减少所有任务损失的下降方向。
  4. KKT条件:算法利用Karush-Kuhn-Tucker(KKT)条件来确定帕累托最优解。满足KKT条件的点称为帕累托稳定点。
  5. 多梯度下降算法(MGDA):本文使用了多梯度下降算法(MGDA),这是一种基于梯度的优化方法,通过求解一个二次规划问题来找到下降方向。

γ 的取值在 0 到 1 之间变化,代表了不同任务之间的权重分配。

  • 当 γ=0 时,表示完全偏向第一个任务(任务1),优化的更新方向完全依赖于任务1的梯度。此时,更新方向是与任务1相关的梯度方向。
  • 当 γ=1 时,表示完全偏向第二个任务(任务2),优化的更新方向完全依赖于任务2的梯度。此时,更新方向与任务2的梯度方向一致。
  • 当 0<γ <1,更新方向是两个任务梯度的加权组合,这种组合可以找到一个折中点,使得两个任务都得到一定程度的优化。
  1. 优化上界:为了提高计算效率,本文提出了一个多目标损失的上界,并证明了在现实假设下,优化这个上界可以得到帕累托最优解。
  2. Frank-Wolfe优化器:对于大规模问题,直接应用MGDA在计算上不可行。因此,本文开发了一个基于Frank-Wolfe的优化器,该优化器可以扩展到高维问题。
  3. 单次反向传播:本文的算法只需要一次反向传播来计算所有任务的梯度,这大大减少了计算开销。
  4. 算法实现:算法通过交替优化任务特定参数和共享参数来实现。对于共享参数,使用MGDA算法找到梯度的加权平均值作为更新。
  5. 实验验证:在多任务深度学习问题上,如数字分类、场景理解(联合语义分割、实例分割和深度估计)和多标签分类,本文的方法比现有的多任务学习方法或单独任务训练产生了性能更高的模型。

4.2 算法步骤

  1. 输入与模型设置

    给定一个多任务学习问题,输入是数据点 x i x_i xi 及对应的任务标签 $y_i^t $,其中 t t t 表示任务的编号, T T T 为任务总数。我们假设模型由共享参数 θ s h \theta_{sh} θsh 和任务特定参数 θ t \theta_t θt 组成,任务损失函数为 L t ( ⋅ ) L_t(\cdot) Lt()

  2. 经验风险最小化

    目标是最小化所有任务的损失,即求解以下优化问题:

min ⁡ θ s h , θ 1 , … , θ T ∑ t = 1 T c t L ^ t ( θ s h , θ t ) \min_{\theta_{sh}, \theta_1, \dots, \theta_T} \sum_{t=1}^{T} c_t \hat{L}_t(\theta_{sh}, \theta_t) θsh,θ1,,θTmint=1TctL^t(θsh,θt)

其中 c t c_t ct 是任务的权重, L ^ t \hat{L}_t L^t 是任务 t t t 的经验损失。

  1. 多目标优化

    为了避免简单加权损失带来的任务竞争,算法将优化问题重新表述为多目标优化:

min ⁡ θ s h , θ 1 , … , θ T ( L ^ 1 ( θ s h , θ 1 ) , … , L ^ T ( θ s h , θ T ) ) \min_{\theta_{sh}, \theta_1, \dots, \theta_T} \left( \hat{L}_1(\theta_{sh}, \theta_1), \dots, \hat{L}_T(\theta_{sh}, \theta_T) \right) θsh,θ1,,θTmin(L^1(θsh,θ1),,L^T(θsh,θT))

目标是找到帕累托最优解,即没有任何其他解能同时改进所有任务的损失。

  1. 多梯度下降算法(MGDA)

(1)计算每个任务的梯度:对共享参数 θ s h \theta_{sh} θsh,计算每个任务的梯度 ∇ θ s h L ^ t ( θ s h , θ t ) \nabla_{\theta_{sh}} \hat{L}_t(\theta_{sh}, \theta_t) θshL^t(θsh,θt)

(2)求解凸优化问题:为共享参数的更新,求解以下凸优化问题:

min ⁡ α 1 , … , α T ∥ ∑ t = 1 T α t ∇ θ s h L ^ t ( θ s h , θ t ) ∥ 2 \min_{\alpha_1, \dots, \alpha_T} \left\| \sum_{t=1}^{T} \alpha_t \nabla_{\theta_{sh}} \hat{L}_t(\theta_{sh}, \theta_t) \right\|^2 α1,,αTmin t=1TαtθshL^t(θsh,θt) 2

其中 α t ≥ 0 \alpha_t \geq 0 αt0 ∑ t = 1 T α t = 1 \sum_{t=1}^{T} \alpha_t = 1 t=1Tαt=1。这个优化问题的解是找到所有任务梯度的最优凸组合。

(3)更新共享参数:使用上述优化问题的解 α t \alpha_t αt,更新共享参数:

θ s h ← θ s h − η ∑ t = 1 T α t ∇ θ s h L ^ t ( θ s h , θ t ) \theta_{sh} \leftarrow \theta_{sh} - \eta \sum_{t=1}^{T} \alpha_t \nabla_{\theta_{sh}} \hat{L}_t(\theta_{sh}, \theta_t) θshθshηt=1TαtθshL^t(θsh,θt)

其中 η \eta η是学习率。

  1. 高效优化:MGDA-UB 上界优化

    为了减少计算开销,算法提出了MGDA-UB(Multiple Gradient Descent Algorithm – Upper Bound)优化方法,具体步骤如下:

(1)共享表示计算:假设模型由共享表示函数 g ( x ; θ s h ) g(x; \theta_{sh}) g(x;θsh) 和任务特定决策函数 f t ( g ( x ) ; θ t ) f^t(g(x); \theta_t) ft(g(x);θt) 组成,先通过 g ( x ; θ s h ) g(x; \theta_{sh}) g(x;θsh) 计算共享表示 z = g ( x ; θ s h ) z = g(x; \theta_{sh}) z=g(x;θsh)

(2)近似梯度计算:利用链式法则,计算任务损失对共享表示的梯度 ∇ z L ^ t \nabla_z \hat{L}_t zL^t,并通过一次反向传播计算所有任务的近似梯度更新,而不需要每个任务分别进行反向传播。

(2)优化上界:将共享参数梯度更新问题转化为一个上界优化问题:

min ⁡ α 1 , … , α T ∥ ∑ t = 1 T α t ∇ z L ^ t ∥ 2 \min_{\alpha_1, \dots, \alpha_T} \left\| \sum_{t=1}^{T} \alpha_t \nabla_z \hat{L}_t \right\|^2 α1,,αTmin t=1TαtzL^t 2

这可以通过Frank-Wolfe算法进行求解,并更新共享参数。

  1. 参数更新
  • 任务特定参数更新:每个任务特定参数 θ t \theta_t θt 使用梯度下降进行更新:

θ t ← θ t − η ∇ θ t L ^ t ( θ s h , θ t ) \theta_t \leftarrow \theta_t - \eta \nabla_{\theta_t} \hat{L}_t(\theta_{sh}, \theta_t) θtθtηθtL^t(θsh,θt)

  • 共享参数更新:共享参数 θ s h \theta_{sh} θsh 通过MGDA-UB优化方法求解后的梯度进行更新:

5 实验分析

  1. MultiMNIST数据集:
    • 实验目的:使用MultiMNIST数据集,一个多任务版本的MNIST数据集,来验证算法在数字分类任务上的表现。
    • 实验结果:所提出的算法在两个竞争任务上都达到了与单任务训练相当的性能,优于其他多任务学习方法。

  • 横轴表示左侧数字的准确率。纵轴表示右侧数字的准确率。“网格搜索”可能指的是在不同任务之间尝试不同的权重,以找到最佳平衡点。图中的右上角(Top-right)表示两个任务的准确率都很高,这是理想的区域。
  • 网格搜索的结果表明,两个任务在模型容量上存在竞争关系,即提高一个任务的准确率可能会降低另一个任务的准确率。本文提出的方法能够在两个任务上都达到与单独训练每个任务的模型相媲美的性能。本文提出的方法能够达到这个区域,表明它在多任务学习中有效地平衡了两个任务。
  1. CelebA数据集(多标签分类):
    • 实验目的:使用CelebA数据集进行多标签分类,评估算法在处理高任务数量情况下的性能。
    • 实验结果:算法在大多数任务上都优于基线方法,并且平均错误率更低,显示了其在多任务环境中的有效性。

  • 在CelebA数据集上进行多标签分类任务时,不同算法在每个属性上的百分比误差的雷达图。CelebA数据集包含人脸图像以及与之相关的多个属性,每个属性可以视为一个二分类任务。
  • 不同的线代表不同的多任务学习算法,包括单一任务训练、均匀缩放、Kendall等人的方法(2018)、GradNorm等。“Ours”代表本文提出的算法。
  • 本文提出的算法(Ours)的目标是在所有属性上实现低误差,即在多任务学习中平衡各个任务的性能。通过雷达图,可以直观地看到算法在不同任务上的表现,以及与其他基线方法相比的优势。
  1. Cityscapes数据集(场景理解):
    • 实验目的:在Cityscapes数据集上同时进行语义分割、实例分割和深度估计,测试算法在复杂场景理解任务上的表现。
    • 实验结果:算法在所有三个任务上都实现了更好的性能,超过了单任务训练和其他多任务学习方法。

在Cityscapes数据集上进行语义分割、实例分割和深度估计三个任务时,不同算法的性能表现。Cityscapes是一个复杂的城市街景理解数据集,用于评估算法在多任务学习场景下的性能。语义分割使用平均交并比(mIoU)作为性能指标。实例分割使用每像素回归误差(标准化到图像大小)作为性能指标。深度估计使用视差误差作为性能指标。

  1. 算法效率:
    • 实验目的:评估所提出算法的计算效率,特别是与需要多次反向传播的算法相比。
    • 实验结果:在场景理解任务中,算法通过减少训练时间约40%证明了其效率。在处理40个任务的多标签分类时,加速比达到了25倍。
  2. 算法准确性:
    • 实验目的:比较使用和不使用提出的近似方法的算法性能。
    • 实验结果:即使在应用了简化计算的近似方法后,算法的准确性也没有降低,并且在某些情况下还略有提高。
  3. 算法泛化能力:
    • 实验目的:测试算法在不同类型和复杂度的任务上的泛化能力。
    • 实验结果:算法在从简单分类到复杂的多标签和场景理解任务上都显示出良好的性能和泛化能力。

6 思考

(1)硬参数共享软参数共享是什么意思?

  1. 硬参数共享(Hard Parameter Sharing)

硬参数共享是多任务学习中最常见的一种方法,它通过让不同任务共享部分模型参数,来减少模型的过拟合风险并利用不同任务之间的相关性。 通过共享部分模型层参数实现任务之间的信息共享,减少过拟合,适用于相关性较强的任务。

  • 原理:在硬参数共享中,模型的前几层网络参数(通常称为共享层)在所有任务之间是相同的。这些共享层学习到输入数据的通用特征。随后,不同任务的输出则通过任务特定的层(例如最后几层)进行预测。
  • 优点:硬参数共享能够减少模型的整体参数数量,避免任务过拟合,并提高训练效率。
  • 应用场景:在许多计算机视觉和自然语言处理任务中,硬参数共享能够有效地学习到共享的底层特征,例如边缘检测、物体形状等。

示例:假设我们有两个任务:图像分类和物体检测。模型前几层共享相同的卷积层用于特征提取,而任务特定的分类层和检测层则用于分别预测类别标签和检测框位置。

  1. 软参数共享(Soft Parameter Sharing)

软参数共享与硬参数共享不同,它允许每个任务拥有自己独立的模型参数,但通过一定的正则化方式来使任务之间的参数相互约束,从而实现信息共享。 任务各自拥有独立的参数,但通过正则化手段约束参数,使其保持一定相关性,适合差异较大的任务。

  • 原理:每个任务拥有自己的一套完整的模型参数,但为了保持任务之间的相似性或相关性,模型会引入正则化项来约束不同任务的参数。常用的约束方式包括使用贝叶斯先验参数距离正则化(如 L2 距离),保证不同任务的参数不会相差太大。
  • 优点:软参数共享允许模型在不同任务之间保持更多的灵活性,适合处理任务之间差异较大的情况,同时通过正则化项来避免完全独立训练时的过拟合。
  • 应用场景:适用于任务之间存在一定相关性,但不强烈的场景。例如,图像处理和文本处理是完全不同的任务,但它们在某些抽象层面上可能存在某些共性,这时软参数共享可能会表现更好。

若有收获,就点个赞吧

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com