[Chen T. & Li L. Intriguing Properties of Contrastive Losses. arXiv preprint arXiv 2011.02803, 2020.]

普通的对比损失有一种广义的表示方法, 改变alignment和distribution项的权重比有何影响? 同时, 改用不同的先验分布会有什么影响?

另外作者还发现了一种特征压制的现象, 即对比损失会更容易抓住一些简单的特征(如果存在), 而忽视不易往往更为有效的特征, 且这种现象不会随着网络的大小, 训练的次数或者batch size等等因素变化而产生明显变化.

主要内容

广义对比损失

普通的对比损失

\[\mathcal{L} = -\frac{1}{n} \sum_{i, j \in \mathcal{MB}} \log \frac{\exp (\mathrm{sim}(z_i, z_j) / \tau)}{\sum_{k=1}^{2n} \mathbf{1}_{[k \not= i]}\exp (\mathrm{sim}(z_i, z_k) / \tau)},
\]

广义的对比损失

\[\mathcal{L} = -\frac{1}{n} \sum_{i, j} \mathrm{sim}(z_i, z_j) + \lambda \cdot \frac{1}{n} \sum_{i} \log \sum_{k=1}^{2n} \mathbf{1}_{k \not = i} \exp (\mathrm{sim} (z_i, z_k) / \tau).
\]

第一项为\(\mathcal{L}_{alignment}\), 第二项为\(\mathcal{L}_{distribution}\), 第一项会使得正样本之间靠近, 第二项使得负样本之间趋于一个先验分布, 普通的对比损失是以均匀分布为先验的(直观上这种情况下的熵最大). 从互信息的角度来理解:

\[I(X;Y) = H(X) - H(X|Y),
\]

\(H(X)\)对应\(\mathcal{L}_{distribution}\), \(-H(X|Y)\)对应\(\mathcal{L}_{alignment}\).

不同的先验

作者首先研究了不同的先验分布会有什么影响(其算法涉及到sliced wasserstein distance, 暂时不想了解):

如下图所示, 在CIFAR-10上差距不大, ImageNet上当projection head只有两层的时候有差距但是增加到三层的时候又没啥差距了.

不同的权重比\(\tau, \lambda\)

现在广义对比损失上有两个我们可以调节的参数, 包括temperature \(\tau\)和\(\lambda\).

如上图所示, 作者称二者的关系是相反的, 即较大的\(\tau\)往往需要较小的\(\lambda\), 较小的\(\tau\)往往需要较大的\(\lambda\).

Feature Suppression

作者发现比较简单的特征更容易被学习到, 且该部分特征会阻碍网络学习其他的更加复杂的特征.

DigitOnImageNet dataset

第一个实验是, 在一些图片上加上一些数字:

注: 这些数字是在augmentation之前加的, 也就是说正样本之间是会共享这部分数字信息的.

用这个数据集在

  1. 监督学习

  2. 对比学习, 并且变换\(\tau\)

可以发现, 这部分共享信息对于有监督训练分类网络(关于Imagenet)是几乎没有影响的. 但是在对比学习中, 随着数字的量的增加, 提取到的特征大部分是用于分类数字而不是占据更多共享信息的图片. 虽然小一点的\(\tau\)能够在一定程度上缓解这一状况. 这说明, 对比学习很容易被一些小的简单的共享信息所误导, 去学习一些简单的特征, 而且这些特征会阻碍进一步学习更复杂的特征.

RandBit dataset

这部分实验进一步说明, 这些简单特征甚至能够完全抹杀复杂的特征.

这部分数据集的构造方式是, 对普通的RGB图片添加新的channels, 每一层channel要么都是\(1\), 要么都是\(0\)(看代码似乎是这个意思, 不过此时共享的信息应该是\(n\)?).

结果如上图, 可以发现, 这一点点的几个bits的共享的信息就能够使得对比损失效果骤降甚至是完全失效, 且改变\(\tau\), batch size, 或者是先验分布, 以及训练的框架都不能有所改善.

代码

原文代码

Intriguing Properties of Contrastive Losses的更多相关文章

  1. Intriguing properties of neural networks

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! https://arxiv.org/abs/1312.6199v4 Abstract 深度神经网络是近年来在语音和视觉识别任务中取得最新性 ...

  2. (转) AdversarialNetsPapers

      本文转自:https://github.com/zhangqianhui/AdversarialNetsPapers AdversarialNetsPapers The classical Pap ...

  3. ICLR 2014 International Conference on Learning Representations深度学习论文papers

    ICLR 2014 International Conference on Learning Representations Apr 14 - 16, 2014, Banff, Canada Work ...

  4. (转) Awesome - Most Cited Deep Learning Papers

    转自:https://github.com/terryum/awesome-deep-learning-papers Awesome - Most Cited Deep Learning Papers ...

  5. On Explainability of Deep Neural Networks

    On Explainability of Deep Neural Networks « Learning F# Functional Data Structures and Algorithms is ...

  6. 瞎谈CNN:通过优化求解输入图像

    本文同步自我的知乎专栏: From Beijing with Love 机器学习和优化问题 很多机器学习方法可以归结为优化问题,对于一个参数模型,比如神经网络,用来表示的话,训练模型其实就是下面的参数 ...

  7. 用Caffe生成对抗样本

    同步自我的知乎专栏:https://zhuanlan.zhihu.com/p/26122612 上篇文章 瞎谈CNN:通过优化求解输入图像 - 知乎专栏 中提到过对抗样本,这篇算是针对对抗样本的一个小 ...

  8. (转)Is attacking machine learning easier than defending it?

    转自:http://www.cleverhans.io/security/privacy/ml/2017/02/15/why-attacking-machine-learning-is-easier- ...

  9. My deep learning reading list

    My deep learning reading list 主要是顺着Bengio的PAMI review的文章找出来的.包括几本综述文章,将近100篇论文,各位山头们的Presentation.全部 ...

随机推荐

  1. Shell 统计文件的行数

    目录 统计文件的行数 题目 题解-awk 题解-wc 题解sed 统计文件的行数 题目 写一个 bash脚本以输出一个文本文件 nowcoder.txt中的行数 示例: 假设 nowcoder.txt ...

  2. C/C++ Qt 数据库与TableView多组件联动

    Qt 数据库组件与TableView组件实现联动,以下案例中实现了,当用户点击并选中TableView组件内的某一行时,我们通过该行中的name字段查询并将查询结果关联到ListView组件内,同时将 ...

  3. day17 阶段测验

    题目 1.找出/proc/meminfo文件中以s开头的行,至少用三种方式忽略大小写 有以下几种方法: [root@localhost ~]# grep -iE "^s" /pro ...

  4. Redis6 新特性

    Redis6新特性 ACL安全策略 ACL(access control list): 访问控制列表,可以设置多个用户,并且给每个用户单独设置命令权限和数据权限 default用户和使用require ...

  5. nodejs-npm模块管理器

    JavaScript 标准参考教程(alpha) 草稿二:Node.js npm模块管理器 GitHub TOP npm模块管理器 来自<JavaScript 标准参考教程(alpha)> ...

  6. 关于ai算法的一个点子

    长久以来,一直想要有自己的原生算法. 今天灵感图然来了: 想到, 一个事务不但要看它本身,也要看欣赏它的人. 要研究两个方面. 你要研究音乐,也要研究欣赏音乐的人. 人之所以会欣赏音乐,而牛不可以(对 ...

  7. sax方式解析XML学习笔记

    原理:对文档进行顺序扫描,当扫描到文档(document)开始与结束,元素开始与结束.文档结束等地方 通知事件处理函数,由事件处理函数相应动作然后继续同样的扫描,直至文档结束. 优点:消耗资源比较少: ...

  8. 【Linux】【Services】【nfs】nfs安装与配置

    1. 概念 1.1. NFS:Network File System,传统意义上,文件系统在内核中实现. 1.2. RPC:Remote Procedure Call protocol,远程过程调用, ...

  9. 部署应用程序到Tomcat的webapps目录

    一.方法如下 1.通过MyEclipse上方工具栏Manage Deployments,依次选择项目和服务器: 2.通过右击项目Export,生成war包到webapps中: 3.复制项目WebRoo ...

  10. Table.Combine追加…Combine(Power Query 之 M 语言)

    数据源: 销量表和部门表 目标: 其中一表的数据追加到另一表后面,相同列直接追加,不同列增加新列 操作过程: 选取销量表>[主页]>[追加查询]/[将查询追加为新查询]>选择要追加的 ...