论文笔记:Representation Learning with Contrastive Predictive Coding

对于无监督学习来说,互信息是一个非常重要的指标,它衡量了两个随机变量之间的相关性。在无监督学习中,利用对互信息的优化,通常我们能够得到更加好的特征表示。

要做什么

特征抽取是无监督学习的重要部分,旨在对大量的无标注数据样本进行训练,最后能够得到一个编码器 E,将每一个样本x x x编码为一个好的向量表示z z z,那么如何衡量这个表示是否好呢?自编码器(AutoEncoder)告诉我们, 希望编码出的向量能够重构原始样本。因此我们在加入一个解码器 D, 将重构的x ′ x’x ′与x x x做 Mse loss

论文笔记:Representation Learning with Contrastive Predictive Coding
但是这样的想法真的好吗?答案是不见得,比如下面的例子:
论文笔记:Representation Learning with Contrastive Predictive Coding
尽管我们已经见过很多次钞票长什么样子,但我们很少能一模一样的画出钞票;虽然我们画不出栩栩如生的钞票,但我们依旧可以轻易地辨别出钞票。因此钞票在我们大脑中的表示,并不需要我们能够生成完整的钞票,而只需要我们能够进行辨别。基于此,我们可以认为,在人的认知学习中: 一个样本的好的表示应该是能够从大量数据中辨别出该样本,而不是能够直接生成改样本

; 互信息的优化

那别如何去学习到一个足够辨别该样本的表示呢?没错,就是 最大化互信息。这里先引入一些记号,令X X X表示所有样本集合,x x x表示其中一个样本。Z Z Z表示所有编码向量的集合,z z z表示其中一个编码向量。X X X与Z Z Z的互信息表示为:
I ( X , Z ) = ∑ x ∈ X , z ∈ Z p ( x , z ) l o g p ( x ∣ z ) p ( x ) = H ( X ) − H ( X ∣ Z ) I(X,Z)=\sum_{x \in X, z \in Z}p(x, z) log \frac{p(x|z)}{p(x)}=H(X) – H(X|Z)I (X ,Z )=x ∈X ,z ∈Z ∑​p (x ,z )l o g p (x )p (x ∣z )​=H (X )−H (X ∣Z )
最大化原始数据X X X和其表示Z Z Z的互信息I ( X , Z ) I(X,Z)I (X ,Z ), 如果X X X是固定的,比如图谱的像素,那么就等价与最小化条件熵H ( X ∣ Z ) H(X | Z)H (X ∣Z ), 也就是说,条件熵越小,也就表示,给定一个表示z z z, 其对应的样本x x x的不确定性越低,也就是说,z z z能够很好地从大量样本X X X中辨别x x x。

对比预测编码(CPC)

本文提出地对比预测编码(CPC)架构如下:

论文笔记:Representation Learning with Contrastive Predictive Coding
以语音为例,首先通过一个编码器g e n c g_{enc}g e n c ​将语音信号x t x_t x t ​编码为潜在表示z t z_t z t ​, 然后通过一个g a r g_{ar}g a r ​总结所有z ≤ t z_{\le t}z ≤t ​得到c t c_t c t ​(c t c_t c t ​融合了t t t时间前的所有信息), 然后通过一个W k W_k W k ​映射为W k c t W_kc_t W k ​c t ​, 最终我们希望能够通过W k c t W_kc_t W k ​c t ​识别出x t + k x_{t+k}x t +k ​。因为W k W_k W k ​是对时间步的映射,被所有C C C共享,因此如果能够从W k c t W_kc_t W k ​c t ​中识别x t + k x_{t+k}x t +k ​,那么便说明c t c_t c t ​是一个好的表示。得到了每一个x t x_t x t ​的编码表示c t c_t c t ​后,如果需要得到样本的表示,对他们进行一个pooling就可以了。

结合上文对互信息最大化的讲解,那么CPC的目标就变成了最大化X X X和C C C的互信息I ( X , C ) I(X,C)I (X ,C ):
I ( X , C ) = ∑ x ∈ X , z ∈ C p ( x , c ) l o g p ( x ∣ c ) p ( x ) I(X,C)=\sum_{x \in X, z \in C}p(x, c) log \frac{p(x|c)}{p(x)}I (X ,C )=x ∈X ,z ∈C ∑​p (x ,c )l o g p (x )p (x ∣c )​
也就是原文中的式(1)。

; 对互信息的估计

文章的初心是希望最大化互信息,但是在实现时,是通过优化 InfoNCE对互信息的下界进行优化,从而间接最大化互信息。

定义 InfoNCE为:

论文笔记:Representation Learning with Contrastive Predictive Coding
其中X X X是所有可能的采样集合,含有N N N个样本{ x 1 , x 2 , . . . , x N } {x_1, x_2, …, x_N}{x 1 ​,x 2 ​,…,x N ​}, 其中含有一个对应c t c_t c t ​的正样本x t + k x_{t+k}x t +k ​和N − 1 N-1 N −1个负样本。
其中f k ( x t + k , c t ) = e x p ( z t + k T W k c t ) f_k(x_{t+k}, c_t)=exp(z_{t+k}^TW_kc_t)f k ​(x t +k ​,c t ​)=e x p (z t +k T ​W k ​c t ​),建模了Density Ratio, 即:f k ( x t + k , c t ) ∝ p ( x t + k ∣ c t ) p ( x t + k ) f_k(x_{t+k}, c_t) \propto \frac{p(x_{t+k} | c_t)}{p(x_{t+k})}f k ​(x t +k ​,c t ​)∝p (x t +k ​)p (x t +k ​∣c t ​)​。
关于f k ( x t + k , c t ) f_k(x_{t+k}, c_t)f k ​(x t +k ​,c t ​)为什么要用一个指数簇函数表示,我们待会儿再讲,这里先证明为什么f k ( x t + k , c t ) f_k(x_{t+k}, c_t)f k ​(x t +k ​,c t ​)建模了Density Ratio。

L N \mathcal{L}N L N ​其实就是代表了交叉熵损失,f k ∑ X f k \frac{f_k}{\sum_Xf_k}∑X ​f k ​f k ​​表示模型的输出,它其实就是p ( d = i ∣ X , c t ) p(d=i | X, c_t)p (d =i ∣X ,c t ​), 这里[ d = i ] [d = i][d =i ]表示x i x_i x i ​是正例,即i = t + k i=t+k i =t +k。而:
论文笔记:Representation Learning with Contrastive Predictive Coding
因此:f k ( x t + k , c t ) = t p ( x t + k ∣ c t ) p ( x t + k ) ∝ p ( x t + k ∣ c t ) p ( x t + k ) f_k(x
{t+k}, c_t) = t \frac{p(x_{t+k} | c_t)}{p(x_{t+k})}\propto \frac{p(x_{t+k} | c_t)}{p(x_{t+k})}f k ​(x t +k ​,c t ​)=t p (x t +k ​)p (x t +k ​∣c t ​)​∝p (x t +k ​)p (x t +k ​∣c t ​)​。

那为什么f k ( x t + k , c t ) f_k(x_{t+k}, c_t)f k ​(x t +k ​,c t ​)为什么要用一个指数簇函数表示呢?对t p ( x t + k ∣ c t ) p ( x t + k ) = e x p ( z t + k T W k c t ) t \frac{p(x_{t+k} | c_t)}{p(x_{t+k})}=exp(z_{t+k}^TW_kc_t)t p (x t +k ​)p (x t +k ​∣c t ​)​=e x p (z t +k T ​W k ​c t ​)两边取l o g log l o g, 有: l o g t p ( x t + k ∣ c t ) p ( x t + k ) = z t + k T W k c t logt\frac{p(x_{t+k} | c_t)}{p(x_{t+k})} = z_{t+k}^TW_kc_t l o g t p (x t +k ​)p (x t +k ​∣c t ​)​=z t +k T ​W k ​c t ​, t t t是一个放缩倍数, 因此加入了e x p exp e x p 后,z t + k T W k c t z_{t+k}^TW_kc_t z t +k T ​W k ​c t ​ 其实就是拟合的x t + k x_{t+k}x t +k ​ 和c t c_t c t ​ 的点互信息

到这里,L N \mathcal{L}_N L N ​的意义就呼之欲出了:直观来说,对于每一次采样,它就是尽量让正样本对之间的点互信息尽量大。而在所有数据中,大部分的点互信息l o g p ( x ∣ c ) p ( x ) log\frac{p(x|c)}{p(x)}l o g p (x )p (x ∣c )​大,可以想象I ( X , C ) I(X,C)I (X ,C )也会大。

文章在附录中也证明了,优化L N \mathcal{L}_N L N ​, 其实就是在对I ( X , C ) I(X,C)I (X ,C )的下界进行优化:

论文笔记:Representation Learning with Contrastive Predictive Coding
论文笔记:Representation Learning with Contrastive Predictive Coding

疑问

1、为什么要通过优化互信息的下界来优化互信息?而不像[1]中一样直接优化互信息本身呢?

2、关于传统的有监督分类中,最后的 logit要接一个 softmax而不接其他的归一化层,是不是最后通过 softmax后,其实就是在最大化点互信息

参考文献:

[1] 苏剑林. (2018, Oct 02). 《深度学习的互信息:无监督提取特征 》[Blog post]. Retrieved from https://spaces.ac.cn/archives/6024

Original: https://blog.csdn.net/Wangpeiyi9979/article/details/109571673
Author: 无聊的人生事无聊
Title: 论文笔记:Representation Learning with Contrastive Predictive Coding

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/557721/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球