其他分享
首页 > 其他分享> > 【李宏毅2020 ML/DL】P106 More about Life Long Learning

【李宏毅2020 ML/DL】P106 More about Life Long Learning

作者:互联网

我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的、自己不知道的东西。

本节内容综述
  1. 本节课 杨舒涵 讲解。
  2. 第一部分通过生物现象 `赫布理论 ,引出机器学习相关技术。
  3. 接下来,是几个文章的报告,首先是知识蒸馏。
  4. 接着是 Memory Aware Synapses: Learning what (not) to forget (MAS) ,第一个无监督的 LLL 方法。
  5. 接下来 Learning without Forgetting (LwF) ,第一个把知识蒸馏用在 LLL 的文章。
  6. Large Scale Incremental Learning (BiC),在类别很多时,如何平衡新老任务。
  7. Few-Shot Class-Incremental Learning (FSCIL) ,也是为了解决 new/old class imbalance ,其作用在小样本上。以 Neural gas (NG) 取代了知识蒸馏;应用了拓扑学和生理神经相关的 Hebbian learning 作为出发点,提出 TOpology-Preserving knowledge InCrementer (TOPIC) 架构。
  8. 最后探讨结论 LLL Nowadays & Future(?) 。目前还是主要用在学术界。

文章目录

小细节

Outline

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

为什么提出“知识蒸馏”?

What is “knowledge”?

这里理解为,学习把 input vector 映射到 output vector

一般用 T T T 蒸馏温度来处理分布:
q i = e z i / T ∑ j e z j / T q_i = \frac{e^{z_i/T}}{\sum_j e^{z_j /T}} qi​=∑j​ezj​/Tezi​/T​

用大 model 的 soft targets 当初训练小 model 的 ground truth 。

最后评判时,需要把小 model 在 soft targets 上训练后的交叉熵,与 hard targets 训练后的交叉熵的 1 / T 2 1 / T^2 1/T2 倍,得到 overall loss 。这么做,是因为 soft targets 生成过程中蒸馏法求导函数会产生 1 / T 2 1/T^2 1/T2 ;而为了保持两个 loss 的影响接近,要如此处理。

Why knowledge distillation works?

可以想象成 T T T 越大, class probabilities 就越接近,使训练上更加严格,而切换回一般的 softmax 就回归简单模式,效果更佳。

Memory Aware Synapses: Learning what (not) to forget (MAS)


如上,在目标中增加一项,防止参数变动过大。

其达成的目标如上。

Concepts


如上,我们希望模型自己学会各个参数是否敏感。

最终,其 Ω \Omega Ω公式推导如上。

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 ,但学术界有所研究。

还是有研究的必要的。

标签:DL,训练,李宏毅,P106,BiC,Incremental,Learning,LLL,Hebbian
来源: https://blog.51cto.com/u_15279775/2936219