寻找多目标优化问题的帕累托最优解.
多目标优化是指同时优化多个相关任务的目标,多任务学习是一个典型的多目标优化问题,其总目标函数是每个任务的目标函数的加权求和式:Ltotal=∑niwiLi。为使得每个任务在训练时都获得有益的提升,需要合理的设置任务权重wi,使得每一次更新时目标损失函数L1,L2,⋯,Ln都下降或保持不变。
对于参数θ∗,若该参数任意变化都会导致某个目标的损失函数Li上升,则称θ∗为帕累托最优解(Pareto Optimality)。帕累托最优意味着不能通过牺牲某个任务来换取其他任务的性能提升。
1. 建模多目标优化问题
本文主要讨论基于梯度下降法的多目标优化问题。记参数θ在任务i上的梯度为gi=∇θLi,则寻找帕累托最优的过程等价于构造参数变化量Δθ满足:
⟨gi,Δθ⟩≤0,∀i注意到上述方程组存在平凡解Δθ=0,我们主要关心可行域中是否存在非零解。若能求得非零解,则将其作为参数更新方向;否则有可能已经达到了帕累托最优(必要不充分条件),此时的状态称为帕累托稳定点 (Pareto Stationary)。
上述问题等价于寻找一个向量u,使得对所有任务i的梯度gi都满足⟨gi,u⟩≥0,此时可取Δθ=−ηu作为参数更新量。
将该问题转化为最优化问题:
∀i,⟨gi,u⟩≥0⇔mini⟨gi,u⟩≥0问题可进一步转化为最大化内积⟨gi,u⟩的最小值:
maxumini⟨gi,u⟩注意到上述优化目标可能会趋于无穷大,因此为了结果的稳定性,为u的模长增加正则项:
maxumini⟨gi,u⟩−12||u||2注意到u=0时上述目标取值也为0,因此最优解u∗满足:
mini⟨gi,u∗⟩−12||u∗||2≥0⇔mini⟨gi,u∗⟩≥12||u∗||2≥0即加入正则项之后的最优解u∗也必然是满足原最优化问题mini⟨gi,u⟩≥0的解。
2. 求解多目标优化问题
定义Pn为所有n元离散分布的集合:
Pn={(w1,w2,⋯,wn)|w1,w2,⋯,wn≥0,∑iwi=1}则原优化目标等价于:
mini⟨gi,u⟩=minw∈Pn⟨∑iwigi,u⟩=minw∈Pn⟨˜gi(w),u⟩因此加入正则项之后的目标也等价于:
maxuminw∈Pn⟨˜gi(w),u⟩−12||u||2该目标函数是关于u的凹函数,关于w的凸函数,且u,w的可行域都是凸集,根据Minimax定理可以将上述问题转化为对偶问题:
minw∈Pnmaxu⟨˜gi(w),u⟩−12||u||2注意到max部分是关于u的无约束的二次函数最大值问题,其最大值在u=˜gi(w)处取,则目标函数进一步写作:
minw∈Pn12||˜gi(w)||2=minw∈Pn12||∑iwigi||2上式等价于求各任务损失梯度g1,g2,⋯gn的所有凸组合中模长最小的情况,约束条件为∑iwi=1。
⚪ 无约束的梯度下降
minw∈Pn12||∑iwigi||2该目标可以通过去约束的方式直接用梯度下降求解。常用方法是设置可学习参数β1,β2,⋯βn∈R,使得:
wi=eβi∑ieβi此时隐式地包含约束∑iwi=1;且目标转化为β的无约束优化问题:
minβ12(∑ieβi)2||∑ieβigi||2⚪ 带约束的梯度下降
minw∈Pn12||˜gi(w)||2原问题也可以通过Frank-Wolfe算法求解。Frank-Wolfe算法可以看作一种带约束的梯度下降算法,适合于参数的可行域为凸集的情形。该算法的求解在当前w与位置τ为1的one-hot向量eτ之间进行插值搜索,找出最优者作为迭代结果。
当n=2时,问题等价于求两个向量g1(图中为θ)和g2(图中为¯θ)的模长最小凸组合:
当n>2时,Frank-Wolfe算法将问题转化为多个n=2的情形进行迭代,迭代过程为:
τ=argmini⟨gi,˜g(w(k))⟩γ=argminγ˜g((1−γ)w(k)+γeτ)=argminγ||(1−γ)˜g(w(k))+γgτ||2w(k+1)=(1−γ)w(k)+γeτ其中γ的求解即为n=2的特例。
3. 优化求解过程
前两节讨论了寻找帕累托稳定点的参数更新方向的方法,实现过程为在每一步的训练中,先通过另外的多步迭代来确定每个目标的权重,然后再更新模型参数。实际计算时计算量比较大,因此通过一些额外的技巧降低计算量。
⚪ 梯度内积
在优化过程中需要多次计算梯度的内积⟨gi,˜g(w(k))⟩,由于梯度gi的维度与模型参数量相同且通常比较大,因此内积运算的计算量很大。考虑展开式:
⟨gi,˜g(w(k))⟩=⟨gi,∑jwjgj⟩=∑jwj⟨gi,gj⟩在实现时⟨gi,gj⟩只需要计算一次并存储下来,可以减少大维度向量内积的重复计算。
⚪ 共享编码
若假设多个目标任务共享同一个特征提取网络,则还可以进一步近似地简化算法。具体地,假设批量为b的样本中第j个样本的特征编码输出为hj,则第i个目标损失的梯度计算为:
gi=∇θLi=∑j(∇hjLi)(∇θhj)=(∇h1Li,⋯,∇hbLi)(∇θh1⋮∇θhb)若记H=(h1,⋯,hb),则梯度gi=(∇HLi)(∇θH)。优化目标为:
||∑iwigi||2=||∑iwi(∇HLi)(∇θH)||2≤||∑iwi∇HLi||2||∇θH||2因此如果不最小化||∑iwigi||2(需要求所有参数的梯度),而是最小化||∑iwi∇HLi||2(只需要求编码向量的梯度),则计算量会明显减少。后者是前者的一个上界。
该上界也具有局限性,一般只适用于每一个样本都有多种标注信息的多目标优化问题,不适用于不同目标任务的训练数据无交集的场景。因为不同任务的数据无交集表示∇HLi是相互正交的,该上界过于宽松,没有体现出任务之间的相关性。
4. 主次型多目标优化
在前面几节的讨论中,多目标优化的目的是尽可能在所有目标任务上都取得较好的表现,即平等地处理每一个目标。在实际需求中,有时我们希望模型主要在一个或几个主目标上表现较好,并额外地增加一些辅助目标,通过学习辅助目标来提升在主目标上的表现。此时多目标优化也称为主次型多目标优化。
若记L0为主目标的损失函数,L1,⋯Ln为n个辅助目标的损失函数。则主目标仍然是寻找一个向量u,使得对主目标的梯度g0满足⟨g0,u⟩≥0,并采用梯度下降法更新参数Δθ=−ηu。根据前面的讨论,优化目标为:
maxu⟨g0,u⟩−12||u||2对于辅助目标L1,⋯Ln,我们希望更新方向u不要使得其中的任何一个目标损失增大即可(不一定最小化损失),因此引入约束条件:
maxu⟨g0,u⟩−12||u||2s.t.⟨g1,u⟩≥0,⋯⟨gn,u⟩≥0建立拉格朗日方程,将上述问题转化成min-max问题:
maxuminλi≥0⟨g0,u⟩−12||u||2+n∑iλi⟨gi,u⟩在该问题中,首先需要最小化λi的目标函数。假设⟨gi,u⟩≥0,则应使λi⟨gi,u⟩=0;假设⟨gi,u⟩<0,则应使λi⟨gi,u⟩→−∞。而该目标还包含u的最大化,因此取前一种情况,此时min-max问题的优化结果与原带约束的max问题等价。
若定义Qn为所有n元离散分布的集合:
Qn={(λ1,λ2,⋯,λn)|λ1,λ2,⋯,λn≥0}则优化问题记为:
maxuminλ∈Qn⟨g0+n∑iλigi,u⟩−12||u||2=maxuminλ∈Qn⟨g0+˜g(λ),u⟩−12||u||2根据Minimax定理,如果min问题和max问题的参数可行域都是凸集,并且目标函数关于min问题的参数是凸的、关于max问题的参数是凹的,则min和max的次序可以交换:
maxuminλ∈Qn⟨g0+˜g(λ),u⟩−12||u||2=minλ∈Qnmaxu⟨g0+˜g(λ),u⟩−12||u||2=minλ∈Qn12||g0+˜g(λ)||2上式等价于求主目标损失梯度g0与各辅助目标损失梯度g1,g2,⋯gn的所有加权组合之和中模长最小的情况。
当n=1时,问题等价于minλ≥012‖g0+λg1‖2,该问题具有明确的几何意义和简单的解析解:
当n>1时,采用Frank-Wolfe算法将问题转化为多个n=1的情形进行迭代,迭代过程为:
τ=argmini⟨gi,g0+˜g(λ(k))⟩γ=argminγ||˜g(λ(k)−λ(k)τeτ+γeτ)+g0||2=argminγ||˜g(λ(k))−λ(k)τgτ+γgτ)+g0||2λ(k+1)=λ(k)−λ(k)τeτ+γeτ对照上述讨论,具有m个主目标、n个辅助目标的混合型多目标优化,应具有的对偶目标函数为:
minw∈Pn,λ∈Qn12||˜g(w)+˜g(λ)||2=minw∈Pn,λ∈Qn12||m∑iwigi+n∑jλjgj||2⚪ 主次型多目标优化的应用
一个典型的主次型多目标优化案例是向任务损失中加入正则项,如L2正则化:
L(θ)+λ2||θ||2此时正则化损失并不需要越小越好,而是希望能够提高原损失L(θ)的泛化性能。此时两个目标损失的梯度分别为:
g0=∇θL(θ),g1=θ当⟨g0,g1⟩>0时取λ=0;当⟨g0,g1⟩<0时取与g1正交的g0+λg1:
⟨g1,g0+λg1⟩=0⇔λ=−⟨g0,g1⟩||g1||2将上述两种情况统一写作:
λ=ReLU(−⟨g0,g1⟩)||g1||2代入g0,g1的表达式得:
λ=ReLU(−⟨∇θL(θ),θ⟩)||θ||2
Related Issues not found
Please contact @0809zheng to initialize the comment