Life Long Learning LLL

Life Long Learning LLL

能否每次都训练同一个神经网络, 而不是每个task 一个 神经网络


在这里插入图片描述还有别的叫法
Continuous Learning, Never Ending Learning, Incremental Learning

在这里插入图片描述

终身学习需要解决3个问题

1. 避免知识遗忘, 但不是妥协 Knowledge Retention

在这里插入图片描述

图像识别的例子

手写数字识别, task1 有噪点. task 没有.

在这里插入图片描述在这里插入图片描述
先训练task1, 再用task1 的结果训练task2,类似迁移学习. 最终模型task2的正确率变高了, 但是用模型再去检测, task1, 训练结果变差了.如果task1和task2的数据放在一起训练, 训练的结果是task1 和task2 的正确率都很高. 不会存在遗忘的问题.
答题例子

输入一个文本, 训练出一个模型, 能回答不同的问题.
最常用的是babi的 corpus, 提供20种题型.
现在从第5个任务, 依次学习到第20个任务, 每次回去检测第5个题型的正确率. 正确率变差.

在这里插入图片描述在这里插入图片描述
在这里插入图片描述如果同一个NN, 同时学20 个任务, 每个题型都有一些正确率.

这种现在称作Catastrophic Forgetting 灾难性遗忘.

multi-task traning 可以解决这个问题, 但是, 当task 很多的时候, 有存储和计算能力的问题. 不能一直背负巨大的训练数据, 同时计算也更复杂.
在这里插入图片描述

Elastic Weight Consolidation(EWC )

一种经典解法. EWC, 思想 , 过去学过的重要的weight , 不要改动, 只改动不重要的weight小的参数.

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

b是before,
实际是做regularization, 规则化, 使得θi 接近 θb, bi 是守卫参数, bi = 0 , 新的θi 没有限制, 任意调整. bi越大, θi 越接近 θb

下面是ewc的图示例子, 先训练task1, 然后task2, 颜色越深, loss越小.

  1. 用gradient descent 方式, 再训练task2的时候, θ∗满足task2, 但是, 回到task1, loss 又变大了.
  2. 怎么计算守卫bi, 有很多种做法, 举个例子, 计算θ1 和 θ2 对Loss的二次微分, 看出山谷的每一个方向是宽敞还是狭窄, θ1宽敞, bi就小, θ2狭窄, bi大, 对loss 影响大.
  3. 用ewc的方式对task2 重新训练, 收敛在θ*, 回到task1, 没有遗忘task1的训练结果.
  4. 手写辨识的实验结果, 对图片做不同的破坏, 形成3个task. L2 的结果产生intransigence , L2的regulazaion 限制太大, 学不起来, 学不会会新的技能.
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

用不同的方法, 计算bi的方式,

• Elastic Weight Consolidation (EWC)
• http://www.citeulike.org/group/15400/article/14311063
• Synaptic Intelligence (SI)
• https://arxiv.org/abs/1703.04200
• Memory Aware Synapses (MAS) 最新
• Special part: Do not need labelled data, 只要x, 不要y
• https://arxiv.org/abs/1711.09601

generating data

multi-task learning 可以解决lifelong learning的遗忘的问题, 所以, 它一般作为LLL上限upperbound.

为了解决multi-task 存储数据多和训练复杂的问题 , 可以存一个model , 可以产生task的data . 通过使用生成模型生成伪数据进行多任务学习.

训练一个generator 可以学会产生 task1的data, 然后和task2的data加在一起, 可以训练生成一个generator 可以产生task1, task2 的data.

有些任务生成高清类影像. 在实用上能不能训练起来, 有待研究.

以上例子是手写辨识的例子,只是不同的task 加了noise. 可以用一个NN来训练.
有时不同的任务需要不同的network structure, 如task1 分类10个, task2 分类20个. 在life long learning 怎么做? 以下参考
在这里插入图片描述

2. 知识迁移 Knowledge Transfer

希望不同任务的咨询可以互通有无. 而不是每个task 一个模型.

Life-Long v.s. Transfer
transfer learning , 要求, 学完任务1, 在任务2上做的更好.
life long learning , 要求, 任务1,任务2, 都要做的好. knowledge 既要迁移 也要rentension保留.
在这里插入图片描述

evaluate

evaluate 一个LLL的model.
在这里插入图片描述backward transfer, 计算机器有多不会遗忘.
forward transfer, 计算机器还没有训练的T, 对此的预测.

GEM

GEM Gradient Episodic Memory (渐变情景记忆, backward transfer 是> 0)
存之前的gradient, 在计算新的task的gradient的时候修改方向, 保持和之前的gradient 方向乘积为正, 对过去的task 有帮助, 移动gradient, g–> g’

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

3. Model Expansion

在这里插入图片描述真实场景下的机器学习系统,最终都会变成终身学习系统(Lifelong learning system),不断的有新数据,通过新的数据改善模型,刚开始数据量小,我们使用小的网络,可以防止过拟合并加快训练速度,但是随着数据量的增大,小网络就不足以完成复杂的问题了,这个时候我们就需要在小网络上进行扩展变成一个大网络了

任务太多, network已经到了极限, 让network 自动扩张model大小.
有效率的扩张, model 扩张的速度要比任务进来的速度慢. 不然model成长速度过快,没法存下来.
这是尚在研究的问题.以下是相关例子.

progressive NN

思路就是说我不能忘记第一个任务的网络,同时又能使用第一个任务的网络来做第二个任务。
task越来越多, 参数也会越来越多, 无法学太多task. 多一个任务, 多一个model
在这里插入图片描述

Expert Gate

简言之,希望通过一个auto-encoder gate来确定新的task所要用的expert network,从而选出与新任务相似性最高的旧任务,再进行进一步训练。
在这里插入图片描述

Net2Net

在这里插入图片描述
https://blog.csdn.net/cFarmerReally/article/details/80927981
左右network做的事情一模一样, 2个Nerual 变3个,input 一样, output 减半, network变宽, 但不会忘记已经学到的东西. 为了避免这两个nerual 一样, 给参数加上小小的noise ,让他们看上去不同在去做训练.

任务的顺序,对学习的记忆的保留和准确率有影响, 对于怎么为学习的顺序进行排序也是未来研究的方向.
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值