To begin with
近来完成了毕业论文,就开始想要给未来研究生的生涯打下扎实的基础。开始呢我考古了一些非常经典的神经网络,AlexNet到SENet,然后正巧CVPR21又出了许多新的论文,我又尝试着去了解这些最新的研究进展。不过最后发现自己看了就忘是怎么回事???可能就像读了一篇金融学的文章,很厉害但是却不在我的知识体系里面。所以我去导师官网找了他们发的文章,决定还是从他们文章切入。再去看新的论文来拓展吧。根据对导师实验室近年发的论文标题进行阅读理解,我还是基础的概念知识补全,随后再进行详细的论文学习。
增量学习
**概念:**增量学习(Incremental Learning)是指一个学习系统能不断地从新样本中学习新的知识,并能保存大部分以前已经学习到的知识。此外终身学习(Life Long Learning)、持续学习(Continuous Learning)、无止境学习(Never Ending Learning)与增量学习等同概念。
需要解决什么问题?
- 知识保留(Knowledge Retention): 希望机器做到保留以前学过的知识,但又不是固执的只停留在旧任务的识别分类。如果没有做到这一点,就会发生灾难性遗忘,即为某一神经网络模型注入新数据进行训练,由此所产生的新的神经网络在原数据集上的性能下降,当识别率低于一定值我们就认为该模型已经忘记以前的知识。(ps:多任务训练/联合训练是增量学习的上界。)
- 稳定性-可塑性悖论: 在实际表现中,模型在一方面必须表现出从新数据中整合新知识和提炼已有知识的能力(可塑性),另一方面又必须防止新输入对已有知识的显著干扰(稳定性)。
有哪些方法?
正是由于神经网络本身的结构与参数的设置,导致对于解决“遗忘”和“困境”问题只有从各种各样的缓解机制和策略入手。
- 思路1. 不使用旧数据:
- Learning without Forgetting :
用微调的思路更新网络参数,在优化损失函数的时候引入蒸馏熵以保护网络对旧知识的记忆。
- Learning without Forgetting :
- 思路2:使用部分旧数据:
- iCaRL: Incremental classifier and Representation Learning:只需使用一部分有代表性的旧数据和新数据就能同时训练得到分类器和数据特征从而实现增量学习。
- 思路3:生成旧数据:
- Lifelong GAN: Continual Learning for Conditional Image Generation:本文提出一个持续学习模型可以同时应用于label-conditioned和image-conditioned generation。这篇文章也引入了知识蒸馏。
在看增量学习的时候,大数据就会给推其他的各种学习,这些学习就是分别对应于在不同场景下会出现不同的需求。
在线学习
Online Learning是一个对实时运行的系统的训练方法,实时有样本产生,实时提取特征并且和目标列拼接成样本,实时评估和训练。
从概念可以看出在线学习重点在于处理实时产生数据,并且怎么进行数据拼接、出错时模型的回滚都是比较重点的问题。
迁移学习
Transfer Learning是指利用数据、任务、或模型之间的相似性,将在源领域学习过的模型,应用于新领域的一种学习过程。
很明显迁移学习不用考虑模型在旧数据上的表现。将模型进行迁移也就是为了方便,节约计算资源。
多任务学习
多任务学习涉及多个相关的任务同时并行学习,梯度同时反向传播,利用包含在相关任务训练信号中的特定领域的信息来改进泛化能力。
迁移学习的目标是将知识从一个任务迁移到另一个任务,其目的是使用一个或多个任务来帮助另一个目标任务提高,而 MTL 则是希望多个任务之间彼此能相互帮助提升。
参考文章: