李宏毅——终身学习lifelong learning

导读

人从小大大用同一个脑袋学习
但每个作业都训练同一个神经网络
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-di6RM4AY-1569768951050)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p83)]
为什么不用同一个网络学习不同的任务呢?
终身学习的不同称呼
LLL(life long learning)
continuous learning
never ending learning
incremental learning
可以做不同的任务
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3t4lJvqA-1569768951050)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p84)]

要解决的问题

1、学过的旧东西记下来,但要能学新的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SBmpE8Tg-1569768951051)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p85)]
例子:手写数字辨识
在一个三层的网络中学习第一个有噪音的任务,在任务1学到的东西可以用在任务2上。任务1的正确率甚至没有任务2高,这个可以视为迁移学习。
让机器学任务2后,任务2的准确率更高,但是任务1的准确率下降
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MST77xk1-1569768951051)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p93)]
是否是因为网络过于简单?不是的,因为同时学任务1和任务2,能够学的比较好
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sxFuzjEx-1569768951051)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p94)]

例子:问答系统。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YrtmBVvM-1569768951051)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p95)]
机器学习的训练资料是:文章、问题、答案
bAbi训练集有20种不同的题型
机器从第一个任务开始学习,学到第20个。
看机器对题型5的回答,只有刚学完题型5时正确率比较高。
对于其他题型也是这样的。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vfjMjME8-1569768951052)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p96)]
如果同时学20个任务的话,正确率还行。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BW0DJ5Yx-1569768951052)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p97)]
证明网络有能力学完这些东西,但是没有做到。
这种现象叫做灾难遗忘。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TfLcWmpM-1569768951052)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p98)]

如何解决

1、多任务学习
很难实现,要保存所有的旧资料才行,学习可能很久(存储、计算问题)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JetuvK80-1569768951052)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p99)]

遗忘问题

Elastic Weight Consolidation(EWC)

基本思想

有一些weight重要,但是有一些不重要;保护重要weight,只调不重要的额。
做法:对于每一个theta,有一个守卫参数b
修改loss,计算当前参数与之前的参数之间的距离。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lLzsO6TB-1569768951053)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p100)]
b用来表示保护theta的程度
可以将theta视为一种regularization
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UUNuQ2Ky-1569768951053)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p101)]

理解

假设有两个任务,网络有两个参数theta,颜色越深,说明loss越小
学习任务1时,参数从theta0学到thetab,再学习任务2时,继续训练,学习到theta* ,此时任务2的loss变小,但是任务2的变大
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5DUrfgD9-1569768951053)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p103)]
在EWC中,可以使用某种方法算重要性,比如算微分,theta1比较小,也就是说在theta1上,改变参数,对结果影响不大,b1可以设为比较小的值,但是theta2微分比较大,b2设置的比较大
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iviLl9xC-1569768951054)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p105)]
移动时,尽量不要动theta2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Syd1dwTf-1569768951054)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p106)]
当然求导不是唯一的方法,可以用其他的方法。
原始EWC的实验结果
分别训练A,B,C,横轴表示在不同任务上的表现,纵轴表示训练阶段
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qI0XmEaj-1569768951054)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p107)]

EWC的变形

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6SVcr3Bq-1569768951054)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p108)]

其他方法

生成数据

生成数据,来缓解数据过多占用内存的问题
先让机器学task1,然后学task2,同时要训练generator,学会生成task1的数据,此时就可以把task1的data丢掉,用生成的数据和task2的放在一起训练。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VsKQJmAt-1569768951055)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p109)]
但是目前靠机器生成复杂数据,能不能做的起来尚待研究

新增类

如果训练任务需要不同的网络呢?比如类增量问题
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cX9GeMCn-1569768951055)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p110)]

knowledge transfer

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yocblAG7-1569768951055)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p112)]
不为每个任务训练模型,让不同模型之间互通有无,也可以节省模型开销空间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QfjK32Vc-1569768951055)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p111)]

life-long vs transfer

不同点:在transfer时,只在乎任务2,不在乎任务1点表现,但是life-long希望都表现好
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qnH3Fu8o-1569768951056)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p113)]

如何衡量life-long learning

通常用matrix,每个row代表学习的阶段,column表示在任务X上的表现。
Accuracy是最后一行的平均
多不会遗忘:backward Transfer,学到某个阶段时减去刚学过时的表现,求平均
(通常为负)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4GAyP9s8-1569768951056)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p114)]
forward Transfer:表示能transfer到没学的任务的表现
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fOARiixU-1569768951056)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p115)]

GEM

gradient Episodic Memory
在新的任务算出gradient,再计算之前的Gradient的方向。算出现在移动的方向。这个方向不会伤害到原有的任务,而且和当前gradient的方向越近越好。
在这里插入图片描述
这种需要存一些过去的数据。
它的表现:后续的学习不会影响之前的任务,甚至能有所改善
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k2X5tdhX-1569768951057)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p117)]

Model Expansion

有可能真的学不下了,能不能扩张模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z4Rr1dps-1569768951057)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p118)]
模型扩张的速度应该比任务来的速度慢。这个是个尚待研究的问题,没有太多研究。

Progressive Neural Network

一个网络做任务1,网络1的输出当作网络2的输入,网络1、2的输出都当作网络3的输入
实操上做不了太多任务
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NzlaioIc-1569768951057)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p119)]

expert gate

每个task训练一个网络,每个新任务进来,看和哪个旧任务最像,希望做到knoledege transfer。这里模型扩张的速度和新任务到来的速度一样,在任务较多的时候也是会有比较多的模型
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n8YkVkqi-1569768951057)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p120)]

Net2Net

让网络长宽
直接加neuron的话,可能会加噪声,所以如何加神经元,但是不引入噪声很重要
做法:把神经元分裂,w仍然是c和d,但是分裂后变为f/2,但是问题是加入的神经元的gradient都一样,所以要加一个小小的noise
也不是每进来一个任务就加网络,而是看训练效果怎么样,决定是否expand
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-46DJiMKV-1569768951058)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p121)]

curiculum learning

在未来可能会有的问题
这些任务的顺序怎么排序
例子中,先学任务1,再学任务2,效果不好
但是先学任务2,再学任务1时,一开始任务1效果不好,但是没有忘记
所以说明,是否发生遗忘,和任务排序有非常重要的关系。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xMBcS4w9-1569768951058)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p122)]
已有的研究
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pZ3un5IH-1569768951058)(evernotecid://C7EDAE3B-B0B5-43D7-9120-9EA71A1AFF71/appyinxiangcom/23815745/ENResource/p123)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值