终身学习
LLL,通过终身学习进化为天网,最终控制人类。
将训练好的模型上传到网络上,进行资料收集,用来再训练当前模型。
先训练任务一再训练任务二,但是在训练完任务二之后,任务一被忘记。
这里的多个任务不是指语音辨识、图像识别、文字辨识,而是指不同的domain。
学完新任务后,旧任务就被忘记。如果新任务和旧任务同时学习,会对旧任务有更好的表现,说明机器是有能力学习多个任务的。
Catastrophic Forgetting,机器学习的灾难性遗忘。
如何解决?Multi-task training,多个任务同时学习可以解决这个问题,但是实现起来是困难的,每学习一个新任务都需要前面的所有任务的资料,浪费存储空间和计算时间,这是不合理的。那么Multi-task training是LLL的上限。
为什么让一个模型学习多个任务?如果每个任务都让不同的模型进行学习,那么模型之间无法像人脑一样互通有无,而且模型可能会多到无法存储。
LLL比较在意在学习新任务后旧任务的表现效果如何。
查看训练完第i个任务后,测试在第j个任务上的表现如何。
Rij,i>j时说明是在看在旧任务上的表现如何,i<j则说明是在看新任务上的表现如何。
可以通过下面的三种方法来决定表现如何
可塑性连结
毁灭性遗忘的问题,应该如何解决?对每一次训练的结果参数,加上不同的权值,来表示参数的重要程度。每次训练时需要改写loss function,新的loss function等于旧的loss function再加上一部分,如下
新的θ-旧的θ,看他们的接近程度越近越好,并且每个参数在一次变动中的重要性(权值)由bi进行判断。bi设为0时会有灾难性遗忘,但是bi过大时,新的训练会train不动。
bi应该如何设计?看每个参数对于loss产生的影响,如果影响小那么θ就可以设置成很小,而如果对loss产生的影响大,那么θ就设置比较大。
bi的三种可能情况下的结果
progressive neural networks
将之前的训练出的参数作为之后的训练的输入,在每次训练时都需要额外的空间去存储额外的neuron。
CPG,增加部分参数同时保留部分参数。
Memery Reply
训练任务1时,产生model同时产生generator,用于即使产生任务1的资料,那么在训练任务2时,将任务2的资料和generator产生的资料一起输入到model中进行训练,那么当generator的占用空间小于任务2训练资料的占用空间时,那这种方法就是可能可行的。
每次训练时的class不同时,问题也是可解的。