李宏毅机器学习(27)

Life Long Learning

对比人类从生到死都只用一个脑子学习,而机器每做一个任务就要换一个模型。那为什么机器不像人一样,也只用一个神经网络做所有事呢?
这就是Life Long Learning(LLL)。我们希望机器学会了一个技能之后就永远记得这项技能。
对此,我们需要解决三个问题:

  1. 让机器永远记得学过的知识,也要能学会新的东西。
    在这里插入图片描述

举例而言:在图像识别中,先学任务1再学任务2会发现机器把任务1基本都忘了。
但如果两个任务一起学,发现机器表现反而不错。这说明机器不是学不会,就是忘了!
在这里插入图片描述

文字处理也是这样。学完题型之后立即做题正确率很高,但一学其他的题型后这题就不会了。
在这里插入图片描述

问题是,如果机器同时学所有题型时,机器是可以同时学会的。
在这里插入图片描述

这叫Catastrophic Forgetting

解决方法:EWC

由于存储有限,我们不能将所有任务放在一起学习,并且这在时间上也是无法接受的。(这要求每多一个任务就学习一次)
有一种解决方法叫做Elastic Weight Consolidation (EWC)
基本思想是,让机器学完过去的任务后,保留“重要的参数”,只调“不那么重要的参数”。其重要程度用“守卫” b i b_i bi来表示。这样就能改写Loss Function了。
在这里插入图片描述
这样,如果 b i = 0 b_i=0 bi=0代表可以随便改动参数。
在这里插入图片描述
那么,具体怎么决定这个 b i b_i bi值呢?
一般来说是取“二次微分值”。这样可以在陡峭的地方基本不动,在平坦的地方自由移动。
在这里插入图片描述
在这里插入图片描述
结果表明EWC的效果最好,Gradient Descent会经常“忘记”,L2会“学不进去”。
在这里插入图片描述

Generating Data

我们之前讲到由于存储有限,不能将所有任务一起学习。
对此,有人想出了一招:我们不去存储之前的数据,而做一个用于生成之前数据的模型。即:用一个NN存储数据。
目前这还是个设想,我个人认为这并不实际,因为数据往往是无序的,不好生成。对此最好的方法应该是压缩算法。
在这里插入图片描述

现在,我们再来讲讲LLL的第二个问题。
2. 让机器能做到“任务间的知识转化”,即触类旁通。

这个要求并不只是Transfer Learning:在学习了任务1后,Transfer Learning只在乎能不能完成任务2;而LLL不仅在乎任务2能不能完成,还在乎机器还能不能记得任务1。
在这里插入图片描述

评价方法

LLL的评价方法有很多种。分别有准确度、记忆力、预测力。
在这里插入图片描述
在这里插入图片描述

Gradient Episodic Memory (GEM)

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

最后我们来看LLL的第三个问题:
3. 我们希望模型发现自己实在学不下去的时候,能自动扩张自己的规模。并且模型扩展的速度,比任务增长的速度慢。

目前这个问题尚未很好的解决,下面的例子在扩张的效率上不是很好。

Progressive Neural Networks

如上,把之前任务的前一层的隐层也当作输入。
但是这里,任务量大的话,将导致输入量大,因此难以用到很多种任务上。
在这里插入图片描述

Expert Gate

如上,会查看新任务与哪一个任务最像,然后以那个最像的任务为基础,训练模型。但是也会造成新增一个任务,就多一个模型这个问题。
在这里插入图片描述

Net2Net

可以使用类似“把某个神经元进行分裂”这种方法,去增加网络的宽度。这个方法稍微好一些。
在这里插入图片描述

顺序问题

除了上述3个问题之外,学习的顺序也很重要。有时候只要调换任务的顺序效果就能变得很好。
在这里插入图片描述
针对这个问题,有人就提出了分类学(taskonomy )。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值