摘要:
简单地重放所有以前的数据可以缓解该问题,但它需要大量内存,并且在现实世界中对过去数据的访问受到限制。提出了深度生成重放(Deep Generative Replay),由深度生成模型(“生成器”)和任务解决模型(“求解器”)。仅使用这两个模型,就可以轻松对先前任务的训练数据进行采样,并将其与新任务的训练数据交错。
在我们的深度生成重放框架中,模型通过生成的伪数据(使用GAN)的重放来保留先前获取的知识。
一些术语:
将要解决的N个任务定义为任务序列
T
=
(
T
1
,
T
2
,
⋅
⋅
⋅
,
T
N
)
T = (T_1, T_2, ···, T_N )
T=(T1,T2,⋅⋅⋅,TN)。
定义 1:任务
T
i
T_i
Ti 是针对数据分布
D
i
D_i
Di 的目标优化模型,
D
i
D_i
Di中的训练样本表示为
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi)。
将我们的模型称为scholar,因为它能够学习新任务并将其知识传授给其他网络。“scholar”与集成模型的师生框架的不同,师生框架的网络仅进行教学或学习。
定义2:scholar
H
H
H是一个元组
〈
G
,
S
〉
〈G, S〉
〈G,S〉,其中生成器
G
G
G 是产生类真实样本的生成模型,求解器
S
S
S 是由
θ
θ
θ 参数化的任务求解模型。
求解器必须执行任务序列
T
T
T 中的所有任务。完整目标是最小化任务序列中所有任务的无偏损失总和(所有任务的损失总和最小)
其中
D
D
D 是整个数据分布,
L
L
L 是损失函数。 在接受任务
T
i
T_i
Ti 的训练时,模型会输入来自
D
i
D_i
Di 的样本。
所提方法:
图(a)一个任务对应一个scholar,训练一系列scholar模型相当于连续训练单个scholar,同时参考其最新的先前scholar。
图(b)训练新的生成器,接收当前任务输入
x
x
x 和先前任务的重放输入
x
′
x'
x′,以模拟真实样本
x
x
x 和来自先前生成器的重放输入
x
′
x'
x′ 的混合数据分布。
图(c)新的求解器接收当前任务的输入
(
x
,
y
)
(x,y)
(x,y) 以及重放的
(
x
′
,
y
′
)
(x',y')
(x′,y′),重放的
y
′
y'
y′ 是通过将生成的输入
x
′
x'
x′ 输入到先前的求解器中获得的。
总结:
每一个新的生成器的输入是最新任务的数据和以前生成器的输出,使得当前生成器能够包含以前任务的全部输入信息,求解器同理。
如有错误,请多包涵!欢迎交流讨论!