Life Long Learning(终生学习)
文章目录
摘要
本章要讲的是Life Long Learning。Life Long Learning是让机器可以和人一样,用同一个”脑子“做很多事情,且每件事都可以做好。具体细节上,Life-long Learning是希望机器做到在学习新知识时不能忘记旧知识,且学习的时候要像人一样,能够触类旁通,当学习任务比较复杂时,知道自动调用更多的神经元进行学习。1、Life-long Learning是什么?
现在的机器学习,在解决不同问题时,需要用不同的模型。而在人类的学习过程中,每个人都是用着同一个脑子去学习不同的任务,我们希望机器也可以达到人类这样,Life-long Learning(终身学习)就是用来解决这个问题的。
2、Life-long Learning的问题
Life-long Learning主要面临着以下3个方面的问题:
- Knowledge Retention:要求机器在学习的过程中既要学好又不能遗忘曾经学过的知识。
- Knowledge Transfer:希望模型可以用已经学过的知识帮助其学习新的知识,达到触类旁通的效果。
- Model Expansion:希望模型可以根据问题的复杂度来调整模型自己的复杂度,以此提高准确率及内存空间的利用效率。
3、问题的解决办法
3.1 Elastic Weight Consolidation(EWC)
EWC主要是解决第一个问题的方法,它的基本思想是在学习新的任务时,老任务的重要参数不能变或者变化很小。它是靠重构损失函数来实现的。如下图:
- bi代表第i个参数的重要性的参数。
- θbi是代表老任务中的参数。
- θ是代表新任务中的参数。
其中参数bi是很重要的,那如何计算bi的值呢?一个常用的方法是计算θbi的二次微分,用θbi二次微分的值作为bi的值。
3.2 Gradient Episodic Memory(GEM)
GEM是在训练新的任务时,稍微修改以下Gradient,希望修改后的模型在训练时不仅会提高当前任务的准确率,还会提高完成以前任务的准确率,达到触类旁通的效果。它的主要做法是将之前任务的少部分数据存下来,在训练新任务更新参数时,不仅考虑该参数的导数,还考虑在以往的任务上该参数的导数。
3.3 Net2Net
Net2Net的做法是当训练新任务时,发现模型复杂度不够,没法较好的完成新任务时,可以将一部分神经网络由1个变成两个,且新的神经原和老神经元的参数一样,但是输出两者都减半,这样就不好影响最终的结果,模型也就不会遗忘曾经学过的知识。
4、Life Long Learning的评估
如何评价一个Life Long Learning的好坏呢?一个常用的方法是建模型在每训练完一次任务时在处理其他任务上的表现的表格。如下图Ri,j表示模型在训练完第i个任务后,在处理第j个任务的表现。
方法
- EWC用的是调整损失函数来控制模型在学习新知识时不遗忘旧知识的方法,是用来解决Knowledge Retention的问题的。
- GEM是记住以前任务的一部分训练数据,在训练新任务更新参数时,不仅考虑该参数的导数,还考虑在以往的任务上该参数的导数,使得模型在学习新任务时,还会回顾旧任务,实现触类旁通,是用来解决Knowledge Transfer的问题的。
- Net2Net是将模型中一部分神经元一分为二或者分为多个,保持其输入参数不变,输出则由母体神经元和子体神经元平分,来实现自动扩展时不会忘记曾经学过的知识,它是用来解决Model Expansion的问题的。
结论与展望
Life Long Learning是近年来的新技术,该model也较难训练。本章讲的三个方法EWC、GEM、Net2Net分别对应的可以解决Life Long Learning的Knowledge Retention、Knowledge Transfer、Model Expansion的问题,这些方法都具有自己的优势。在Life Long Learning的实做中,EWC、GEM、Net2Net这些方法都并不是独立使用的,而是需要一起运用才可以达到完整的效果。