Supervised Contrastive Learning
这篇文章非常有意思,在代表自监督领域的对比学习方法中提出了有监督的对比学习框架。
Introduction
交叉熵损失函数有缺乏对嘈杂标签鲁班性,差边距等缺点,但是很多替代方案始终不能泛用地替代它。此工作中提出了一种监督学习的损失,通过利用标签信息建立对比自监督信息。在将不同实例拉开的同时还使来自同一类的更紧密地结合在一起。看图一目了然:
左边是传统的自监督,可以看到在嵌入空间内同类样本也被拉开了,理论上我们希望同类的特征应该紧靠一起,这就是作者要这么做的原因把。
有监督对比学习的正负实例的选择策略也不同:正样本是从与锚点相同类别的样本中提取的而不是像自监督学习中所做的是锚点的数据增强。每个锚点使用多个正实例和多个负实例,无需进行负例的选择探究。作者还分析了所设置的两种自监督损失函数的效果。
Method
给定一批输入数据,首先应用两次数据增强以获得该批的两个副本。两个副本都通过编码器网络前向传播,以获得 2048 维的归一化嵌入。在训练期间,该表示通过投影网络进一步传播,该投影网络在推理时被丢弃。在投影网络的输出上计算监督对比损失。与监督学习的不同之处在于,在分类头之前,划分了一个阶段用于优化对比损失。而与自监督学习不同的是,选取的正负例是根据是否同类来区分的。如下图:
Data Augmentation :
对于每个输入样本 x,生成两个随机增强,x=Aug(x)x = Aug(x)x=Aug(x) ,每个都代表数据的不同视图。
Encoder Network:
这个模块主要用于将x编码为一个表示向量,两个增强样本分别输入到同一个编码器,产生一对表示向量。r=Enc(x)r = Enc(x)r=Enc(x)
Projection Network:
将表示向量r映射到一个投影空间: z=Proj(r)z = Proj(r)z=Proj(r)。
Loss function
对于一个批次内的样本、标签对 {xk,yk}k=1…N\left\{{x}_{k}, {y}_{k}\right\}_{k=1 \ldots N}{xk,yk}k=1…N , 在训练时将其扩充为2N2N2N对 {x^2k,y^2k}k=1…N\left\{\hat{x}_{2k}, \hat{y}_{2k}\right\}_{k=1 \ldots N}{x^2k,y^2k}k=1…N
{x^2k−1,y^2k−1}k=1…N\left\{\hat{x}_{2k-1}, \hat{y}_{2k-1}\right\}_{k=1 \ldots N}{x^2k−1,y^2k−1}k=1…N 。我们将这些增强样本对称为多视图批次。
而在一个多视图批次内,设i∈I≡{1…2N}i \in I \equiv\{1 \ldots 2 N\}i∈I≡{1…2N} 为该批次内任一个增强样本。
Lout sup =∑i∈ILout ,isup =∑i∈I−1∣P(i)∣∑p∈P(i)logexp(zi⋅zp/τ)∑a∈A(i)exp(zi⋅za/τ)Lin sup =∑i∈ILin ,isup =∑i∈I−log{1∣P(i)∣∑p∈P(i)exp(zi⋅zp/τ)∑a∈A(i)exp(zi⋅za/τ)}\begin{gathered} \mathcal{L}_{\text {out }}^{\text {sup }}=\sum_{i \in I} \mathcal{L}_{\text {out }, i}^{\text {sup }}=\sum_{i \in I} \frac{-1}{|P(i)|} \sum_{p \in P(i)} \log \frac{\exp \left(\boldsymbol{z}_{i} \cdot \boldsymbol{z}_{p} / \tau\right)}{\sum_{a \in A(i)} \exp \left(\boldsymbol{z}_{i} \cdot \boldsymbol{z}_{a} / \tau\right)} \\ \mathcal{L}_{\text {in }}^{\text {sup }}=\sum_{i \in I} \mathcal{L}_{\text {in }, i}^{\text {sup }}=\sum_{i \in I}-\log \left\{\frac{1}{|P(i)|} \sum_{p \in P(i)} \frac{\exp \left(\boldsymbol{z}_{i} \cdot \boldsymbol{z}_{p} / \tau\right)}{\sum_{a \in A(i)} \exp \left(\boldsymbol{z}_{i} \cdot \boldsymbol{z}_{a} / \tau\right)}\right\} \end{gathered} Lout sup =i∈I∑Lout ,isup =i∈I∑∣P(i)∣−1p∈P(i)∑log∑a∈A(i)exp(zi⋅za/τ)exp(zi⋅zp/τ)Lin sup =i∈I∑Lin ,isup =i∈I∑−log⎩⎨⎧∣P(i)∣1p∈P(i)∑∑a∈A(i)exp(zi⋅za/τ)exp(zi⋅zp/τ)⎭⎬⎫
以上二式就是作者提出的两个损失,其中P(i)≡p∈A(i)P(i) \equiv{p \in A(i) }P(i)≡p∈A(i) 为多视图批次的正样本对,a∈A(i){a\in A(i)}a∈A(i) 为除iii 外的样本对。τ\tauτ 为温度超参数。两个公式的含义都很直观,即在投影空间里,拉近正例的距离,拉远与负例的距离。不同的是,logloglog 所处的位置不同,因此作者还比较了两种损失的差异:
Loutsup\mathcal{L}^{sup}_{out}Loutsup 显然优于Linsup\mathcal{L}^{sup}_{in}Linsup 。作者认为,这是正例归一化项1/P(i)1/P(i)1/P(i) 带来的偏差。因为在Linsup\mathcal{L}^{sup}_{in}Linsup 中,正例归一化项位于logloglog内部,导致对整个损失函数的影响仅仅为常数级别。而前者在logloglog外部,能有效地影响梯度变化。在没有任何归一化效果的情况下,Linsup\mathcal{L}^{sup}_{in}Linsup 的梯度更容易受到正例偏差的影响,从而导致次优训练。
Experiments
由于使用了label,主要还是和交叉熵比较(imageNet上不同网络,不同数据增强的消融)
对数据损伤的鲁棒性:
第一次看觉得噱头大于实际,类标签都预先知道了,套个对比学习的框架,这和交叉熵有什么区别。。。后面简单实现了下,还是能涨点的,确实是有点玄学,硬要解释的话,个人觉得在对比学习的空间里知识表示能力较于交叉熵更强吧。
Supervised Contrastive Learning相关推荐
- Micro-expression recognition with supervised contrastive learning基于对比监督学习的微表情识别
Micro-expression recognition with supervised contrastive learning基于对比监督学习的微表情识别--2022 PRL 文章链接:https ...
- Supervised Contrastive Learning(学习笔记)
Supervised Contrastive Learning NeurlPS2020 原文链接: https://arxiv.org/pdf/2004.11362v4.pdf b站讲解视频: htt ...
- 文章分享《Supervised Contrastive Learning》 自监督对比学习和有监督对比学习的区别
文章题目 Supervised Contrastive Learning 作者: Prannay Khosla Piotr Teterwak Chen Wang Aaron Sarna 时间:2020 ...
- NIPS20 - 将对比学习用于监督学习任务《Supervised Contrastive Learning》
文章目录 原文地址 论文阅读方法 初识 相知 回顾 代码 原文地址 原文 论文阅读方法 三遍论文法 初识 对比学习这两年在自监督学习.无监督学习任务中非常火,取得了非常优秀的性能.这个工作就是想办法将 ...
- 论文阅读笔记(7-1)---Supervised Contrastive Learning
原文链接 B站讲解视频 Toutube视频搬运 参考解读 参考解读 研究背景 交叉熵损失函数是分类模型监督学习中应用最广泛的损失函数,但是它具有对噪声标签缺乏鲁棒性.边界性差等特点,泛化能力较差. 研 ...
- Targeted Supervised Contrastive Learning for Long-Tailed Recognition(2022.5.14)
(一)解决的问题: 数据往往呈现出长尾分布,类间严重失衡,多数类可能主导训练过程,并改变少数类的决策边界. (二)动机: 提出一种平衡采样的方法,同时能够学习到统一的特征空间,使长尾分布的数据在特征空 ...
- Supervised Contrastive Learning For Recommendation
摘要: 我们的目的是充分考虑对比学习在推荐系统场景中的应用,使其更适合于推荐任务.我们提出了一个监督对比学习框架来预训练用户-项目二部图,然后对图卷积神经网络进行微调.具体来说,我们将在数据预处理过程 ...
- 对比学习(Contrastive Learning)综述
A.引入 https://zhuanlan.zhihu.com/p/346686467 A.引入 深度学习的成功往往依赖于海量数据的支持,其中对于数据的标记与否,可以分为监督学习和无监督学习. 1 ...
- Contrastive learning of Class-agnostic Activation Map for Weakly Supervised Object Localization and
paper: Contrastive learning of Class-agnostic Activation Map for Weakly Supervised Object Localizati ...
- 论文阅读 (68):Self-Contrastive Learning: An Efficient Supervised Contrastive Framework with Single...
文章目录 1 引入 1.1 题目 1.2 摘要 1.3 Bib 2 自对比学习 2.1 SupCon损失 2.2 SelfCon损失 1 引入 1.1 题目 2021自对比学习:单视图和子网络下的 ...
最新文章
- flutter 判断是不是调试模式_女人怎么判断男人是不是喜欢自己//男人真正喜欢女人的追求方式...
- 11.17 dfs poj1979 Red and Black
- 决定零售商生与死的12大关键指标
- linux 安装org2pg_Ora2Pg的安装和使用
- 重装 IDEA 再也不怕了,一招搞定配置同步!
- python电话簿_python 联系簿
- wpl计算方法_用于计算加权路径长度(WPL)的C ++二叉树算法
- 价值7k美刀的Flickr网站漏洞是怎么样的?
- 楚留香冰最新服务器,楚留香3.30更新公告 新增雕像功能
- 三星矫情,重温Galaxy S5发布会收买人心
- SLAM算法实习生-实习面试准备篇(1)
- JACK——TeamsMaual6 Team Formation
- 2022年测绘资质怎么办理及办理流程?
- Chapter7 Cloud Infrastructure Mechanisms
- 网络中的pvid与native vlan(本征vlan)区别以及详解
- 国外可以发外链的网站,外贸网站外链平台
- D - Circular Addition
- 机器学习——朴素贝叶斯
- 前端构建工具-gulp !(解决浏览器缓存问题)
- Logos系列FPGA PCB设计用户指南