1 灾难性遗忘介绍
- 当神经网络被训练去学习新的任务时,它可能会完全忘记如何执行它以前学过的任务。
- 这种现象尤其在所谓的“连续学习”(continuous learning)或“增量学习”(incremental learning)场景中很常见
2 不同视角下看待灾难性遗忘 以及对应的解决方法
2.1 从梯度的视角
2.1.1?从梯度的视角看灾难性遗忘
- 我们有两个不同任务的损失曲面,用平滑的曲面训练完之后,再在坑坑洼洼的曲面上继续训练
- 在第二个任务上训练完之后,最优点沿着红色的箭头移动(向第二个任务平滑曲面的山峰移动),相当于向第一个任务(平滑曲面)的底部走了
- ——>第一个任务的损失越来越高,效果越来越差,这就是灾难性遗忘
2.1.2 从梯度的视角解决灾难性遗忘(1)——找到联通路径
[1803.00885] Essentially No Barriers in Neural Network Energy Landscape (arxiv.org)?【ICML2018】中提到,神经网络的所有的极小值都是连通在一起的;同时给出了如何从一个极小值找到一条通路连到另一个极小值的算法
——>从原始任务的某个极小值出发,在优化新任务的时候尽量沿着底部的通道走,就可以保证原始任务不受影响了
2.1.3?从梯度的视角解决灾难性遗忘(2)——新任务梯度和原始任务梯度垂直
- 在优化新任务的时候,保证优化的方向和原始任务不相干
- Orthogonal gradient descent for continual learning PMLR 2020:保证在优化新任务的时候产生的梯度和原始任务产生的梯度在一个低秩空间是垂直的
2.2 从权重的角度
2.2.1 从权重的角度看灾难性遗忘
- 某些权重对原始任务很重要,经过新任务训练,这些权重发生了改变,原始任务的效果当然也就受到了影响
2.2.2?? 从权重的角度解决灾难性遗忘(1)——如何调整权重
Overcoming catastrophic forgetting in neural networks 2016
- 原始任务A的最优参数是分布在灰色区域中的;新训练任务B的最优参数区间在白色区域中
- 如果不做任何限制,训练完A任务后直接训练B任务,可能会沿着蓝色的射线方向走,那么就走出了原始任务A的最优参数区间了
- 所以这里提出了EWC的方法,这样可以让参数不离开原始任务A的最优参数区间,同时接近/到达原始任务B的最优参数区间
2.2.3?? 从权重的角度解决灾难性遗忘(2)——冻结部分参数
- The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks 2019 ICLR
- 神经网络里只有一部分权重真正起作用,很多都是没用的
- ——>freeze住重要的参数,不重要的参数finetune(时间序列部分2023年的微调大模型的方法就是这个思路)
2.3? 从仿生学的角度
2.3.1 从仿生学的角度看灾难性遗忘
- 仿生学着重于模仿自然界中的生物机制和策略,以解决工程和技术上的挑战。
- 在这个背景下,考虑人类和其他动物是如何处理学习和记忆的,可以帮助我们理解并改善神经网络中的灾难性遗忘问题。
2.3.2?从仿生学的角度解决灾难性遗忘(1)——复习
- 样本复习——训练新任务的时候混一些旧任务的数据样本
参考内容:?为什么神经网络会存在灾难性遗忘(catastrophic forgetting)这个问题? - 知乎 (zhihu.com)