学向勤中得,萤窗万卷书。这篇文章主要讲述ACL2022挖宝 CMR相关的知识,希望能为你提供帮助。
文章图片
CMR看一张比较有说服力的图(是师姐让我看的这个文章,她觉得对她的论文有用。我就开始看,然后把图直接pia给她,她说“好有说服力的一张图”)。
文章图片
当我们离线训练好一个模型$f_0$之后,我们把它部署出去,当他遇到分布外的数据(out of distribution data)的时候,就会报错,产生一个$E_1$。然后我们就需要回来把这个模型更新,就得到我们的新模型$f_1$,然后再把它部署上线;它又会遇到分布外的一些数据,然后会报错产生一个$E_2$ ,然后我们再把这个模型拿回来再更新,得到一个$f_2$
。如此循环往复。
CMR 方法 旨在通过在不发生灾难性遗忘的情况下改进 $f_t$ 来修复错误情况。
关于持续学习和交代一下遗忘的概念:
方法基本模型:
使用 BART-base 作为基础模型。
注意,文中的任务目标不是用上游数据集 $D$ 离线训练一个完美的上游模型 $f_0$,而是专注于可以不断改进给定上游模型的 CMR 方法。
持续性微调 Continual fine-tuning:
最直接的方法是始终使用普通优化器(例如Adam )在$Et$ 上以较小的学习率微调 $ft?1$ 模型几个 epoch,目标是在 $Et$ 上最小化损失 $LError(t)$得到微调模型 $f_t$。这样的精炼模型 $f_t$ 应该能够为这些已知错误输出正确的输出。
但是这种方法可能会在这些错误数据上过拟合,从而导致忘记了以前获得的知识,也就是灾难性遗忘。
文章图片
用到的正则化方法结合上图,接下来我们介绍几种正则化方法。
防止遗忘的一个常见解决方案是在损失中添加一个时间正则化项以进行连续微调:$Ltotal(t) = LError (t) + λLReg (t)$,从而限制从 $ft?1$ 到 $f_t$ 的参数变化,以避免产生过拟合。
- Online L2Reg
$$
\\mathcalL\\mathrmL 2 \\mathrmReg(t)=\\sumi\\left(\\thetat^i-\\thetat-1^i\\right)^2
$$
其中$θ_t$ 是 $f_t$ 的参数。
这个正则化项通过对每个参数变化施加惩罚来缓解遗忘问题。
- Online EWC
$$
\\mathcalL\\mathrmEWC(t)=\\sumj=1^t-1\\left(\\frac12 \\sumi Fi i^(j)\\left(\\thetat^i-\\thetat-1^i\\right)^2\\right)
$$
我们在运算中维护一个值来保存 $Fii$ 总和,对 EWC 扩展,可以用来避免模型调优过程中的计算成本增长。
Replay 方法持续学习中用到的另一种方法是Replay。
Experience replay
是一种简单而有效的重放方法,它将先前的样本存储到内存模块$M$中,M会随着时间发展不断变大。然后,我们定期(每 $k$ 个时间步长)对$M$的一小部分进行采样得到 $R_t$,作为模型细化的额外训练样本。它使用两个阶段的过程:在 $Rt$ 上微调 $ft-1$ 以获得,然后在 $Et$ 上微调 $ft-1$ 以获得 $f_t$。
Maximally interfered replay (MIR)
MIR 不是从 $M$ 中随机选择 $Rt$ ,而是以当前的 $ft-1$ 和 $E_t$ 为条件,选择replay最容易被模型遗忘的样本。MIR从$M$中采样出一个小一点的样本候选池$C$, $C ? M$ ,然后按照“干扰分数”对 $C $中的样本进行排名。最后,MIR 的 $R_t$ 是 $C$ 中得分最高的子集。
在这里加了一个步骤,需要计算干扰分数,我们首先在 $Et$ 上微调 $ft-1$ 以获得一个虚拟模型 $\\hatft$。然后,我们计算 C 中每个样本的 $ft-1$ 和 $\\hatft$ 的损失,以获得干扰分数(即损失增量):
$$
\\operatornamescore\\left(xi, yi\\right)=: \\operatornameloss\\left(\\hatft\\left(xi\\right), yi\\right)-\\operatornameloss\\left(ft-1\\left(xi\\right), y_i\\right)
$$
MaxLoss replay
这个是作者自创的replay方法。
- Accelerating deep learning by focusing on the biggest losers.
- Ordered SGD: A new stochastic optimization framework for empirical risk minimization.
CMR 的扩展:
- Bi-Memory: 在 CMR 中维护两种类型的知识:
- 上游任务的知识$D$
- 模型后期遇到的错误 $E_t$
- Mixed-Tuning: 我们选择混合 $R_t$ 和 $Et$ 来微调 $ft-1$ ,而不是遵循使用 $R_t$的两阶段方法(在 $Rt$ 上微调 $ft-1$ 以获得,然后在 $Et$ 上微调 $ft-1$ 以获得 $f_t$)。
文章图片
模型采用了5种评价指标:
- Error-fixing rates (EFR) 1
$$
\\boldsymbol\\operatornameE F R (t)=: \\boldsymbol\\operatornameA c c \\left(ft, Et\\right)=: \\frac\\left|\\left(x, y) \\in Et \\mid ft(x)=y\\right\\right|\\left|E_t\\right| .
$$ - Knowledge retention (UKR&
OKR) 2
$$
\\mathbfU K R(t)=: \\operatornameAcc\\left(ft, D\\right)\\\\mathbfO K R(t)=: \\operatornameAcc\\left(ft, Q_< t\\right)
$$
- Cumulative success rates (CSR) 1
$$
\\operatornameCSR(t)=: 1-\\left|E< t\\right| /\\left|Q< t\\right|
$$ - Cumulative success rates (CSR) 1
$$
\\mathbfK G(t)=: \\operatornameAcc\\left(f_t, H\\right)
$$
文章图片
【ACL2022挖宝 CMR】
文章图片
推荐阅读
- #yyds干货盘点# 解决剑指offer(连续子数组的最大和)
- uniapp小程序新版授权登录
- LibreCAD+Mingw编译记录
- plugin cannot be loaded for module “QtQuick“ && Could not load the Qt platform plugin “windows“
- Java知识体系Java并发编程进阶,多线程和锁底层原理探究
- eclipse有时候自动提示这个错误,百度了下也是懵逼,求大神
- Ansible 入门和常用模块
- 解决“在系统启动时,至少有一个服务或驱动程序产生错误”的提示
- 不能访问网络位置