《Decoupling Representation and Classifier》笔记
Paper:《Decoupling Representation and Classifier for Long-tailed Recognition》
Published at ICLR 2020
Keywords:Long-Tailed Image Recognition.
https://zhuanlan.zhihu.com/p/111518894
【概览】
- 作者将分类网络分解为representation learning 和 classification 两部分,系统的研究了这两部分对于Long-tailed问题的影响。通过实验得到的两点发现是:
- 数据不均衡问题不会影响高质量Representations的学习。即,random sampling策略往往会学到泛化性更好的representations;
- 使用最简单的random sampling 来学习representations,然后只调整classifier的学习也可以作为一个strong baseline。
- 具体地,作者首先使用不同的sampling策略(random sampling; class-balanced sampling; mixture of them )来训练representations,然后,研究了三种不同的方法来获得有balanced决策边界的classifier。分别为:使用class-balanced sampling来re-training线性分类器的参数;对学到的representations使用KNN进行分类;通过normalize classifier的weight来使得weight的尺度变得更加balanced,并添加了一个temperature参数来调节normalization的过程。
【Sampling策略】
- 作者将三种Sampling策略统一为一个公式,即从类别 中挑选一个样本的概率 如公式1所示。其中, 代表的是类别 的样本数量, 是类别数量, 。若 ,为random sampling,文中也称之为Instance-balanced sampling;当 的时候,为Class-balanced Samling;当 时为Square-root Sampling;
(公式1) - 最近也有工作是在训练前期使用random-sampling策略,后期使用class-balanced sampling。由此,作者提出了一个Softer版本的结合方式,Progressively-balanced Sampling。如公式2所示。其中, 为当前训练的Epoch, 为总的训练Epoch。
(公式2)
【Classifier的学习策略】
- Classifier Re-training (cRT).
- 固定住representations部分,随机初始化classifier的weight和bias参数,并使用class-balanced sampling在训练少量epoch。
- Nearest Class Mean classifier (NCM).
- 首先将training set里的每个类别计算feature representaitions的均值,然后在test set上执行最近邻查找。或者将mean features进行L2-Normalization之后,使用余弦距离或者欧氏距离计算相似度。作者指出,余弦相似度可以通过其本身的normalization特性来缓解weight imbalance的问题。
- -normalized classifier ( -normalized).
- 令 ,其中, 是类别 的classifier权重。按照公式3对 进行re-scale。其中, 代表的是L2 Norm,当 时,就是标准的L2-Normalization;当 时,表示没有进行scaling操作。 ,其值是通过cross-validation来选择的。
(公式3)
- 令 ,其中, 是类别 的classifier权重。按照公式3对 进行re-scale。其中, 代表的是L2 Norm,当 时,就是标准的L2-Normalization;当 时,表示没有进行scaling操作。 ,其值是通过cross-validation来选择的。
- Learnable weight scaling (LWS).
- 如果将公式3写为公式4的形式,我们可以将 看作是一个可学习的参数,我们通过固定住representations和classifier两部分的weighs来只学习这个scaling factors。
(公式4)
- 如果将公式3写为公式4的形式,我们可以将 看作是一个可学习的参数,我们通过固定住representations和classifier两部分的weighs来只学习这个scaling factors。
【Experiments】
- 为了更好地测试在训练期间每个类别样本数量对结果的影响,作者将类别集合分成三种情况。Many-shot (more than 100 images), Medium-shot (20100 images) and Few-shot (less than 20 images).
- 图1展示的是ImageNet-LTwith ResNeXt-50上的指标。
Figure 1: The performance of different classifiers for each split on ImageNet-LT with ResNeXt-50.
- 其中,Joint代表的是传统的representations和classifier结合训练的策略。由此,作者的几点发现包括:
- Sampling matters when training jointly. 可见,使用更好地sampling策略可以显著提高Joint的性能。疑惑的是,第一个Many的实验中,作者解释出现这种情况的原因是,模型高度偏向many-shot的类别,但是为什么这样就会导致acc高呢?感觉作者的解释不是很好。
- 保持 representation frozen训练classifier要比finetune效果好。如图2所示。和一些SOTA的模型比较如图3所示。其他的实验结果及分析具体可参见paper。
Figure 2.
Figure 3.
【参考资料】
[1]. https://arxiv.org/abs/1910.0921
《Decoupling Representation and Classifier》笔记相关推荐
- 《信贷的逻辑与常识》笔记
序 银行信贷风险管理的反思 现状与趋势 银行贷款的质量变化与经济周期.宏观调控政策等存在很高的相关性 现在银行不良贷款的增加主要是前几年经济快速增长时企业过度投资.银行过度放贷所带来的结果. 从历史情 ...
- AI公开课:19.02.27周逵(投资人)《AI时代的投资逻辑》课堂笔记以及个人感悟
AI公开课:19.02.27周逵(投资人)<AI时代的投资逻辑>课堂笔记以及个人感悟 目录 课堂PPT图片 精彩语录 个人感悟 课堂PPT图片 精彩语录 更新中-- 文件图片已经丢失-- ...
- 人工智能入门算法逻辑回归学习笔记
逻辑回归是一个非常经典的算法,其中也包含了非常多的细节,曾看到一句话:如果面试官问你熟悉哪个机器学习模型,可以说 SVM,但千万别说 LR,因为细节真的太多了. 秉持着精益求精的工匠精神不断对笔记进行 ...
- 【逻辑回归学习笔记】
算法描述 1.逻辑回归要做的事就是寻找分界面实现二分类. 2.问题假设:对一堆三角形和正方形分类. 3.数据输入:已知正方形和三角形的坐标和标签. 4.算法过程: 知识储备 1.分类和回归 ①分类的目 ...
- 逻辑回归函数学习笔记
继续逻辑回归学习,今日笔记记录. 1.逻辑回归和线性回归的关系:对逻辑回归的概率比取自然对数,则得到的是一个线性函数,推导过程如下. 首先,看逻辑回归的定义 其次,计算两个极端y/(1-y),其值为( ...
- 2.2 逻辑回归-机器学习笔记-斯坦福吴恩达教授
逻辑回归 上一节我们知道,使用线性回归来处理 0/1 分类问题总是困难重重的,因此,人们定义了逻辑回归来完成 0/1 分类问题,逻辑一词也代表了是(1) 和 非(0). Sigmoid预测函数 在逻辑 ...
- LVM逻辑卷分区笔记
磁盘的静态分区有其缺点:分区大小难评估,估计不准确,当分区空间不够用的时候,系统管理员可能需要先备份整个系统,清除磁盘空间,然后重新对磁盘进行分区,然后恢复磁盘数据到新分区,且需要停机一段时间进行恢复 ...
- 适合理工直男的钟平老师逻辑英语学习笔记
一切的一切都只是套路! --鲁迅 核心公式: En: (状语1) 主(定语1) 谓(状语2) (宾)(定语2) (状语1) Ch: (状语1) (定语1)主 (状语2)谓 (定 ...
- 【数字逻辑】学习笔记 第四章 Part2 常用组合逻辑电路与竞争、险象
文章目录 一.常用组合逻辑电路 1. 译码器 (1) 二进制译码器 74LS138(3/8译码器) a. 一般符号和图形符号 b. 74LS138功能表 c. 两片 `74LS138` 构成 `4-1 ...
- 线性回归、逻辑回归学习笔记
学习源代码 import numpy as np import matplotlib.pyplot as plt def true_fun(X): # 这是我们设定的真实函数,即ground trut ...
最新文章
- 满12万送Mate 30 Pro?华为云“双十一”20+款明星产品齐上线
- JDK自带的实用工具native2ascii.exe
- ASP.Net中实现上传过程中将文本文件转换成PDF的方法
- matlab 绘花,【原创】使用matlab绘制菊花和玫瑰花
- Apache Mail 发送带附件的邮件
- 7个现象告诉你手游圈为什么会有寒冬
- 数据结构与算法之树的进阶
- Linux文件的基本属性
- Atitit 多继承实现解决方案 java c#
- 今天居然中了MSN病毒。
- excel自动排班表_Excel教程:3秒搞定排班表模板
- 如何擦除计算机连接网络的记录,如何清除上网记录 清除上网记录方法汇总
- 解决了Office2007向程序发送命令时出现错误 的问题
- Vistor VTL 虚拟磁带机相关问题
- 深圳大学数学文化赏析MOOC答案
- 关于glRotatef(GLfloat angle,GLfloat x,GLfloat y,GLfloat z)的参数的一些理解
- 使用理想低通滤波器对图像进行处理显示
- c语言 --- 指针
- 天蓝色在ps中的色值_用天蓝色构建混合云
- k8s存储PV与PVC使用详解
热门文章
- 如何改变android5.1音量进度条,HTML5音频audio属性
- python获取系统时间月份_python 取数组绝对值python获取当前日期
- java frame 不显示_win7系统下eclipse不显示JFrame界面的解决方法
- 有关接口和抽象类的问题
- docker_File 执行报错总结
- Android面试题收集
- 推断两条单链表是否相交
- Android ORMLite 框架的入门用法
- 好雨云帮近期问答集锦(1.16~2.5)
- MySQL server PID file could not be found!