原论文链接:https://arxiv.org/pdf/1807.03748.pdf

本文若有讲述错误或不妥之处,欢迎大佬在评论区纠正!

论文总览

论文详细解读

1. 论文的motivation

  1. 为了学习高维数据之间的潜在共享信息(slow features)
  2. 生成式模型计算量太大,且学习到的很多特征都是特定模式下的特征

所以我们不应该直接学习后验概率  (其中  是当前的输入, 是上下文),而是应该将  和  嵌入到更加紧凑分布的空间(a compact distributed vector representations)中,并最大化保留  和  之间的互信息

2. 论文的architecture

包含两个主要结构:非线性编码器   和自回归编码器 

非线性编码器 

可以是任何CNN/Transformer类型网络,将每个输入都映射到隐空间(即上面提到的compact distributed space)生成特征向量:

自回归编码器 

可以是任何RNN类型网络,将前  个输入映射的特征向量进行信息汇聚(summarize)生成上下文特征向量:

损失函数 

  • 互信息转化

将上述的互信息转化为简单的双线性对数函数:

  • InfoNCE loss

给定数据集  (包含 1 个正样本和 N-1 个负样本),可以求得损失函数为:

可以证明最小化 InfoNCE loss就等于最大化 

整体过程

  • 首先前  个数据经过  和  编码生成  和  ;
  • 对于往后的输入数据 , 先进入  生成  ,然后将  线性映射成 (作为对  的预测)。注意:这里的  对于每一个  都是不同的(即  之后的每个时间步都不同)
  • 最后将  和  带入 InfoNCE 进行互信息计算,然后 BP 更新  和  参数

3. 论文的experiment(图像方面)

由于我本身更多混迹在CV领域,所以重点讲解CPC如何在图像上操作(仅仅是一些重要操作).

  1. 对于  ,论文使用 ResNet v2 101 (没有使用 );对于  ,论文使用 PixelCNN-style AR model(感兴趣的大佬可以了解一下);
  2. 他们将每个图片分成 7x7 格(当然还有一系列变换,这里不细讲),每格作为一个数据  (从左上到右下按顺序展开),变成一个序列,然后送入CPC进行训练;
  3. 论文中最多预测 5 行(35格),即最少有2行(14格)作为  之前的数据进行提取  和  ,不进行互信息计算

个人总结

CPC作为一个通用架构,泛化性还是很强的,在多种模态下都可以使用,并可以根据任务不同侧重使用  或  作为下游任务的特征输入. 但是CPC依旧是偏 generative 式的模型,它通过  对  进行预测生成 ,然后才计算互信息,对于计算量要求还是比较大.

CPC (Contrastive Predictive Coding)相关推荐

  1. 论文阅读《Representation learning with contrastive predictive coding 》(CPC)对比预测编码

    论文地址:Representation Learning with Contrastive Predictive Coding 目录 一.Background(背景) 二.Motivation and ...

  2. 对比学习系列论文CPC(二)—Representation Learning with Contrastive Predictive Coding

    0.Abstract 0.1逐句翻译 While supervised learning has enabled great progress in many applications, unsupe ...

  3. 对比学习系列论文CPCforHAR(一):Contrastive Predictive Coding for Human Activity Recognition

    0.Abusurt 0.1逐句翻译 Feature extraction is crucial for human activity recognition (HAR) using body-worn ...

  4. 深度学习热点|超直观无公式图解Contrastive Predictive Coding从脸盲说起

    作者 | 得未曾有 出品 | 对白的算法屋 编者寄语: 通过对比学习来区分李沁和孙怡. Contrastive Learning (对比学习) 是这两年深度学习非常热的话题,可以说是刷新了很多人对无监 ...

  5. 预测性编码(Predictive Coding)简介

    预测性编码(Predictive Coding)简介 Yanping Huang and Rajesh P. N. Rao 摘要 预测性编码(Predictive Coding)是在神经系统中对认知冗 ...

  6. HCSC: Hierarchical Contrastive Selective Coding

           原型对比学习:图像表征与聚类中心之间的交互,可以简单总结为在表征空间中最大化图像特征与其所属的聚类中心的相似度.        分层语义结构 自然存在于图像数据集中,其中几个语义相关的图 ...

  7. Mockingjay: 基于双向Transformer编码的无监督语音表征学习

    本次分享台湾大学李宏毅老师团队在ICASSP 2020会议发表的论文<MOCKINGJAY: UNSUPERVISED SPEECH REPRESENTATION LEARNING WITH D ...

  8. CV领域的对比学习综述

    对比学习发展历程 发展历程大概可以分为四个阶段 1.百花齐放 InstDisc(instance discrimination) CPC CMC 在这个阶段中,方法.模型.目标函数.代理任务都还没有统 ...

  9. 对比学习(Contrastive Learning)综述

    A.引入   https://zhuanlan.zhihu.com/p/346686467 A.引入 深度学习的成功往往依赖于海量数据的支持,其中对于数据的标记与否,可以分为监督学习和无监督学习. 1 ...

最新文章

  1. grabcut.cpp:380: error: (-215) !bgdSamples.empty() !fgdSamples.empty() in function initGMMs
  2. 逻辑运算符和||与(和|)的区别
  3. Java开发程序员最值得学习的10大技术
  4. C#循环给多个控件赋值
  5. Oracle为什么装在XP系统,重装xp系统后oracle恢复方法
  6. 程序员出差是去干什么_让我来告诉你,35岁以上的人都在干什么!
  7. 表格为一条细线的html代码,html制作细线表格的简单实例
  8. Java动态性(3) - 脚本引擎执行javascript代码
  9. 利用WCF与Android实现图片上传并传参
  10. html网页正确代码,html简单网页代码(html代码格式开头)
  11. 盘点员工工作效率低的8大原因
  12. 练习 颈部肌肉重要性及锻炼方法
  13. 计154-1.2班C++翻转课堂的课程总结链接集
  14. php生成统计图类pchart---中文翻译手册
  15. 关于海盗分金币问题的讨论(面试题)[]
  16. Python破解12306图片验证码
  17. BUUCTF:镜子里面的世界
  18. 做网站申请域名有什么方法?
  19. 台湾 天堂java 论坛_tiantangsifu_Rev1388jar_1386db java编写天堂私服*系统 - 下载 - 搜珍网...
  20. 【转帖】噪声库(noiseX-92)

热门文章

  1. Spring 版本和Jackson版本兼容问题
  2. java计算机毕业设计进出货管理系统(附源码、数据库)
  3. dcp-9020cdn硒鼓停止_dcp9020cdn硒鼓!错误_显示硒鼓错误的解决办法
  4. 12【C语言 趣味算法】存钱问题(四层for循环,if判断)
  5. Pydicom User Giude
  6. 解决Android模拟器打不开的问题!...
  7. PS多媒体教程带你享受快乐学习
  8. CakePHP系列(一)----CakePHP3.4一览
  9. 【原创】我的MP3播放器--2007.12(搬家待修复)
  10. cakephp视图用php文件,cakephp使用笔记