IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 增量学习-01-Learning a Unified Classifier Incrementally via Rebalancing (CVPR2019) -> 正文阅读

[Python知识库]增量学习-01-Learning a Unified Classifier Incrementally via Rebalancing (CVPR2019)

Learning a Unified Classifier Incrementally via Rebalancing (LUCIR)

CVPR 2019 [Paper] [code]

Overview

本文定义了增量学习任务中存在的三个问题:

  1. Imbalanced Magnitudes;
  2. Deviation;
  3. Ambiguities;

并提出了对应的解决方法:

  1. Cosine Normalization;
  2. Less-Forget Constraint;
  3. Inter-Class Separation。

?

?

Notions:

分类器权重 = class embedding = classifier weights = ?

Introduction

由于增量学习过程中只能看见少量的旧样本,这会导致分类器对于新样本产生较大的偏好。会造成以下三个问题:

  1. Imbalanced magnitudes: 新类别的Linear classifier weights 幅值会高于旧类别;
  2. Deviation: 原有旧类别的知识没有能够很好地得到保留,例如,旧类别样本feature与分类器weights vector之间的;
  3. Ambiguities:新类别的weight vectors和旧类别的weight vectors会很接近,没有区分度造成新旧任务间的混淆,主要是旧类别误分为新类别。

Our Approach

总的来说,该方法提出三个损失函数去约束Distillation-based的方法中存在的因新旧样本不均衡而导致的偏见问题。

?

?A. Cosine Normalization (CN)

Cosine Normalization的做法如下:

  1. 模型分类器的权重weights进行二范数归一化
  2. 输入分类器的feature进行二范数归一化。

?

?

这样原有的公式3中的分类器weights和特征f(x)相乘的操作,就会变成公式4所示,由于此时weights和feature都是归一化后的,两者之间相乘其实是在计算余弦相似度,那最后的分类结果就是在计算各个类别的相似度。

?

?

?

?

B. Less-Forget Constraint (LC)

????????调整完新旧任务分类器的权重后,要开始考虑如何维持旧任务的知识,即通过公式2所示的蒸馏损失。如公式2所示,原有的iCarL (baseline)中的蒸馏loss是针对模型输出进行蒸馏的,但是呢,由于cosine normalization后,模型输出的是余弦相似性,就可能会发生图4中的情况。即如果class embedding和features整体发生偏移,可能会出现class embedding和features之间的余弦距离没有发生变化,但整体已经发生明显偏移的情况。因此,提出了约束旧样本在新旧模型中输出特征之间余弦距离的方式,让新旧模型输出的特征尽可能相近,如公式6所示。

?

?

?

?

?

?

?

?????????此外,作者还提出adaptive loss weight的思想,认为随着增量学习任务的进行,蒸馏的loss weight也应该随之变大。

????????笔者认为,此处的adaptive loss weight只是和增量任务的增加有了一个相对soft的正相关关系,并没有考虑增量任务增加导致的模型对旧任务的维持能力下降的本质。

?

C. Inter-Class Separation (IS)

????????为了避免新旧任务之间的混淆现象,应该尽可能加大两个任务之间的区分度。作者此处用了一个rank margin loss,去使得旧任务样本的GT类别输出尽可能大于新任务类别的输出,避免旧样本错分为新样本。

?

?整体损失函数如下:

?

?

Experiment

????????作者提出了iCaRL-CNN和iCaRL-NME两种baseline,这里iCaRL-CNN和NME的区别是什么我没有太明白,我猜测iCaRL-CNN是类似LwF的一种训练方法,即随机挑选样本。?

????????此外,作者发现在整体训练完后,在一个balanced数据集上微调下有助于提高模型结果,但是在LUCIR上提高很微弱,见图8

?

?

?

????????图7中可发现,NME可以提高模型对旧任务的表现,而Ours-CNN也具备同样的能力,且精度元高于iCaRL-NME,此外Ours-NME精度反而低于了Ours-CNN.

????????通过如图7所示的消融实验,验证了各个损失函数及adaptive loss weight的有效性。

????????值得一提的是,没有什么和sota方法对比的表格?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:23:18  更:2021-10-12 23:25:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/28 20:35:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计