本文是李宏毅机器学习的笔记,这是第十四节,介绍了终身学习和元学习。
文章目录
1. Life Long Learning
Life Long Learning就是让机器可以持续学习,能处理各种各样的任务。
也就是模型通过不断看新的资料,得到反馈,然后更新自身,变得更厉害,能处理更多事情。
但是我们发现,机器学完一个任务之后,再去学另一个任务,那第一任务就会被遗忘,而且这与模型自身的能力无关,因为当两种训练数据同时训练时,模型在两种任务上的表现都是好的。
在下面的例子中,模型连续训练20个任务,和模型同时训练20个任务的结果,第一图发现,模型训练到任务5时,准确率很高,在学习其它任务后,就降下去了,右图则表示这个模型有能力训练这20个任务。
Catastrophic Forgetting
我们将上面的情况成为灾难性遗忘
为什么我们不将所有的训练资料同时训练,达到让模型具有多种能力,这种训练方式叫做Multi-task训练,这会有一个问题,机器需要存储所有的训练资料,并且在学新知识时需要计算所有的训练资料。有论文提出,Multi-task的结果可以作为life-long learning的上界。
每个任务训练一个模型,同样也会有一些问题。
Life-Long Learning和Transfer Learning的区别如下,最主要的区别在于学会新任务后,会不会忘记之前学过的任务。
下面是验证Life-Long Learning的一些方法,第一行是随机初始化后的测试,然后模型依次训练Task 1-T,每次训练后,再在Task 1-T做测试。一种评价指标是Accuracy,就是训练完最后一个任务后,在所有任务做测试得到的平均分。 Backward Transfer是,训练过任务i之后,最后一个任务训完之后,任务i的测试得分和训练任务i的得分差,然后再求和取平均,一般这个值都是负的,因为会有遗忘。Forward Transfer,前i-1个任务训练之后的模型在任务i的测试得分与随机初始化的得分的差,然后求和取平均,它反映了任务i是否收到前i-1个任务的影响,导致有所提升。
解决灾难性遗忘的研究方向有三个
为什么会发生遗忘,是因为学会新任务得到的参数在过去的任务上,可能会表现的不好,一种解决方式,控制参数更新,让参数在所有任务上表现都好。
下面介绍第一个研究方向,Selective Synaptic Plasticity
下图是模型更新的损失函数,同过 b