多任务损失函数一般形式
如何确定
α
i
\alpha_{i}
αi至关重要
初始状态
去除量纲
如果我们将每个损失函数看成具有不同量纲的物理量,那么从“无量纲化”的思想出发,我们可以用损失函数的初始值倒数作为权重,即
如何得到
L
i
(
init
)
\mathcal{L}_i^{(\text{init})}
Li(init) ,可以考虑使用一个batch计算一下,或者根据分析得出经验初始值,比如,在主流的初始化之下,我们可以认为初始模型(加激活函数之前)的输出是一个零向量,如果加上softmax则是均匀分布,那么对于一个“K分类+交叉熵”问题,它的初始损失就是
log
K
\log K
logK (
−
log
(
1
/
K
)
-\log(1/K)
−log(1/K)); 对于“回归+L2损失”问题,则可以用零向量来估计初始损失,即
E
y
∼
D
[
∥
y
−
0
∥
2
]
=
E
y
∼
D
[
∥
y
∥
2
]
\mathbb{E}_{y\sim \mathcal{D}}[\Vert y-0\Vert^2] = \mathbb{E}_{y\sim \mathcal{D}}[\Vert y\Vert^2]
Ey∼D[∥y−0∥2]=Ey∼D[∥y∥2].
先验状态
使用数据中的先验信息统计来代替上一节中的 初始状态,这样“先验分布”比“初始分布”更能体现出“初始”的本质,它是“就算模型啥都学不会,也知道按照先验分布来随机出结果”的体现,所以此时的损失值更能代表当前任务的初始难度。
分类任务:
回归任务:
动态调节
尽管我们可以通过先验分布等信息简单感知一下学习难度,但究竟有多难其实要真正去学习才知道,所以更合理的方案应该是根据训练进程动态地调整权重。
实时状态
理解起来还行,就是事实归一化。
求梯度变为:
从上式中可以得知
之后作者提出了大一统模式,广义平均:
也就是将每个损失函数算γ次方后再平均最后再开γ次方,这里的γ可以是任意实数,代数平均对应γ=1,而几何平均对应γ=0(需要取极限)。
之后作者说直接除损失不满足平移不变性(看式7),
尽管它们都具备了缩放不变性,但却失去了更基本的“平移不变性”,也就是说,如果每个损失都加上一个常数,(2)、式(3)和式(5)的梯度方向是有可能改变的
理想状态
损失函数可以理解为当前模型与目标状态的距离,而梯度下降本质上是在寻找梯度为0的点,所以梯度的模长也能起到2类似作用,因此我们可以用梯度的模长来替换掉损失函数,从而将式(5)变成:
跟损失函数的一个明显区别是,梯度模长显然具备平移不变性(因为是先求梯度再÷的),并且分子分母关于Li依然是齐次的,所以上式还保留了缩放不变性。因此,这是一个能同时具备平移和缩放不变性的理想目标。