Contrastive Multiview Coding
文章目录
- Introduction
- Method
- Predictive Learning
- Contrastive Learning with Two Views
- 距离函数的定义
- contrastive Learning with more than two views
- Implementation the Contrastive Loss
- experiments
- 代码分析
Introduction
- codeing theory 的主要思想是:以自编码器或者生成器的形式完成一组表征学习,使得到的表征能够再无损的情况下,尽可能表示所有数据点的分布。原数据本身就是一种无损表征。但是这种表征一般存在大量无用信息(noise)。
- 对于CMC来说,由于每个像素包含的信息不同,那么可以认为每个像素的好坏程度不一。
- better 像素在多层图像中都是有用的。
- 这篇文章将图像中具有相同 view 的像素映射到相近的点中,不同view的像素映射到不同的点中。
- 本文简化了 CPC 方法,删除了递归网络模块,并且将其应用于图像通道的任意组合。
- CPC的核心思想:最大化数据的多个视图的表示之间的互信息。
- 好的表征方法:使后续解决问题的工作变得简单。
- 传统CPC主要学习两个views:past and future(或者称之为 space and time)
- 本文的贡献:
- 主要将contrastive learning 泛化到 multiview 中,以最大化相同 scene 所对应的不同 view 之间的互相信息为目标。
- 将传统的 CPC 从 1 个 view 中进行自监督,拓展为从多个 view 中进行学习。并且证明,view 的个数越多,representation 的表现越好。
- 对 view 进行了不同于其他论文的定义。
- 重新设置了网络结构与配置参数。
- 本文证明了 contrastive objective 是优于 cross-view 预测的。
Method
Predictive Learning
如上:存在一个编码器 f 和一个解码器 g。如果用 V1V_1V1 和 V2V_2V2 分别表示数据集的两个 view,那么 V2^\hat{V_2}V2^ 就是输入 V1V_1V1 通过编码器和解码器得到的预测值。
Predictive 的目标函数就是 计算预测值V2^\hat{V_2}V2^ 与真实值 V2V_2V2 之间的距离,使这个距离最小。
Contrastive Learning with Two Views
- 对比学习的目标就是学习一种嵌入,这种嵌入能够将不同分布的样本分开。
- 假设两个数据集分别为 V1V_1V1 和 V2V_2V2 且每个数据集包含的样本可以记作{v1i,v2i}i=1N\{v^i_1,v^i_2 \}_{i=1}^N{v1i,v2i}i=1N。令正样本对(即相同的两个样本) x={v1i,v2i}x =\{v_1^i,v_2^i\}x={v1i,v2i},负样本(即不同的两个样本)对 y={v1i,v2j}y=\{v_1^i,v_2^j\}y={v1i,v2j}。
- 每次我们会选择 1 个正样本对和 K 个负样本对进行损失的计算。我们希望,正样本中的距离越小越好,负样本中的距离越大越好。假设距离函数为 hθ(⋅)h_\theta(·)hθ(⋅)。则目标损失可以记作下面的形式:
从上面式子可以看出,每一次我们都固定 view1 中的一个样本,然后遍历 view2 中的K+1个样本(一个正,K 个负)。我们可以将上面式子写成如下形式:
距离函数的定义
- 首先,我们利用两个编码器对数据的representation进行提取,得到各自的 embeding。这两个编码器可以记作 z1=fθ1(v1)z_1=f_{\theta_1}(v_1)z1=fθ1(v1) 和 z2=fθ2(v2)z_2=f_{\theta_2}(v_2)z2=fθ2(v2)。编码器可以利用神经网络实现。
- 然后,本文在余弦相似度的基础上,添加了一个动态的范围调节超参 τ\tauτ。得到距离函数 h(⋅)h(·)h(⋅)如下:
- 根据公示 2 和 3,我们可以求得 在固定V1V_1V1 枚举 V2V_2V2的情况下,损失LcontrastV1,V2L_{contrast}^{V_1,V_2}LcontrastV1,V2的值。同理我们也可以求得当固定 V2V_2V2 时的损失值如下:
- 其实等式2 本身就是一种逐点互信息的表示,最佳的 hθ∗h_\theta^*hθ∗ 与 联合分布概率与边界乘积概率 成正比。
contrastive Learning with more than two views
对于多个views 只需要对 公式4 进行扩展即可。如果此时以 V1V_1V1 为 core veiw 则:
上面式子计算了 V1V_1V1 和 其他 view所组成的成对 representation 的损失。
同理,我们将所有图的对进行取和得到目标函数:
如上图所示,上面两种等式都可以产生效果使得 信息块的优先级 与 view 的数量成正比。图中每个色块的数字表示该色块存在多少个成对的目标函数 LVi,VjL_{V_i,V_j}LVi,Vj。
其实这里蕴藏着对比实验的核心思想,即所有视图共有的像素块的信息是最重要的,有可能这就是我们需要的 “dog”。而那些不那么重要的像素块,可能是每种区域产生的噪音。
当然,我们也可以从上图看出,Full graph formulation 相较于 core view formulation 能够提出更多的互信息,且还可解决信息遗失的问题。
Implementation the Contrastive Loss
极端情况下,我们将所有的样本考虑到分母中,那么在计算 the full softmax distribution 时就需要进行一个很大的 N 分类问题(例如ImageNet中)。为此,作者提出了两种减轻计算过载的问题:
- 使用 Noise-Contrastive Estimation。
- 只选取 m 负样本,做 (m+1) 的softmax 分类。
为了加快模型的迭代速度,作者还建立了一个特征缓存库(Memory bank),memory bank 用于为每一个训练样本存储潜在特征。这样,就可以在计算距离时直接利用缓存中的损失。
experiments
- 将 RGB 图像转为 L 通道和 ab 通道。相同图像的 L 和 ab 组成一个正样本对 X={Li,abi}X=\{L_i,ab_i\}X={Li,abi},该图像的 L 与其他图像的 ab 形成负样本。Y={Li,abj}Y = \{L_i,ab_j\}Y={Li,abj}。
- 以 imgeNet 为输入数据集,PyTorch 自带的方法进行数据增强,范围调节参数 τ=0.07\tau=0.07τ=0.07 ,动量 momentum=0.5momentum = 0.5momentum=0.5,负样本数量 k = 16384。结果如下:
其中 Lab 以及 YDbDr 是两种不同的颜色空间,都是通过 RGB 映射转换得到的。RA:表示使用了数据增强技术。
代码分析
L:1个通道
ab:2个通道
- 让两种数据分别进入ALEXNet的部分部件(两种数据进入的部件除了输入维度不同,其他的都相同)中,得到两种图层的编码结果 feat_lfeat\_{l}feat_l 和feat_abfeat\_{ab}feat_ab。这两个编码结果的通道数都为128
Contrastive Multiview Coding相关推荐
- 对比学习系列论文CPCforHAR(一):Contrastive Predictive Coding for Human Activity Recognition
0.Abusurt 0.1逐句翻译 Feature extraction is crucial for human activity recognition (HAR) using body-worn ...
- 对比学习系列论文CPC(二)—Representation Learning with Contrastive Predictive Coding
0.Abstract 0.1逐句翻译 While supervised learning has enabled great progress in many applications, unsupe ...
- 深度学习热点|超直观无公式图解Contrastive Predictive Coding从脸盲说起
作者 | 得未曾有 出品 | 对白的算法屋 编者寄语: 通过对比学习来区分李沁和孙怡. Contrastive Learning (对比学习) 是这两年深度学习非常热的话题,可以说是刷新了很多人对无监 ...
- 论文阅读《Representation learning with contrastive predictive coding 》(CPC)对比预测编码
论文地址:Representation Learning with Contrastive Predictive Coding 目录 一.Background(背景) 二.Motivation and ...
- HCSC: Hierarchical Contrastive Selective Coding
原型对比学习:图像表征与聚类中心之间的交互,可以简单总结为在表征空间中最大化图像特征与其所属的聚类中心的相似度. 分层语义结构 自然存在于图像数据集中,其中几个语义相关的图 ...
- ICML 20: MVGRL Contrastive Multi-View Representation Learning on Graphs
talk 这篇文章是 图对比学习中 常会比较的一篇文章. 原论文中的数据都存在问题,由于dgl的数据集问题,很多人无法在cora复现出86.大多结果都在82-83.文章核心采用 ppnp来进行 视图生 ...
- CPC (Contrastive Predictive Coding)
原论文链接:https://arxiv.org/pdf/1807.03748.pdf 本文若有讲述错误或不妥之处,欢迎大佬在评论区纠正! 论文总览 论文详细解读 1. 论文的motivation 为了 ...
- 自监督学习现状和未来
本文作者来自东北大学,他通过整理自监督学习的一系列工作,把主流方法分成三大类,方便大家更全面的了解自监督学习的定义.方法.用途. 与此同时,文中也穿插着几大主流方法的最新工作进展,现在正在探索自监督学 ...
- 从自监督学习主流方法、最新工作进展,看未来前景研究方向
来源:机器学习算法与自然语言处理 本文约6000字,建议阅读10分钟. 找到合适的辅助任务,对于自监督学习是最需要解决的问题. 本文作者来自东北大学,他通过整理自监督学习的一系列工作,把主流方法分成三 ...
- 一文详解最近异常火热的self-supervised learning
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:Sherlock 知乎链接:https://zhuanlan.zhihu.c ...
最新文章
- Flash 与物理笔记:简单的小球重力模拟
- pythontkinter在一块区域中绘图_用Python中的tkinter模块作图(续)
- Java实现几种常见排序方法
- 实例比较虚幻引擎4与光线追踪渲染
- 1058 选择题 (20 分)
- openwrt 运行程序时提示缺少libstdc++.so.6
- 阶段3 1.Mybatis_12.Mybatis注解开发_2 mybatis注解开发测试和使用注意事项
- 微PE系统盘制作 / 重装系统
- macOS 安装postman 中文语言包
- 前端三件套之CSS(二)
- SQL 注入速查表大全
- 备份iphoneXR手机照片
- UiPath之邮件发送
- Thread类和Runnable接口的优劣
- html如何加深图片,css怎么改变图片颜色
- LCT学习(被虐)记 持续更新(被虐)
- 零跑掌握行业话语权,零跑汽车股价迎来新的突破
- class10:子路由和MVC模型
- 高光谱异常探测研究背景与意义
- UEFI Build file
热门文章
- objectbox No value passed for parameter ‘order‘
- 计算机专业调剂化学专业,汕头大学计算机化学专业2015年考研调剂信息
- 【Xbox one S】开箱开机初入坑心得
- 地铁与日本移动互联网
- PPT 不支持打开显示 webp 图片
- ROS:launch规范及用法
- 机器学习必备知识点 之 样本方差与实际方差
- Esp8266闪存文件系统LIttleFS
- 2019信用卡权益总结之十三:延误险
- [随笔] flex 布局使用 space-between 尾行排版效果优化