参考:https://mp.weixin.qq.com/s/K-_bsOzgWylPzvjcD1laHA
人类的学习具有持续性学习的特点,即掌握的旧知识有助于学习学知识,而学习完新知识后不会影响对旧知识的掌握。但神经网络却天然存在遗忘性问题,由于对于某个任务的学习均存储与网络的参数上,当用这个网络学习新的任务时,更改的参数意味着对原始任务的学习能力下降了。
解决方法1:训练方法(是否适用dropout)
试验证明,添加dropout提升了网络的持续性学习能力。一种理解为dropout通过抛弃一定神经元提升模型鲁棒性,使得模型倾向于将学习到的模式均匀的保存在每一层的神经元当中,当后续任务破坏(更新)一些神经元时,剩下的神经元仍具有对旧任务的学习能力,否则如果没有dropout时,旧任务学习的模式可能随机存储在某些神经元中,当这些神经元在新任务学习中被破坏时,就丧失了对旧任务的学习能力。
解决方法2:新方法
- Regularization。限制网络参数更新,希望网络在学习完新任务后仍保留旧任务的参数。典型方法为EWC。
- Ensembling。学习新任务时,增加新的模型。整个整个方法实际上是多个模型对应多个任务。对每个任务选择最适应的模型。缺点是每个人物需要存储新的模型。典型方法是PathNet。
- Rehearsal。通过在学习新任务时,不停学习旧任务的方式,保留对旧任务的学习。具体方式为在学习新任务时候,混合旧任务的数据,使得模型兼顾新旧任务。缺点是需要保存旧任务的数据,并存在对相同任务多次学习的情况。典型方法是GeppNet。
- Dual-memory。提出fast-memory(短记忆)与slow memory(长记忆)的概念。新任务的学习存储在fast-memory中,不断将其迁移到slow-memory。典型算法是GeppNet+STM。
- Sparse-coding。学习新任务时发生的遗忘是因为新任务学习到的参数将原始参数抹除了。该思路人为的学习到的参数稀疏的存在某些神经元上,减小新任务学习到的参数旧任务参数的影像。典型方法为Sensitivity-Driven。
但是 Sparse-coding参数稀疏存储的思路与方法一加dropout是参数稠密存储相悖。
在相关实验中,对相关算法进行了对比。
设计了三种任务,描述持续性学习。
Data Permutation Experiment:新任务是将旧任务的数据做变换,但任务目标一致。
Incremental Class Learning:增加学习类别。,就是当模型可以对花进行分类的时候,希望通过持续学习可以认识各种类别的树。以MNSIT数字分类为例,先让模型学习一次性学习一半的类别(识别0-5),再逐个增加让模型能够识别6-9。
Multi-Modal Learning:使得模型能够在一种任务学习后,转换到另一个领域。多模学习是希望模型能够实现视觉到听觉的转换。作者分别尝试让模型先学习图像分类CUB-200再学习音频任务AudioSet,以及先学习AudioSet再学习CUB-200。
所以作者用Omiga_new来评估模型学习新任务的能力,Omiga_base评估模型的记忆能力,Omiga_all是这种两个能力的综合考量。
实验结果:
image.png
结果分析
image.png
发现没有一种算法能够在多种类型的持续性学习中保持较好的性能,各种方法仍有局限性。
网友评论