【李宏毅2020 ML/DL】P106 More about Life Long Learning
我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。
本节内容综述
- 本节课
杨舒涵
讲解。 - 第一部分通过生物现象 `赫布理论 ,引出机器学习相关技术。
- 接下来,是几个文章的报告,首先是知识蒸馏。
- 接着是 Memory Aware Synapses: Learning what (not) to forget (MAS) ,第一个无监督的 LLL 方法。
- 接下来 Learning without Forgetting (LwF) ,第一个把知识蒸馏用在 LLL 的文章。
- Large Scale Incremental Learning (BiC),在类别很多时,如何平衡新老任务。
- Few-Shot Class-Incremental Learning (FSCIL) ,也是为了解决 new/old class imbalance ,其作用在小样本上。以 Neural gas (NG) 取代了知识蒸馏;应用了拓扑学和生理神经相关的 Hebbian learning 作为出发点,提出 TOpology-Preserving knowledge InCrementer (TOPIC) 架构。
- 最后探讨结论 LLL Nowadays & Future(?) 。目前还是主要用在学术界。
文章目录
- 本节内容综述
- 小细节
- Outline
- Hebbian Theory
- Knowledge Distillation
- Memory Aware Synapses: Learning what (not) to forget (MAS)
- Learning without Forgetting (LwF)
- Large Scale Incremental Learning (BiC)
- Few-Shot Class-Incremental Learning (FSCIL)
- LLL Nowadays & Future(?)
小细节
Outline
- Hebbian Theory
-
- Long-term Potentiation (LTP)
-
- Hebbian Theory
-
- Competitive Hebbian Learning
- Knowledge Distillation
- Memory Aware Synapses: Learning what (not) to forget (MAS)
- Learning without Forgetting (LwF)
- Large Scale Incremental Learning (BiC)
- Few-Shot Class-Incremental Learning (FSCIL)
- LLL Nowadays & Future(?)
Hebbian Theory
Long-term Potentiation (LTP)
如上,Long-term Potentiation 是一种神经反应可塑的现象,是生物学概念。
Hebbian Theory
因此,由赫布理论,得到神经网络权重上的启发。
Competitive Hebbian Learning
由此,引出 Competitive Hebbian Learning 。
Knowledge Distillation
https://arxiv.org/pdf/1503.02531.pdf
Problem Statement
为什么提出“知识蒸馏”?
- 训练 model 和使用 model 的需求不同、
- model compression
What is “knowledge”?
这里理解为,学习把 input vector
映射到 output vector
。
一般用 蒸馏温度来处理分布:
用大 model 的 soft targets 当初训练小 model 的 ground truth 。
最后评判时,需要把小 model 在 soft targets 上训练后的交叉熵,与 hard targets 训练后的交叉熵的 倍,得到 overall loss 。这么做,是因为 soft targets 生成过程中蒸馏法求导函数会产生 ;而为了保持两个 loss 的影响接近,要如此处理。
Why knowledge distillation works?
可以想象成 越大, class probabilities 就越接近,使训练上更加严格,而切换回一般的 softmax 就回归简单模式,效果更佳。
Memory Aware Synapses: Learning what (not) to forget (MAS)
如上,在目标中增加一项,防止参数变动过大。
其达成的目标如上。
Concepts
如上,我们希望模型自己学会
各个参数是否敏感。
最终,其公式推导如上。
Learned function v.s. Loss
如上,在“重要性”与损失值相关时,我们可以通过真是标签来查看差别。
但是这样的话,就没法新增无标签数据来训练。
如果我们自己学 learn function (与loss的改变有关),则可以新增无标签数据参与训练。可以观察两次跑出的 learn function 的值的差异。
Connection to Hebbian Learning
接下来介绍,这个方法与 Hebbian Learning 的关系。
在如上的一个 ReLU 神经元中的运算。
继续进行推导,发现其结果就是赫布学习的公式。
Contribution
贡献有二:
- 达到了使用无标签数据的目标;
- 展示了与赫布学习的关系。
在当时,效果超过 state-of-art 。
Learning without Forgetting (LwF)
Original Model
如上是一个 AlexNet,如果新增分类任务,则参数会增加。此时可以选择全部重新训练的方法。
此外,还可以使用如下的微调方法。
Fine-tuning
如上,对全连接层的参数进行微调,实验称为 Finetune-FC 。
但是,会在就认为变现较差。
Feature Extraction
如上,只训练新增内容。但是因为之前的结构不变,导致不能提取新增任务独有的特征。其在新任务上表现不好。
Joint Training
对所有参数、所有新旧任务进行学习。但是这样成本高、参数量大。
Learning without Forgetting
如上,先固定原有参数,然后使用新任务的数据训练新增层;之后再联合训练所有参数。好处是只需要新任务的数据集。
Loss Function
如上,考虑两个 loss 值:
- 基本的新任务的分类交叉熵值;
- 引入知识蒸馏思想的损失值。
LwF Algorithm
如上,我们并没有老任务的数据集,但是会通过网络先得出一些数据对。
Large Scale Incremental Learning (BiC)
如上,新旧任务样本数严重失衡。而训练效果往往和样本数量有关,某一类数据多,则在其上的正确率较大。而类别数目多,也会导致效果下降。
Hypothesis
其做了一个假设,即最后一层全连接层会偏袒 new classes 。
BiC(Bias correction) Method
如上,其在得到 logits 前,做了一个 bias 纠正,希望其 new classes 与 old classes 变得平衡。
Stage 1
如上,可以理解为想办法压缩之前的网络的结果。
Stage 2
如上,来最佳化 bias parameters 。
Results
如上,BiC 在增加类别后,效果没有明显变差。
如上,对于 baseline-1 -2 其会很偏重于新的 classes (在其上效果很好)。而 BiC 避免了这个问题。
Few-Shot Class-Incremental Learning (FSCIL)
大致概念如上,在 (a)-(b) 中,我们希望原有的结构不改变(因为结构与记忆相关);在 (d)-(f) 中,我们希望新 node 会自动调整,让模型接近 ground truth 。
LLL Nowadays & Future(?)
目前,大公司为了好的效果,一般不用 LLL ,但学术界有所研究。
还是有研究的必要的。