核心思想:模拟人类大脑,只需要用一个模型就可以学会很多个任务,从而可以解决所有学会的任务。但是目前大部分模型都是针对特定任务单独学习训练的。
一、challenge:
1.knowledge retention but not intransigence
1.如果顺序的把不同任务的数据集喂到同一个网络,会导致先之前的任务会有灾难性的遗忘。
2.如果把所有任务的数据集合到一起,统一学习。开销大,不值得。
3.* Elastic Weight Consolidation (EWC)解决遗忘问题
其中:第二项看看成是正则项。bi是 “守卫参数”,如果bi=0,就不会考虑θi之前的参数,如果bi等于无穷,就会严重堪虑θi
bi可以取二阶导数,如果二阶导数为0,相对平缓,在这个方向上可以移动,但是如果导数巨大,则这个地方就不能动
4.另外一个方向:multi-task learning 效果好,所以可以采用把所有任务数据都集中在一起来train模型,但是存储数据占据大量空间。为了解决这个问题,会train一个generator去生成各种task的任务。存储数据占空间,但是存储生成数据的模型是可行的。
5.Grandient Episodic Memory(GEM)解决以往问题
这个算法需要预存一些提前的时刻的梯度,在生成的新的梯度的时候对他们进行考量,遵循如下两个条件:
1.条件一:g’和g1、g2的内积大于零
2.条件二:g‘和g尽可能的接近
2.knowledge transfer
核心:学每个任务的同时可以提升解决其他任务的效果。
和transfer learning的区别:迁移学习是 学完task1可以使得task2效果更好,但是LLL是学完task2后还要让task1做的更好
3.model expansion
模型学习一定任务之后无法再学新的任务了,需要对模型进行扩张。要保证扩展速度小于新任务进来的速度,否则模型太大存不下来。
progressive neural networks
学习新的任务的时候之前学习的每个任务每层的output会接入当前任务。绿线、红线体现了knowledge transfer 。
缺点:不能学习太多任务,后面的任务接受的参数会越来越多
expert gate
当有新的任务的时候,考虑当前任务和之前那个任务的模型最像(GATE),就用之前模型的参数作为初始化。
缺点:同样模型扩张的速度=新任务来的速度
Net2Net
按照如下模型进行搭建,左边和右边是一样的。对h[2]和h[3]加一些noises,可以做到大体相同但是也可以分开训练。
在实际新任务来的时候,只有当训练的准确率不够好的时候才会将模型增宽,保证了模型扩张速度小于任务来的速度。
二.evaluation
三、新任务学习的顺序
模型效果会和任务学习的排序有非常大的关系
Curriculum learning
CVPR - taskonomy=task+taxonomy