【李宏毅2020 ML/DL】P99-105 Life Long Learning
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
本节内容综述
- 终身学习技术,让一个模型学习多个任务,又叫 Continuous Learning、Never Ending Learning、Incremental Learning。
- 要做到 Life Long Learning ,要解决三个问题:Knowledge Retention (but NOT Intransigence)、 Knowledge Transfer 以及 Model Expansion (but Parameter Efficiency) 。
- 首先来看
Knowledge Retention (but NOT Intransigence)
。 - 首先来看看机器的脑洞有多大,见 Example: Image 。我们发现机器存在 Catastrophic forgetting 。
- 在实际情况中,假设我们有 1000 个任务,我们很难把前 999 个任务的数据都保留,每次都同时在 1000 个任务上学习。因此,我们期待有一种方法,可以把之前学过的任务“记下来”,从而只学习新的任务,也不会忘记以前学过的任务。由此,提到方法
Elastic Weight Consolidation (EWC)
。 - 我们发现,multi-task learning 通常是 life long learning 的上线。有人想了一个奇招:
我们不去存储之前的数据,而做一个用于生成之前数据的模型
。 - 此外,我们还可以考虑 Adding New Classes 这种思路。
- 进入下一部分,
Knowledge Transfer
。简单地讨论了 LLL 的目的与意义。 - 之后,简单介绍了
Evaluation
。为了举指标的例子,介绍了一个方法 Gradient Episodic Memory (GEM) 。 - 最后一部分将简单讨论
Model Expansion (but Parameter Efficiency)
。 - 此外,我们可以讨论
Curriculum Learning
,即多任务的学习顺序
其实也很重要。
文章目录
- 本节内容综述
- 小细节
- Knowledge Retention (but NOT Intransigence)
- Example
- Image
- Question Answering
- Elastic Weight Consolidation (EWC)
- Example
- Result
- More
- Generating Data
- Adding New Classes
- Knowledge Transfer
- Evaluation
- Gradient Episodic Memory (GEM)
- Model Expansion (but Parameter Efficiency)
- Progressive Neural Networks
- Expert Gate
- Net2Net
- Curriculum Learning
- taskonomy = task + taxonomy 分类学
小细节
Knowledge Retention (but NOT Intransigence)
Example
Image
如上,其在任务一学到 90% ,在任务二上测试,准确率更高;但是在学完任务一后,再去学任务二,其在任务一的表现变差了(Forget!!)。
但是,如果把任务一、任务二打乱在一起,一起学习,如上,其结果偏好。其明明可以把两个任务都做好。
Question Answering
如上,让机器学一个问答数据集 bAbi
。
如上是某个题型的准确率,以第一排为例,在学完题型 5 后,去学题型 6 ,其马上就忘了题型 5 。
但是,如果把 20 个题型一起训练,其在各个题型的表现其实不差。
我们叫这种情况为机器的 Catastrophic forgetting 。
Elastic Weight Consolidation (EWC)
基本思想是,让机器学完过去的任务后,保留“重要的参数”,只调“不那么重要的参数”。
如上,对于模型bbb,其每一个参数θib\theta_i^bθib都有一个“守卫”bib_ibi。由此,我们得到了 EWC 中的损失函数。
由此:
- 如果 bi=0b_i = 0bi=0 ,那么对于 θi\theta_iθi 来讲就没有约束;
- 如果 bi=∞b_i = \inftybi=∞ ,那么 θi\theta_iθi 就会等于 θib\theta_i^bθib 。
我们这里,考虑的是新参数与旧参数的关系。
Example
如上,是任务1与任务2的loss分布,颜色越深,代表 loss 越小。如上,先训练任务1,再训练任务2,会导致“遗忘”任务1。
如果使用EWC呢?计算这个“保镖”bbb有很多方法,这里“计算二次微分”来做。如上,通过算二次微分,发现,在θ1\theta_1θ1上,动一动没关系,但是θ2\theta_2θ2发现尽量不要动它。
如上,在上面的限制下,我们的θ∗\theta^*θ∗在任务一、二效果都可以。
Result
如上,使用 EWC 在以此学习三个例子,效果较好。而 L2 正则其很难学习新任务。
More
一些其他新EWC研究如上。
Generating Data
我们发现,multi-task learning 通常是 life long learning 的上线。有人想了一个奇招:我们不去存储之前的数据,而做一个用于生成之前数据的模型。
但其实,让机器生成数据并不好做。
Adding New Classes
如上,我们的模型结构在各个任务中都是相同的,那有没有可能直接在原任务上修改任务,进而实现终身学习呢?有技术 LwF 与 iCaRL 。
Knowledge Transfer
我们为每个任务训练一个模型,但是这样可能很难做到“任务间的知识转化”,即触类旁通
。
而这不就是 Transfer Learning 要解决的问题吗?但是 Transfer Learning 没有考虑学完任务2后,在任务1上的表现。
因此,LLL中包含了 Transfer Learning 要考虑的问题。
Evaluation
如上,我们要衡量一个 LLL 模型,通常画一个矩阵。其中定义了 AccuracyAccuracyAccuracy 、 BackwardTransferBackward \; TransferBackwardTransfer (描述忘记程度)、 ForwardTransferForward \; TransferForwardTransfer 等指标。
ForwardTransferForward \; TransferForwardTransfer 如上。
Gradient Episodic Memory (GEM)
这里举了一个例子。
假设存了一些过去 task 的资料,如上红和绿。我们希望做目前的梯度下降时,不会伤害过去的梯度,即目前的梯度与之前任务在该点的梯度夹角不能超过90度
。
其各个指标/结果如上。
Model Expansion (but Parameter Efficiency)
我们希望模型扩展的速度,比任务增长的速度慢。
这是一个难点,目前没有太好的文章。
Progressive Neural Networks
如上,把之前任务的前一层的隐层也当作输入。
但是这里,任务量大的话,将导致输入量大,因此难以用到很多种任务上。
Expert Gate
如上,会查看新任务与哪一个任务最像,然后以那个最像的任务为基础,训练模型。但是也会造成新增一个任务,就多一个模型这个问题。
Net2Net
如上,可以使用类似“把某个神经元进行分裂”这种方法,去增加网络的宽度。
Curriculum Learning
如上,我们之前讨论过的例子,学习顺序其实影响很大。
taskonomy = task + taxonomy 分类学
如上有人基于此提出了 taskonomy 。
【李宏毅2020 ML/DL】P99-105 Life Long Learning相关推荐
- 【李宏毅2020 ML/DL】补充:Structured Learning: Structured SVM
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在另一个UP主上传的2017课程BV13x411v7U ...
- 【李宏毅2020 ML/DL】补充:Structured Learning: Introduction Structured Linear Model
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在另一个UP主上传的2017课程BV13x411v7U ...
- 【李宏毅2020 ML/DL】补充:Meta Learning - Metric-based Approach Train+Test as RNN
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在油管李老师主页即可找到.本节内容 35 分钟左右. ...
- 【李宏毅2020 ML/DL】补充:Meta Learning - Gradient Descent as LSTM
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.上节课李老师讲了元学习中的参数初始化方法:MAML 与 ...
- 【李宏毅2020 ML/DL】P107-109 Deep Reinforcement Learning | Scratching the surface
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 关于强化学习,我专门花半年时间学习实践过,因此这里笔记只记录李老师的 outline .我的强化学习资源仓库: ...
- 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM
李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...
- 【李宏毅2020 ML/DL】P1 introduction
[李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...
- 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...
- 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...
最新文章
- tcpdump 抓取icmp数据包
- 揭秘华为麒麟990 5G:提前3年布局,百亿晶体管把7nm用到了极致
- 关于安装torch、torchvision包的问题
- js中while死循环语句_Java系列教程day06——循环语句
- android的指纹问题
- RDD持久化、广播、累加器
- 信息学奥赛一本通 1019:浮点数向零舍入 | OpenJudge NOI 1.2 06
- C++提高部分_C++类模板中成员函数的创建时机---C++语言工作笔记089
- java实现c语言的函数_C语言tolower函数介绍、示例和实现
- linux嵌入式缺点,嵌入式领域linux作为实时操作系统的缺点
- WebGrid 在asp.net mvc中的使用和理解(译)
- The proxy server received an invalid response from an upstream server.
- 万年历c语言程序设计免费,C语言程序设计万年历程序
- Linux驱动——编译驱动的两种形式(内核目录外、内核目录中)
- 网工必知 | 什么叫一层交换机,二层交换机,三层交换机?
- tcp 握手失败_什么是三次握手,握手为何要进行三次,如果握手失败会有什么后果...
- IOS开发之工欲善其事必先利其器:Xcode
- mysql二级考试范围_计算机二级MySQL考试内容大纲
- 【ZigBee 系列】| 网关的构成?用 JN51X9 的案例来讲解框架及各部分的功能
- Ethereum智能合约迁移到PlatON教程
热门文章
- 自己的 「 代码制造 check list 」
- OxA6可以作为C语言常量吗,淮阴师范学院期末考试c语言题库
- 【Hive】性能调优 - map-side JOIN
- iOS上架被拒理由及相关解决方案记录
- python ModuleNotFoundError: No module named ‘requests‘ 的 解决方案
- 【C语言】利用递归解决猴子吃桃问题
- IoT:BLE4.0教程一 蓝牙协议连接过程与广播分析
- web 折线图大数据量拉取展示方案_对比多种微前端方案
- 疯狂java实验五数据流编程_2017-2018-2 20165209 实验五《网络编程与安全》实验报告...
- adam优化_认识 AdaMod: 一个新的有记忆的深度学习优化器