目录

机器学习LifeLong-Learning终身学习介绍

【机器学习】LifeLong Learning(终身学习)介绍

下面的文章转自(已获作者允许):

文章介绍了关于机器学习比较前沿的一项技术,也就是LifeLong Learning。这篇文章也对LifeLong Learning与Multi-task Learning以及Transfer Learning进行了对比,所以我将其进行了转载,其中对其排版进行了一定修改。

细数机器学习处理的问题,概括得讲,可以分为如下几大类:

  • 计算机视觉(CV): object classification, object detection, object segmentation, style transfer, denoising, image generation, image caption
  • 语音(Speech) : speech recogniton, speech synthesis
  • 自然语言处理(NLP): Machine translation, text classfication, emotional recogniton
  • 推荐系统: Recommendation, CRT

目前针对各个大类的不同子类问题, 都会去设计不同的网络结构,设计不同的loss, 采用不同的数据集去处理。 这使得机器学习“偏科严重”,比如前几年很火的AlphaGo, 虽然他是一个“围棋天才”,但是一旦让他去下象棋, 他就歇菜了。换句话说, 目前的人工智能,只能处理给定的任务,换一个任务就无能为力了,这距离我们所想达到的通用智能实在相差甚远。

反观人脑,在人不断成长的过程中,他可以学习各种各样的技能。不仅会下棋,还会踢球,还会辩论等等,而人的大脑只有一个(相当于自始至终只有一个网络)。 虽然随着时间的流逝,以前学习的东西会渐渐淡忘,但这丝毫不影响人脑在不断学习,胜任一个又一个任务中所表现出来的强大。

因此,我们是否可以只用一个网络结构(注意,这里的网络结构并非是固定的。也许随着任务的需要,得自行扩展网络),在不同的任务上分别训练,使得该网络能够胜任所有的任务呢。 这就是Life-long learning 所要研究的课题。

  • Continuous Learning
  • Never ending Learning
  • Incremental Learning

https://i-blog.csdnimg.cn/blog_migrate/5d876ae7b723da6ac1dba0f762dfa81e.jpeg#pic_center

Knowledge Retention(but Not Intransigence) and Knowledge Transfer 知识保留(但不妥协)及知识迁移。 这意味着以前学到的知识,需要能够促进下一个任务Task B的学习; 学完Task B之后,要不仅可以很好得处理Task B, 同时在Task A 上不能有明显的下降, 最好Task A的性能,也能够有所提升或者是保持。

一个遗忘的例子:

https://i-blog.csdnimg.cn/blog_migrate/22cc0b443d0270b36db3b4d998dfecad.jpeg#pic_center How to solve Catastrophic Forgetting Little forgetting是允许的。

一些理论成果:

https://i-blog.csdnimg.cn/blog_migrate/c71a653af35c491d9331c1121fd42e17.jpeg#pic_center https://i-blog.csdnimg.cn/blog_migrate/d67f710b4ced5f2b501a56642feca688.jpeg#pic_center

刚才提到的问题,如果采用Multi-task learning:

https://i-blog.csdnimg.cn/blog_migrate/231746e27d0c5ecd59fa5c5be2822937.jpeg#pic_center 可以看到: 如果先学习Task1, 再学习Task2; 那么当Task 2学完之后, Task 1的准确率就下降了很多, 这就是Forget!!! 这就是Transfer Learning所带来的问题, 也是Lifelong Learning 所需要解决的问题。

如果采用Multi-task Learning,需要把Task 1 和 Task2的训练数据都存储起来,需要的时候放在一起训练。 虽然可以看到Task 1和 Task 2都达到了不错的效果, 但是所有数据的存储会是一个很大的问题。

因此, 如何解决数据存储的问题呢?

https://i-blog.csdnimg.cn/blog_migrate/d7d273be0a932af103a1b55d33314931.jpeg#pic_center 借助于GAN网络来完成, 减少了数据存储,但带来了更大的计算量。

Progressive Neural Network

https://i-blog.csdnimg.cn/blog_migrate/675590edc4921519955a4b97211e8b0b.jpeg#pic_center

Net2Net

https://i-blog.csdnimg.cn/blog_migrate/8569822bb6fbaf2ace01693a0c5db31d.jpeg#pic_center

Transfer Learning VS LifeLong Learning: Transfer learning只考虑在当前任务上的效果; 而LifeLong Learning需要考虑在所有任务上的效果。

https://i-blog.csdnimg.cn/blog_migrate/9afa4289ac086d216a566db2400f7927.jpeg#pic_center Multi-task Learning VS LifeLong Learning : LifeLong Learning训练时只用当前任务的数据; 而Multi-task Learning会用到之前所有任务的数据。这带来了数据存储以及计算量不断增大的问题; Multi-task learning可以看作是LifeLong learning的upper bound

https://i-blog.csdnimg.cn/blog_migrate/2bb1f49e4188bf9b70a97aa55ea1ddd6.jpeg#pic_center

3个指标:

  • Accuracy 表征N个任务学完后总体的性能;
  • Backward Transfer: 表征N个任务学完后,总体遗忘的程度;通常为负数,越大越好;
  • Forward Transfer: 表征N个任务学完后,总体学习的程度;通常为正数,越大越好;

https://i-blog.csdnimg.cn/blog_migrate/cad601e37174b60c7d843efc3c533f6b.jpeg#pic_center R(0, i) 表示在随机初始化的情况下,在Task i上的准确率。

https://i-blog.csdnimg.cn/blog_migrate/bedc40e601ba429b9034f640a0d4757b.jpeg#pic_center

Curriculum Learning 类似于一个课程系的学习, 研究的是如何安排课程学习的先后顺序。

https://i-blog.csdnimg.cn/blog_migrate/54c93f2a6250c9ebfe10cc48b3bab942.jpeg#pic_center

Taskonomy 研究的是各个任务之间的关系, 即该先学哪个,后学哪个。

https://i-blog.csdnimg.cn/blog_migrate/8ddff7f022367dbd5ed8233e9b5c3ed9.jpeg#pic_center