【学习】life long learning


life long learning

在这里插入图片描述
希望机器能一直学习。
模型上线之后取得反馈,进而更新参数。
在这里插入图片描述

LLL的难点

在这里插入图片描述
先学任务1再学任务2,就会忘记1。如果是一起训练就会得到很好的结果。
在这里插入图片描述
QA:给定一份文件,根据文件回答问题。
在这里插入图片描述
在这里插入图片描述
依次一个一个任务学,学新的任务就会忘记旧的任务。
可以学多个任务,也有些得到很好的结果。
在这里插入图片描述
灾难性遗忘
在这里插入图片描述
如果想要机器记住所有的东西,那就要学习所有的数据,存储的资料和训练的时间就非常大。
在这里插入图片描述
多任务训练可以认为是LLL的上限。
我们希望机器在一个模型里面学会多个任务而不遗忘之前学习的任务。
在这里插入图片描述
LLL跟transfer learning很像,但是transfer learning关注的是新任务上的准确率,不关注旧任务。

在这里插入图片描述
在这里插入图片描述

评估

在这里插入图片描述

二、LLL的三个解法

1、Selective Synaptic Plasticity选择性突触可塑性

让神经元的某些连结具有可塑性,有些是要固化的。
在这里插入图片描述

为什么会有灾难性遗忘呢?

越蓝loss越低,越白loss越高。
下面的做法会遗忘任务1,那有没有可能让他限制θ往右移?
在这里插入图片描述
基本思想:模型中的一些参数对前面的任务很重要。只改变不重要的参数。θb是从前面的任务中学习到的模型。加入守卫bi,改写我们的loss方程。我们加入之前的参数和现在的参数的差值平方项求和,希望他们越接近越好,但是不是所有的参数维度都是越接近越好,所以引入bi。
在这里插入图片描述
bi=0,灾难性遗忘,相当于没有设置这一项。bi很大,相当于前后的参数很像,就没办法在后面的任务上学好。
在这里插入图片描述
怎么看那些参数更重要?

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
bi可以算

GEM

在这里插入图片描述

2、Additional Neural Resource Allocation额外的神经资源分配

额外训练别的模型,实验之前的模型的参数
在这里插入图片描述
并没有完全解决这个问题!

packNet&CPG

packNet使用比较大的网络,分别在不同的任务用不同的参数。
在这里插入图片描述

3、memory reply

使用先前任务的生成模型生成伪数据。
在这里插入图片描述
多任务分类器的类别数量不同:
在这里插入图片描述

Curriculum Learning

调换任务学习的顺序结果会不同。 Curriculum Learning是研究任务顺序的方法。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Raphael9900/article/details/128613724