无监督表示学习(一):2018 Contrastive Predictive Coding(CPC)

今天看到了Hinton团队的一项无监督表示学习的新研究:SimCLR,其中总结了对比损失为无监督学习带来的飞速进展。于是决定把近三年来这方面的论文都读一下,2018、2019和2020每年各一篇,开始吧!

第一篇论文,是2018年DeepMind团队研究出的新的无监督表示学习方法:Contrastive Predictive Coding,即对比预测编码(CPC)。

论文下载

题目:《Representation Learning with Contrastive Predictive Coding》
地址:https://arxiv.org/pdf/1807.03748.pdf

相关内容补充

  • 表示学习(Representation Learning):学习数据的表征,以便在构建分类器或其他预测器时更容易提取有用的信息,无监督学习也属于表示学习。
  • 互信息(Mutual Information):表示两个变量XY之间的关系,定义为:I(X;Y)=\sum_{x\in X}\sum_{y\in Y}{p(x,y)\log \frac{p(x|y)}{p(x)}},可以解释为由X引入而使Y的不确定度减小的量,I(X;Y)越大说明两者关系越密切。
  • 对比损失Contrastive Loss):计算成对样本的匹配程度,主要用于降维中。计算公式为:L=\frac{1}{2N} \sum^{N}_{n = 1}{yd^2+(1-y)max(margin-d,0)^2},其中d=\sqrt{(a_n-b_n)^2}为两个样本的欧式距离,y=\{0,1\}代表两个样本的匹配程度,margin代表设定的阈值。损失函数的目的是让原本分布相似的样本在降维后也相似,原本不相似的在降维后也保持不相似
  • 噪声对抗估计(Noise Contrastive Estimation, NCE):在NLP任务中一种降低计算复杂度的方法,将语言模型估计问题简化为一个二分类问题。
  • 负采样(Negative Sampling, NEG):表示负采样,是NCE的一个简化版本,目的是提高训练速度,改善所得词向量的质量。采用了相对简单的随机负采样,本文中选择数据集中一个是正样本,其他均为负样本。

问题提出

目前,表示学习的主要问题在于,网络学习到的特征往往都只适用于特定的任务,其泛化性能有待提升。最近的无监督学习都沿用了最普遍的方法:预测未来的、缺失的或上下文的特征,因此无监督学习可以定义为预测问题,将预测到的特征再用于表示学习。
论文主要工作:
1、将高维数据编码到一个更容易对任务进行建模的低维隐空间中;
2、在隐空间中运用了一个强大的自回归模型,来预测未来特征或步骤;
3、为了实现端到端的网络训练,使用了对抗噪声估计作为损失函数。

网络模型

CPC用于音频信号的模型

如图所示,代表输入的音频序列,首先经过一个非线性编码器,它将输入序列编码成隐空间的序列,这时时间的分辨率会随之降低;然后,再用一个自回归模型将时刻之前的隐空间序列整合,得到当前状态的内容隐空间表示。
这篇论文认为,在预测未来数据的特征时,由于输入数据维度很高,再加上用单峰损失函数可能得不到细节信息,直接用一个基于的生成式模型去获得数据特征的方法不是最有效的。因此在CPC中,对和的密度比建模,构造了一个概率密度函数: 使用双线性模型,对每个k时刻进行线性映射,这个过程对非线性网络和循环神经网络也同样适用。同时函数和、的互信息成正比,通过最大化两者的互信息来解析输入数据在隐空间的共有特征。
网络使用了重要性采样(importance sampling)和对抗噪声估计等技巧避免了直接对高维数据建模,直接从和中采样得到正负样本,再进行计算。
和都可以作为下游任务的输入,需要获取过去输入信号的信息时更适用,不需要时更适用(比如图像分类)。

损失函数

编码器和自回归模型基于NCE(Noise Contrastive Estimator)联合优化损失函数,也称为InfoNCE。给定数据集X=\{x_1,x_2,...,x_N\}N个随机样本中包含一个正样本(从p(x_{t+k}|c_t)中采样),和N-1个负样本(从p(x_{t+k})中采样),定义优化函数为:L_N=-E_x[\log \frac{f_k(x_{t+k},c_t)}{\sum _{x_j\in X}{f_k(x_j,c_t)}}]
这是对正样本正确分类的交叉熵损失,其中\frac {f_k}{\sum_X {f_k}}是网络的预测输出,再将f_k的概率形式\frac{p(x_{t+k}|c_t)}{p(x_{t+k})}代入,得到损失函数的概率形式(原文式5)。
最后可估计x_{t+k}c_t的互信息:I(x_{t+k};c_t)\geq \log(N)-L_N样本数量N越大,损失函数越小,两个分布的互信息就越大。因此,最大化互信息可看做最小化损失函数,最小化损失函数就需要最大化f函数,经过论证f与负采样的数量无关。

实验结果

论文对音频、图像、文本和强化学习任务中分别进行了实验,先用CPC模型对数据进行隐空间编码,再预测训练数据未来的或缺失的特征,最后训练分类器对CPC得到的特征进行分类。相当于是对高维数据的一种降维方法,降维的同时基于已有的数据分布情况,预测出更多的特征信息。
对于有时间维度的数据,例如音频、文本,CPC模型对于当前时刻t以前的数据进行训练,得到每个时间点的隐空间向量,再用自回归模型结合之前的隐变量和当前隐变量,预测时间t以后的特征分布;对于没有时间维度的数据,如图像,模型的自回归部分根据隐变量得到特征图的前2~5行,再根据已有信息预测剩余行的特征(输出的是7x7的网格)。

总结

1、论文的主要思想
本文提出了对比预测编码(CPC),这是一种用于提取紧凑潜在表示以对未来观测进行编码的框架。CPC将自回归建模和噪声对比估计与预测编码的直觉相结合,以一种无监督的方式学习抽象表示。
利用编码器和自回归模型对高维数据进行降维,得到可表示信息,再用对比噪声估计预测未来的表示信息。
2、编码器和自回归模型各自的作用
编码器将输入高维数据映射成低维空间的隐变量,使用自回归模型是为了将之前时刻和当前时刻的隐变量汇总。

挖坑

1、负采样的方式具体怎么简化成二分类的问题?
实质是基于对比学习的模型训练方式,在MOCO的论文中,作者对当前主流的对比学习方法做了比较清楚的总结:对比学习和GAN网络以及NCE存在很大联系,可以将其看做是一个查字典的过程,在输入高维连续的数据上建立字典,构造一个对比损失函数,让每个查询样本和它唯一对应的键值关联最大,和其他键值关联最小。其中查询样本是输入数据x经由编码器在隐空间的低维表示向量,键值则是更具高层语义信息的内容表示向量。
在本文中可以理解为,输入的数据x经过一个编码器得到低维空间特征z,再将z经过自回归模型得到内容表示c,网络的目的是让当前输入的x_t只和c_t之间互信息最大,其余视为负样本的x_jc_t互信息最小。损失函数的设计是基于N分类的softmax形式,\frac {f_k}{\sum_X {f_k}}中分子是正样本的预测置信度(以互信息的形式),分母是其他负样本的预测置信度,损失函数越小,说明样本和正确键值之间距离越小,和错误键值之间距离越大。
2、无标注信息的数据经过CPC得到特征,再对特征进行分类的时候以什么作为对比标签?
根据DIM论文里的描述,DIM的目标在于训练一个编码器,该编码器能够对输入数据进行比较好的特征解析,当把编码器融合进下游任务时,比如分类任务,就需要在编码器后面添加少量的卷积层或全连接层,这些网络的目的是把编码器得到的特征转化为对应的回归值,从而得到分类的预测标签。因此后续添加上去的网络层需要经过训练,训练的标签就来源于数据。
这个问题实际上是想问,既然做分类任务,为什么要先无监督训练一个编码器得到特征,再有监督地对特征训练一个分类器,这样还是一个有监督的分类方式?后来发现分类任务只是评估编码器表示能力的工具,用于测试编码器得到的特征是否包含所需要的类别信息,所以理所应当再用输入数据的标签去训练一个后接网络。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343