Zhangzhe's Blog

The projection of my life.

0%

Continual Learning with Deep Generative Replay

URL

TL;DR

  • 本文提出一种学者模型用于处理持续学习问题,依次训练每个任务,每个任务都有一个学者模型,每个学者模型包括一个生成器和一个求解器
  • 生成器的作用是生成与 旧任务 真实样本同分布的样本
  • 求解器的作用是求解任务
  • 二者分开训练

Algorithm

网络结构

dgr1.png

  • 根据 task 顺序训练 学者模型
  • 训练新任务生成器时,新任务生成器负责 模仿新任务的真实数据和旧任务的生成器数据,这里的生成器实际上是指一整个 GAN,可以对抗学习来模拟样本分布。
  • 训练新任务的求解器时,求解器会映射 x -> y,这里的 x 来自第 i 个任务的真实样本和第 i-1 个任务的生成样本,生成样本的 label 来自于第 i-1 个任务的求解器的输出

Loss 设计

  • loss
    Ltrain(θi)=rE(x,y)Di[L(S(x;θi),y)]+(1r)ExGi1[L(S(x;θi),S(x;θi1))]L_{train}(\theta_i) = r\mathbb{E}_{(x,y) \sim D_i}[L(S(x;\theta_i), y)] + (1-r)\mathbb{E}_{x' \sim G_{i-1}}[L(S(x';\theta_i), S(x';\theta_{i-1}))]

    其中,DiD_i 表示第 i 个任务的数据,Gi1G_{i-1} 表示第 i-1 个任务的数据生成器。

    Ltest(θi)=rE(x,y)Di[L(S(x;θi),y)]+(1r)E(x,y)Dpast[L(S(x;θi),y)]L_{test}(\theta_i) = r\mathbb{E}_{(x,y) \sim D_i}[L(S(x;\theta_i), y)] + (1-r)\mathbb{E}_{(x,y) \sim D_{past}}[L(S(x;\theta_i), y)]

    其中,DpastD_{past} 表示过去数据的积累分布

Thought

  • 感谢 GAN,感恩 Ian Goodfellow