目录
Catastrophic Forgetting
灾难性遗忘(Catastrophic Forgetting)的克服之道
Selective Synaptic Plasticity
Additional Neural Resource Allocation
Memory Reply
其他
Catastrophic Forgetting
——为什么今日的人工智慧无法成为天网?灾难性遗忘
Life Long Learning in real-world applications:
Life-long Learning的难点:Catastrophic Forgetting
例如下图中的例子,如果先学任务一再学任务二,machine在学任务二的时候,就会忘记任务一学过的内容。如果machine一起学两个任务,是可以把两个任务都学好的,它有足够的能力把两个任务都学好。但是让machine依序学习的时候,它没办法记住旧的任务。
上面是影像辨识的例子,下面再举一个自然语言处理的例子:
把多个任务的资料倒在一起同时学叫做Multi-task training。Multi-task training就可以让机器学会多个任务,为什么我们还要研究life-long learning的问题?原因如下:
为什么不每个任务学一个模型,而要让一个模型学多个任务?
Life-Long v.s. Transfer:
如何评估一个Life-Long Learning的技术:
accuracy:最常见的评估一个Life-Long Learning系统的方法。
其他评估方法:
backward transfer:模型学完任务i时在任务i上的正确率跟学完T个任务时在任务i上的正确率差距有多少。评估遗忘的程度有多严重,算出来的值通常是负的。
forward transfer:还没有看过某个任务,只看过其他任务的时候,机器能学到什么样的程度。
灾难性遗忘(Catastrophic Forgetting)的克服之道
下面介绍三个Life-Long Learning的可能解法
Selective Synaptic Plasticity
这个方法又叫做Regularization-based Approach,这个研究在Life-Long Learning的领域里面是发展的最完整的。
Why Catastrophic Forgetting?
Selective Synaptic Plasticity:
在Life-Long Learning的研究里面,关键的技术就在于怎么设定bi,bi是人为设的。
bi怎么设定?怎么知道哪些参数对旧的task重要,哪些参数对旧的task不重要?bi设定的大方向如下:
下面是来自EWC文献上的实验结果:
Regularization-based的方法,在早年还有一个做法:Gradient Episodic Memory (GEM)。这是一个挺有效的方法,但它不是在参数上做限制,而是在gradient update的方向上做限制。
Additional Neural Resource Allocation
① Progressive Neura Networks
一个最早的做法,叫做Progressive Neura Networks。它的做法是训练task 1的时候有一个模型,训练task 2的时候不要动task 1学到的模型,而是另外再多开一个network,这个network会吃task 1的hidden layer的output作为输入。如果task 1有学到有用的资讯,task 2也是可以利用这些资讯的。
② PackNet
PackNet和Progressive Neura Networks正好是反过来的。PackNet是先开一个比较大的network,每次有新task进来的时候,只用大network中的一部分。
③ Compacting, Picking, and Growing(CPG)
PackNet和Progressive Neura Networks结合在一起——CPG
Memory Reply
Generating pseudo-data using generative model for previous tasks.
其他
在上面的讨论中,我们都假设每个task需要的模型是一样的,还限制了每个task的classifier,它们需要的class的数量都是一样的。假设不同的任务它们的class数目不一样,应该怎么解?参考下图中的文献:
这篇笔记的内容只是整个Life-Long Learning领域中的一小块,下面的paper介绍了Life-Long Learning的三个情境,这篇笔记只是其中最简单的一个情境。
Curriculum Learning:
学习task的顺序不一样,会有不同的效果。例如下图,先学task 1,再学task 2,会有forgetting的问题。先学task 2,再学task 1就没有forgetting的问题。
所以任务的顺序是重要的,有些顺序会有forgetting的问题,有些顺序没有forgetting的问题。研究什么样的顺序是好的,什么样的顺序对学习有效的问题,叫做Curriculum Learning。