20230607【开放世界的感知:探索可迁移与可持续学习之路】巩东:Continual Learning and Memory Augmentation……_哔哩哔哩_bilibili
游荡……游荡……找个talk看一下
讲的是continuous learning(好家伙缩写也是CL)
1.continual learning-
类似学习的分类
传统学习任务:只有一个任务+能拿到所有数据集+IID
CL:数据是不同任务的+数据不一样+模型想要在所有任务上效果好
MTL:所有任务是同时拿到数据的+数据不一样+模型想要在所有任务上效果好
OL:数据是数据流+IID+任务唯一
DA:任务不同+只有源任务数据+考虑目标域的
CL的设置
有不同的分类,
任务不同:会不会知道任务边界?
分布不同:output每个分布一样,input分布不一样
类别不同:不考虑input的变化,output的变化,每个task只有子集(只看到2个类,最后划分10类)
主要问题:灾难性遗忘
一些方法~
在神经网络参数上加一个稀疏的约束 防止forgetting
【作者的工作】认为遗忘是因为没有学到真正的知识,如果学到真的知识就不会遗忘了。所以如果我们加一些稀疏约束,让我们每次尽量少学capacity,那么reserve了更多可以学的capacity,这样后面遗忘的就少了。
具体做法:每个新任务在包含loss function之外依赖experience replay的,我们不希望task的时候还使用task ID,设置了replay buffer,新任务会有少量的训练。
sparsity除了loss之外间接地让parameter也是sparse的。中间会和NN点乘来通过贝叶斯增加sparsity,
除了sparsity还有用到knowledge distillation,保证希望直接感知到任务??
避免forgetting、区分得更好一点。
2.Memory Augmentation
发现异常数据,是一个比较general的knowledge detection的setting
我们希望用正常数据训练的能处理没见过的、abnormal的、不正常数据。。maintain a pool,鼓励模型利用存储pool的数据进行regularization。如果测试时候有没见过的样本,还是会和prototype对照着进行regulization、会有比较大的差异
强烈依赖于sparse 假设
例子:用9训练,给了5还是会去找很类似的模式做reconstruction,会出来一些长得和5很像的数字,
做了一些knowledge detection
强的pretrain还需要CL吗?还能增强吗?
如何避免forgetting,如何学classify
足够strong?每次见到不同任务-只extract features形成prototype,average-每一个一个新的prototype,不需要训练没有forgetting
不够---基于learning to prompt等
是不是基于prototype的达到了上限?虽然直观,但是假设class有gaussion distribution with isotropic covariance,因此区分性不算很好。
实验发现,有提高===random projection,把embedding等adaptation,不需要额外训练没有forgetting
稀疏神经网络---intuition
基于之前的方法,是否能做稀疏网络?
forgetting-over complex-------稀疏 representation
sparsity-激活而不是参数上
对应关系:加载activation上,没有被激活的不被用到;贝叶斯方法做dropout