当前位置: 首页 > news >正文

Relooking:损失权重λ 、梯度权重α、学习率η

一般多任务,大家都喜欢叠加很多损失,由此产生很多损失权重系数。此外,有的学者直接对梯度进行操作。咋一看,上面三个系数貌似重复多余,直接用其中一个系数代替不行吗?为此,回顾了下神经网络的前向传播和反向求导公式,感觉有点拉大旗作虎皮的意味。标题本来是“Rethinking”,想着会有一些新发现,但随后就改成了“Relooking”蒜鸟。

形式化

直观来说,损失权重 λ λ λ 、梯度权重 α α α、学习率 η η η可以看做是三个标量系数,即trade-off parameterweighting coefficient
L = λ 1 L 1 + λ 2 L 2 ∇ θ L = α 1 ∇ L 1 + α 2 ∇ L 2 θ : = θ − η ⋅ ∇ θ L \begin{aligned} L &=\lambda_1 L_1+\lambda_2 L_2\\ \nabla_\theta L &=\alpha_1 \nabla L_1+\alpha_2 \nabla L_2\\ \theta :&= \theta-\eta \cdot \nabla_\theta L \end{aligned} LθLθ:=λ1L1+λ2L2=α1L1+α2L2=θηθL

作用:

  • 损失权重 λ λ λ:对相应任务的损失值进行缩放。 λ λ λ越大,表明该项贡献越大(越重要),则要放大其损失值,促使模型对该项的优化。反之,越小,则是该项损失趋近0,贡献被忽略。
  • 梯度权重 α α α:在反向传播中,直接对梯度值进行缩放。
  • 学习率 η η η:对所有梯度统一缩放,以控制模型参数的更新步长。 η η η越大,则模型参数的步长越大。

案例讲解

下面以一个神经网络的为例,从底层原理来看它们的作用。

1. 网络结构定义

考虑一个双层网络:

  • 输入: x x x
  • 参数: W 1 , b 1 , W 2 , b 2 W_1, b_1, W_2, b_2 W1,b1,W2,b2
  • 激活函数: g ( ⋅ ) g(\cdot) g() (如ReLU)
  • 输出层未激活

2. 前向传播

流程:Fc1 --> Activation --> Fc2。
z 1 = W 1 x + b 1 a 1 = g ( z 1 ) z 2 = W 2 a 1 + b 2 \begin{align} z_1 &= W_1 x + b_1 \\ a_1 &= g(z_1) \\ z_2 &= W_2 a_1 + b_2 \\ \end{align} z1a1z2=W1x+b1=g(z1)=W2a1+b2

3. 多任务损失计算

为了方便展示损失任务的权重系数,这里假设两个损失函数。其中,主任务交叉熵损失,辅助任务均方误差损失。
L = λ 1 ⋅ CE ( z 2 , y ce ) + λ 2 ⋅ MSE ( a 1 , y mse ) = λ 1 ⋅ l o s s 1 + λ 2 ⋅ l o s s 2 \begin{align} L &= \lambda_1 \cdot \text{CE}(z_2, y_{\text{ce}}) + \lambda_2 \cdot \text{MSE}(a_1, y_{\text{mse}}) \\ &= \lambda_1 \cdot loss_1 + \lambda_2 \cdot loss_2 \end{align} L=λ1CE(z2,yce)+λ2MSE(a1,ymse)=λ1loss1+λ2loss2

4. 反向传播梯度计算

∂ L ∂ W 1 = ∂ ( λ 1 l o s s 1 + λ 2 l o s s 2 ) ∂ W 1 = α 1 ( λ 1 ∂ l o s s 1 ∂ W 1 ) + α 2 ( λ 2 ∂ l o s s 2 ∂ W 1 ) = α 1 λ 1 ∂ l o s s 1 ∂ W 1 + α 2 λ 2 ∂ l o s s 2 ∂ W 1 \begin{align} \frac{\partial L}{\partial W_1} &= \frac{\partial (\lambda_1 loss_1 + \lambda_2 loss_2)}{\partial W_1} \\ &= \alpha_1 \left( \lambda_1 \frac{\partial loss_1}{\partial W_1}\right) + \alpha_2 \left( \lambda_2 \frac{\partial loss_2}{\partial W_1}\right) \\ &= \alpha_1 \lambda_1 \frac{\partial loss_1}{\partial W_1} + \alpha_2 \lambda_2 \frac{\partial loss_2}{\partial W_1} \\ \end{align} W1L=W1(λ1loss1+λ2loss2)=α1(λ1W1loss1)+α2(λ2W1loss2)=α1λ1W1loss1+α2λ2W1loss2

5. 参数更新

W 1 ← W 1 − η ⋅ ∂ L ∂ W 1 W_1 \leftarrow W_1 - \eta \cdot \frac{\partial L}{\partial W_1} W1W1ηW1L

即:

Δ W 1 = − η [ α 1 ⏞ 梯度权重 ( λ 1 ⏞ 损失权重 ∂ l o s s 1 ∂ W 1 ) + α 2 ⏞ 梯度权重 ( λ 2 ⏞ 损失权重 ∂ l o s s 2 ∂ W 1 ) ] \Delta W_1 = -\eta \left[ \overbrace{\alpha_1}^{\text{梯度权重}} \left( \overbrace{\lambda_1}^{\text{损失权重}} \frac{\partial loss_1}{\partial W_1} \right) + \overbrace{\alpha_2}^{\text{梯度权重}} \left( \overbrace{\lambda_2}^{\text{损失权重}} \frac{\partial loss_2}{\partial W_1} \right) \right] ΔW1=η α1 梯度权重 λ1 损失权重W1loss1 +α2 梯度权重 λ2 损失权重W1loss2

总结

  • 根据step4可知,一般不需要对梯度进行惩罚操作,且过于复杂,直接对损失函数施加权重具有同样的功能。
  • 根据step5可知,学习率全局缩放梯度向量,即调整整体的步长。
  • 如梯度裁剪或者梯度归一化等特殊情况才在内部对梯度操作,非必须,一般不作用于梯度。

注:上述情况与GPT 4O交流的结果。以当前本人的水平,还无法体会到更深层次的含义。

相关文章:

  • http传输协议的加密
  • 【C/C++】线程安全初始化:std::call_once详解
  • VoltAgent 是一个开源 TypeScript 框架,用于构建和编排 AI 代理
  • 【题解-洛谷】B4278 [蓝桥杯青少年组国赛 2023] 简单算术题
  • Java 注解与反射(超详细!!!)
  • React从基础入门到高级实战:React 生态与工具 - React 国际化(i18n)
  • Mac系统下,利用wget批量下载ICESat-2测高内陆水位高数据ALT13
  • SpringBoot整合RocketMQ--实例
  • RTX腾讯通停服后,有哪些兼容Linux及移动端的升级途径?
  • SQL(Database Modifications)
  • 杏仁海棠花饼的学习日记第十四天CSS
  • Windows 11 全角半角切换方法
  • 《仿盒马》app开发技术分享-- 订单列表页(端云一体)
  • 日常--OBS+mediamtx实现本地RTMP推流环境搭建(详细图文)
  • Telegram平台分发其聊天机器人Grok
  • 【仿生系统】爱丽丝的“内在”或“灵魂”:概念与形式
  • 关于《DAHSF》即《火小兔智慧开发平台V2.0》的碎碎念
  • 微机系统-汇编语言入门
  • 计算机图形学:(六)渲染管线
  • 基于matlab遗传算法和模拟退火算法求解三维装箱优化问题
  • 怎么自己做淘客网站/百度 营销推广怎么操作
  • 北京定制公交网站/淄博新闻头条最新消息
  • wordpress jenn 主题/sem优化服务公司
  • wordpress做电影网站/百度快照推广效果怎样
  • 做网站订阅号/巨量算数
  • 枣强网站建设/广州网站seo公司