Pengwee Wang's blog

Back

项目内容
发表会议ICLR 2026 3rd DATA-FM Workshop
PDFarxiv.org/pdf/2602.00329

上篇提到的In-Run Data Shapley不能直接应用于Adam优化器,因为Adam 的参数更新不是梯度的线性函数,本片论文对In-Run Data Shapley进行了Adam优化器适配。

Adam优化器#

Adam(Adaptive Moment Estimation)结合了两种经典优化思想:

  • Momentum(动量):利用梯度的一阶矩(均值)加速收敛,抑制震荡
  • RMSProp(自适应学习率):利用梯度的二阶矩(方差)对每个参数自适应调整学习率

算法流程#

输入:学习率 η\eta(默认 0.001),衰减率 β1=0.9\beta_1=0.9β2=0.999\beta_2=0.999,数值稳定项 ϵ=108\epsilon=10^{-8}

初始化m0=0m_0 = 0v0=0v_0 = 0t=0t = 0

每步更新(对训练样本 ztz_t 计算梯度 gt=(wt1,zt)g_t = \nabla \ell(w_{t-1}, z_t)):

  1. 更新步数:tt+1t \leftarrow t + 1

  2. 更新一阶矩(梯度均值): mt=β1mt1+(1β1)gtm_t = \beta_1 \, m_{t-1} + (1 - \beta_1) \, g_t

  3. 更新二阶矩(梯度方差): vt=β2vt1+(1β2)gt2v_t = \beta_2 \, v_{t-1} + (1 - \beta_2) \, g_t^2

  4. 偏差修正: m^t=mt1β1t,v^t=vt1β2t\hat{m}_t = \frac{m_t}{1 - \beta_1^t}, \quad \hat{v}_t = \frac{v_t}{1 - \beta_2^t}

  5. 参数更新: wt=wt1ηm^tv^t+ϵw_t = w_{t-1} - \eta \cdot \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}

各组件作用#

一阶矩 mtm_t(动量)

mtm_t 是梯度的指数移动平均,记录了梯度的”方向趋势”。相比 SGD 直接用当前梯度 gtg_t 更新,动量可以:

  • 在一致方向上加速(累积历史梯度)
  • 在震荡方向上抑制(正负梯度相互抵消)

二阶矩 vtv_t(自适应缩放)

vtv_t 是梯度平方的指数移动平均,记录了每个参数梯度的”历史波动幅度”。更新时除以 v^t\sqrt{\hat{v}_t} 实现自适应:

  • 梯度波动大的参数(v^t\sqrt{\hat{v}_t} 大)→ 学习率被缩小,更新更保守
  • 梯度波动小的参数(v^t\sqrt{\hat{v}_t} 小)→ 学习率被放大,更新更激进

这使得 Adam 对不同参数能自动调节步长,特别适合稀疏梯度或参数尺度差异大的场景。

偏差修正

由于 m0=v0=0m_0 = v_0 = 0,训练初期 mtm_tvtv_t 偏向零。除以 (1βt)(1-\beta^t) 进行修正:

  • tt 小时,βt1\beta^t \approx 1,修正系数 11βt\frac{1}{1-\beta^t} 很大,补偿零初始化的偏差
  • tt 大时,βt0\beta^t \to 0,修正系数趋于 1,修正效果消失

ϵ\epsilon 的作用

ϵ\epsilon(通常 10810^{-8})加在分母中防止除零,保证数值稳定。

闭式Adam Shapley#

第一步不变,对局部效用函数做一阶Taylor展开:

U(t)(S)=(w~t+1(S),zval)(wt,zval)=(wt,zval)(w~t+1(S)wt)U(1)(t)(S)+高阶项U^{(t)}(S) = \ell(\tilde{w}_{t+1}(S), z^{\text{val}}) - \ell(w_t, z^{\text{val}}) = \underbrace{\nabla \ell(w_t, z^{\text{val}}) \cdot (\tilde{w}_{t+1}(S) - w_t)}_{U_{(1)}^{(t)}(S)} + \text{高阶项}

第二步:代入Adam更新规则

已知 w~t+1(S)=wtηtzSm^t(z)vt(z)+ϵ\tilde{w}_{t+1}(S) = w_t - \eta_t \sum_{z \in S} \frac{\hat{m}_t(z)}{\sqrt{v_t(z)}+\epsilon},对于子集 SS 和加入样本 zz 后的边际贡献:

U(1)(t)(Sz)U(1)(t)(S)=ηt(wt,zval)m^t(z)v^t(z)+ϵU_{(1)}^{(t)}(S \cup z) - U_{(1)}^{(t)}(S) = -\eta_t \, \nabla \ell(w_t, z^{\text{val}}) \cdot \frac{\hat{m}_t(z)}{\sqrt{\hat{v}_t(z)}+\epsilon}

这一步需要假设Adam的动量状态 mtm_t 和方差状态 vtv_t是固定值(常量)

可以看出一阶近似下,边际贡献与子集 SS 无关,因此:

ϕz(U(1)(t))=ηt(wt,zval)mtvt+ϵ\phi_z(U_{(1)}^{(t)}) = -\eta_t \, \nabla \ell(w_t, z^{\text{val}}) \cdot \frac{m_t}{\sqrt{v_t}+\epsilon}

最后利用Shapley的可加性,全局Shapley值为各步之和:ϕz(U)t=0T1ϕz(U(1)(t))\phi_z(U) \approx \sum_{t=0}^{T-1} \phi_z(U_{(1)}^{(t)})

计算优化:Linearized Ghost Approximation#

思路:将 Adam 的非线性更新方向线性化,使其可表示为梯度的线性组合

将乘积右边分为m^t(z)\hat{m}_t(z)1v^t(z)+ϵ\frac{1}{\sqrt{\hat{v}_t(z)}+\epsilon}对于第一项展开可得:

m^t=β11β1tmt1+1β11β1tgt=Cm1mt1(z)+Cm2gt(z)\hat{m}_t = \frac{\beta_1}{1-\beta_1^t} m_{t-1} + \frac{1-\beta_1}{1-\beta_1^t} g_t = C_m^1 \, m_{t-1}(z) + C_m^2 \, g_t(z)

对于第二项,做一阶泰勒展开:

首先,将 v^t\hat{v}_t 分解为历史部分和当前梯度扰动:

v^t=β2vt1+(1β2)gt21β2tv^t1+Cv(wt,z)2\hat{v}_t = \frac{\beta_2 v_{t-1} + (1-\beta_2) g_t^2}{1-\beta_2^t} \approx \hat{v}_{t-1} + C_v \, \nabla \ell(w_t, z)^2

其中 Cv=1β21β2tC_v = \frac{1-\beta_2}{1-\beta_2^t}。令 δ=Cv(wt,z)2\delta = C_v \, \nabla \ell(w_t, z)^2 为扰动量,则 v^tv^t1+δ\hat{v}_t \approx \hat{v}_{t-1} + \delta

定义函数 f(x)=1x+ϵf(x) = \frac{1}{\sqrt{x}+\epsilon},在展开点 x0=v^t1x_0 = \hat{v}_{t-1} 处:

f(x0)=1v^t1+ϵ=1At(z)f(x_0) = \frac{1}{\sqrt{\hat{v}_{t-1}}+\epsilon} = \frac{1}{A_t(z)}

其中 At(z)=v^t1(z)+ϵA_t(z) = \sqrt{\hat{v}_{t-1}(z)} + \epsilon 是基于历史状态的预条件项。

f(x)f(x) 求导:

f(x)=12(x+ϵ)2xf'(x) = -\frac{1}{2(\sqrt{x}+\epsilon)^2 \sqrt{x}}

x0x_0 处近似(假设 xx+ϵ\sqrt{x} \approx \sqrt{x}+\epsilon 用于导数量级估计):

f(x0)12At(z)3f'(x_0) \approx -\frac{1}{2 A_t(z)^3}

由一阶 Taylor 展开 f(x0+δ)f(x0)+f(x0)δf(x_0 + \delta) \approx f(x_0) + f'(x_0) \cdot \delta,代入 δ=Cv(wt,z)2\delta = C_v \, \nabla \ell(w_t, z)^2

1v^t+ϵ1At(z)Cv(wt,z)22At(z)3\frac{1}{\sqrt{\hat{v}_t}+\epsilon} \approx \frac{1}{A_t(z)} - \frac{C_v \, \nabla \ell(w_t, z)^2}{2 A_t(z)^3}

最后相乘,去掉 O(gt2)O(g_t^2)O(gt3)O(g_t^3) 的高阶项得到:

ϕzηtvalCm1mt1AtHistory Term+ηtval(Cm2Atgt(z))Linear Gradient Term\phi_z \approx \underbrace{-\eta_t \, \nabla \ell_{\text{val}} \cdot \frac{C_m^1 \, m_{t-1}}{A_t}}_{\text{History Term}} + \underbrace{-\eta_t \, \nabla \ell_{\text{val}} \cdot \left(\frac{C_m^2}{A_t} \odot g_t(z)\right)}_{\text{Linear Gradient Term}}

对于History Term还是要计算验证梯度val\nabla \ell_{\text{val}},但是只需计算一次

Linear Gradient Term可以使用Ghost Dot-Product 高效计算。

Assisted by AI
In-Run Data Shapley for Adam Optimizer
https://pengwee.wang/blog/in-run_data_shapley_adam/
Author Pengwee Wang
Published at May 28, 2026
Comment seems to stuck. Try to refresh?✨