我已经有两年 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)
      • Hebbian Theory
      • Competitive Hebbian Learning
    • Knowledge Distillation
      • Problem Statement
      • What is "knowledge"?
      • Why knowledge distillation works?
    • Memory Aware Synapses: Learning what (not) to forget (MAS)
      • Concepts
      • Learned function v.s. Loss
      • Connection to Hebbian Learning
      • Contribution
    • Learning without Forgetting (LwF)
      • Original Model
      • Fine-tuning
      • Feature Extraction
      • Joint Training
      • Learning without Forgetting
        • Loss Function
        • LwF Algorithm
    • Large Scale Incremental Learning (BiC)
      • Hypothesis
      • BiC(Bias correction) Method
        • Stage 1
        • Stage 2
      • Results
    • 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

一般用 TTT 蒸馏温度来处理分布:
qi=ezi/T∑jezj/Tq_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/T21 / T^21/T2 倍,得到 overall loss 。这么做,是因为 soft targets 生成过程中蒸馏法求导函数会产生 1/T21/T^21/T2 ;而为了保持两个 loss 的影响接近,要如此处理。

Why knowledge distillation works?

可以想象成 TTT 越大, 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 ,但学术界有所研究。

还是有研究的必要的。

【李宏毅2020 ML/DL】P106 More about Life Long Learning相关推荐

  1. 【李宏毅2020 ML/DL】P97-98 More about Meta Learning

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 陈建成 讲解. 本节 Outline 见小细节. 首先是 What is meta ...

  2. 【李宏毅2020 ML/DL】P1 introduction

    [李宏毅2020 ML/DL]P1 introduction 本节主要介绍了 DL 的15个作业 英文大意 Regression: 回归分析 Classification: 分类 RNN: 循环神经网 ...

  3. 【李宏毅2020 ML/DL】P86-87 More about Domain Adaptation

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本节内容综述 本节课由助教 Chao Brian 讲解. 首先讲解些领域适配的基础内容,包括名词.定义等. 接 ...

  4. 【李宏毅2020 ML/DL】P59 Unsupervised Learning - Auto-encoder

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  5. 【李宏毅2020 ML/DL】P58 Unsupervised Learning - Neighbor Embedding | LLE, t-SNE

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐):https://github.com/Sakura-gh/ML-note ...

  6. 【李宏毅2020 ML/DL】P15 Why Deep-

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  7. 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  8. 李宏毅svm_李宏毅2020 ML/DL补充Structured Learning Structured SVM

    李宏毅2020 ML/DL补充Structured Learning Structured SVM [李宏毅2020 ML/DL]补充:Structured Learning: Structured ...

  9. 【李宏毅2020 ML/DL】补充:Support Vector Machine (SVM)

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 本次笔记补充视频 BV1JE411g7XF 的缺失部分.在另一个UP主上传的2017课程BV13x411v7U ...

最新文章

  1. 在Ubuntu 14.04 64bit上生成ATS本地离线文档
  2. SpringMVC中数据库链接配置
  3. pandas.get_dummies函数用法详细解答(实践)
  4. dispatch事件分发
  5. 如何正确使用Windows的Ping命令
  6. 如何安装使用MQCache缓存服务器(适用X300型或者X500型)
  7. 解决github无法访问的问题
  8. c语言取子程序地址,哪位师傅知道51单片机怎样编写子程序?C语言的。在主程序里调...
  9. Eclipse 远程调试
  10. 小米投资偏爱智能与芯片 雷军:有3家科创板上市
  11. 国内滴滴面临“讨伐”,国外Uber日子更难过!活该不?
  12. 储存服务器装什么系统,存储服务器是什么操作系统
  13. PAT (Basic Level) Practice1022 D进制的A+B
  14. 0927锚框(Anchor box)
  15. 【教程汇总】英文关键词发掘与整理
  16. 51--可调频率和占空比的PWM波
  17. windows 2003 下SERVU:无法开始服务器.服务器执行缺少
  18. 短信服务之阿里云平台
  19. PL/SQL编程基础(五):异常处理(EXCEPTION)
  20. bootstrapvalidat cdn_bootstrapValidator插件下载、官网地址、免费CDN加速地址等

热门文章

  1. 查看目录下所有文件 dir 。
  2. 用python建立socket,用python建立socket服务器
  3. 【PostgreSQL-9.6.3】约束
  4. C#中引用第三方ocx控件引发的问题以及解决办法
  5. jmeter解决不同线程组之间传递参数问题
  6. ie不兼容的几个js问题及解决办法
  7. Vue---vue-cli 中的proxyTable解决开发环境中的跨域问题
  8. Visual Studio 2010 - 推荐的扩展[关闭]
  9. 相当于jQuery .hide()来设置可见性:隐藏
  10. PowerShell说“此系统上的脚本执行被禁用。”