有时候真的从ai的理解反复横跳,从一个不明觉厉ai的概念的小白到初识neural network的科研菜鸡。概念上跟着吴恩达大佬刷新了一下,其实只是看上去nn和大脑神经相似而已,本质上就是让机器给我们一个函数,一个“黑盒”,输进去data,出来我们想要的结果。
增量学习(incremental learning)从某种角度来说,有点契合我们人类持续不断地学习的状态,我们永远鼓励大家接受新事物,学习新知识。然而就要考虑到之前的学到的(旧知识)
一般的机器学习模型在新任务上训练时,在旧任务上的表现通常会显著下降。
学生的我深有体会,学了新的,忘了旧的,哎呀喜新厌旧。
出现遗忘,对于ML来说,一个普遍缺陷:「灾难性遗忘(catastrophic forgetting)」
造成灾难性遗忘的一个主要原因是「传统模型假设数据分布是固定或平稳的,训练样本是独立同分布的」TM不说人话,独立同分布属于同一组数据,且每个样本之间互不影响,平稳顺滑固定我就不解释了。
但当数据变为连续的数据流时,训练数据的分布就是非平稳的,模型从非平稳的数据分布中持续不断地获取知识时,新知识会干扰旧知识,从而导致模型性能的快速下降,甚至完全覆盖或遗忘以前学习到的旧知识。
前面好好地,后面给我来那么大的波动 不好学啊
所以为了克服这个问题,我们希望模型一方面必须表现出从新数据中整合新知识和提炼已有知识的能力(可塑性),另一方面又必须防止新知识对已有知识的显著干扰(稳定性)。这两个互相冲突的需求构成了所谓的「稳定性-可塑性困境(stability-plasticity dilemma)」。高级啊
解决灾难性遗忘最简单粗暴的方案就是使用所有已知的数据重新训练网络参数,
以适应数据分布随时间的变化。
尽管从头训练模型的确完全解决了灾难性遗忘问题,但这种方法效率非常低,
极大地阻碍了模型实时地学习新数据。
增量学习和持续学习(Continual Learning)、终身学习(Lifelong Learning)的概念大致是等价的
要注意增量学习和在线学习的区别,
在线学习通常要求每个样本
只能使用一次,且数据全都来自于同一个任务,
而增量学习是多任务的,
但它允许在进入下一个任务之前多次处理当前任务的数据」
增量学习有如下几个特点
1.学习新知识又能够保留以前大部分知识
2.计算能力与内存应该随着类别数的增加固定或者缓慢增长
3.模型可以从新任务和新数据中持续学习新知识,
当新任务在不同时间出现,它都是可训练的
增量学习常见的三种划分方式:
-
正则化(regularization)
-
回放(replay)
-
参数隔离(parameter isolation)