最终更新梯度
与所有损失项的优化梯度均不冲突。
在每个特定损失梯度上的投影长度是均匀的,可以确保所有损失项以相同速率进行优化。
长度可以根据损失项之间的冲突程度自适应调整。
论文地址:https://arxiv.org/abs/2408.11104
项目主页:https://tum-pbs.github.io/ConFIG/
GitHub: https://github.com/tum-pbs/ConFIG
具体优化方向:相比于直接求解梯度矩阵的逆,ConFIG 方法求解了归一化梯度矩阵的逆,即
,其中
表示第
个梯度向量的单位向量。可以证明,变换后
矢量的每个分量代表了每个梯度
与最终更新梯度
之间的余弦相似度。因此,通过设定
分量的不同值可以直接控制最终更新梯度对于每个损失梯度的优化速率。在 ConFIG 中,
被设定为单位矢量以确保每个损失具有相同的优化强度从而避免某些损失项的优化被忽略。
优化梯度大小:此外,ConFIG 方法还根据梯度冲突程度调整步长。当梯度方向较一致时,加快更新;当梯度冲突严重时,减小更新幅度:
, 其中
为每个梯度与最终更新方向之间的余弦相似度。
使用梯度的动量(指数移动平均)代替梯度进行 ConFIG 运算。
在每次优化迭代中,仅对一个或部分损失进行反向传播以更新动量。其它损失项的动量采用之前迭代步的历史值。