论文阅读Mark(四)Overcoming Catastrophic Forgetting for Continual Learning via Model Adaptation ICLR2019

原论文:openview

PGMA介绍

PGMA(Parameters Generation and Model Adaptation),作者提出的模型与之前的LwF、EWC、iCarL方法大不相同。PGMA不像LwF或EWC,学习一整套的参数,来应对所有的任务。它将分类器的参数分为两部分,一部分为所有任务共享参数集,另一部分为任务特定参数集。对于每一个训练(测试)实例,都为其生成特定的参数集来完成分类等任务。

PGMA由三部分组成:

  • Solver
    主要的分类模型。有两套参数,分别是对所有任务共享的参数集 θ 0 \theta_0 θ0,以及任务特定的参数集 H H H H H H由DPG针对特定的训练(测试)样本动态生成。

  • Data Generator(DG)
    DG有两个作用,主要的作用是来生成过去任务的数据,来抗遗忘。次要作用是来生成嵌入向量 z i z_i zi
    所以DG由两部分组成:Decoder和Encoder,分别用来生成过去的数据和生成嵌入向量。

  • Dynamic Parameter Generator(DPG)
    接受训练样本 x i x_i xi,和一个嵌入向量 z i z_i zi,由DG生成。DPG利用 z i z_i zi来产生针对 x i x_i xi的参数集,替换Solver中的 H H H

    使用 z i z_i zi而不是用原始数据 x i x_i xi的原因是原始数据的维度可能过高,计算处理起来十分麻烦,所以采用embedding的方式来降低计算复杂度,降低映射空间。

Sequential training

Symbol denotation

x i x_i xi是真实数据集中的数据, y i y_i yi x i x_i xi对应的标签; z i z_i zi表示嵌入向量; p i p_i pi表示DPG生成的参数,传递给Solver。
从上图可以看出,DG由两部分组成,分别是 D G E DG_E DGE D G D DG_D DGD,代表Encoder和Decoder。其中 θ e \theta_e θe表示Encoder网络中的参数, θ d \theta_d θd表示Decoder网络中的参数。
μ \mu μ代表DGP网络中已经训练好的参数, x m ′ x_m^{'} xm表示生成的过去任务的数据(replayed data)。

Loss function

模型训练的目标是最小化目标函数,继而使模型能够得出理想的结果。PGMA由多个部分组成,所以每个部分都有其相应的Loss function。
对于DPG & S:
minimize ⁡ μ , θ 0 L c e ( S ( x i , θ i ∗ ) , y i )  s.t.  ∑ m = 1 M ∥ R ( x m ′ , θ i ∗ ) − R ( x m ′ , θ i − 1 ∗ ) ∥ < ϵ r \begin{aligned} \underset{\mu, \theta_{0}}{\operatorname{minimize}} & \mathcal{L}_{c e}\left(S\left(x_{i}, \theta_{i}^{*}\right), y_{i}\right) \\ \text { s.t. } & \sum_{m=1}^{M}\left\|\mathcal{R}\left(x_{m}^{\prime}, \theta_{i}^{*}\right)-\mathcal{R}\left(x_{m}^{\prime}, \theta_{i-1}^{*}\right)\right\|<\epsilon_{r} \end{aligned} μ,θ0minimize s.t. Lce(S(xi,θi),yi)m=1M R(xm,θi)R(xm,θi1) <ϵr
L c e \mathcal{L}_{ce} Lce是交叉熵损失函数,要求 μ \mu μ θ 0 \theta_0 θ0使得 L c e \mathcal{L}_{ce} Lce最小,但同时要满足第二个式子的条件。

对于DG,先来看一下DG的训练流程:
DG Training
在上图的左半部分, x i x_i xi经由encode得到 z i z_i zi,然后 z i z_i zi经过decoder之后得到 x i ′ x_i^{'} xi,即重放数据。与原数据 x i x_i xi作比较,计算损失,来提高重放的精度。
右半部分,有两个constraint,还有两个decoder。这两个decoder的不同之处在于其参数不同,一个是 θ d \theta_d θd,一个是 θ d ′ \theta_d^{'} θd θ d ′ \theta_d^{'} θd的意思是decoder在对优化(训练)当前任务 T i T_i Ti之前的参数集。
我们可以看到,随机取样的向量z,由两个decoder接收,生成两个重放数据,然后要这两个重放数据的差异最小化,防止遗忘过去的知识(Eq9);同时,将decoder ‘ 产生的重放数据 x m ′ x_m^{'} xm输入进encoder中,解码为向量 z z z,与 z m s a m p l e z_m^{sample} zmsample比较,保证取样的稳定性。(Eq8)
E q . 8 : min ⁡ ∑ m = 1 M ∥ z m sample  − D G E ( x m ′ , θ e ) ∥ E q . 9 : min ⁡ ∑ m = 1 M ∥ D G D ( z m sample  , θ d ) − x m ′ ∥ \begin{array}{l} Eq.8:\min \sum_{m=1}^{M}\left\|\mathbf{z}_{m}^{\text {sample }}-D G_{E}\left(x_{m}^{\prime}, \theta_{e}\right)\right\| \\ \\ Eq.9:\min \sum_{m=1}^{M}\left\|D G_{D}\left(\mathbf{z}_{m}^{\text {sample }}, \theta_{d}\right)-x_{m}^{\prime}\right\| \end{array} Eq.8:minm=1M zmsample DGE(xm,θe) Eq.9:minm=1M DGD(zmsample ,θd)xm

PGMA完整训练流程

Algorithm PGMA
左半部分是对于第一个任务学习时,因为一开始没有先前的学习经验,所以对于第一个任务需要单独处理。
右半部分是对剩余的任务的学习,可以看出两部分的步骤有较大的重叠。

对于实验部分,作者使用MNIST数据集和CIFAR-10数据集用来做图像分类任务。类别不多,训练过程较为容易。不再赘述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值