前言
Life long learning(一)
一、Life long learning
Life long learning在机器学习中直观的印象是机器不断学会新的技能。在实际中也会有用到这个想法的,根据数据训练的模型,上线后获得新的feedback,用feedback不断更新模型,这本质上就是一个life long learning问题。
比如同一个任务,不过是两个domain。机器可以同时将两个domain当成训练集训练,但是如果先学其中一个,然后再学第二个,这个情况下正确率就会下降。机器有能力同时学多个任务,但是当机器依序学的时候,一学新的任务,旧的就会忘掉,这个情况就是Catastrophic forgetting(灾难性的遗忘)。
二、为什么要用life long learning
Multi-task training可以同时学多个任务,为什么要用life long learning。一个情况是,要让机器学第1000个任务,为了让机器避免遗忘前面的任务,就需要把前面999个任务的资料拿出来,把这1000个资料放在一起,机器才能学会。但在实做上,就表明机器需要把学过的所有资料统统存下来,机器可能没有那么大的存储空间,同时学习时间会很长。
为什么不每一个模型就学一个任务。虽然这样可以避免catastrophic forgetting的问题,但是遇到的第一个问题是,如果要让机器学很多的技能,可能没办法把所有模型都存下来。第二个问题是,不同任务不同模型的话,不同模型间就不能互通有无。
Life long learning vs transfer learning
Transfer learning希望在任务1上学到的可以应用在任务2上。虽然两个都是让机器学多个任务,但是关注点是不同的。Transfer learning只在意在第二个任务上学的好不好,而Life long learning在意的是学完第二个任务还能不能解第一个任务。一个在意新的,一个在意旧的。
三、评估life long learning
评估Life long learning做的好不好
比如有T个任务,随机初始化参数,将随机的用在T个任务上,计算这T个任务的正确率。学完第一个任务后,在所有任务上计算正确率,同理,直到学完第T个任务,计算所有任务上的正确率。Rij,i表示训练完第i个任务,j表示在第j个任务上正确率。i>j时看任务j是否被遗忘。i<j看是否机器能无师自通。最常见的评估方法就是把最后一行task T的值都加起来取平均值。
另一种评估方法是
这种情况算下来一般是负的,如果是正的,表示这个life long learning是比较好的。
还有一种方法是
总结
学习视频地址:https://www.bilibili.com/video/BV13Z4y1P7D7/?p=33&spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=3a369b537e1d34ff9ba8f8ab23afedec