对于无监督学习来说,互信息是一个非常重要的指标,它衡量了两个随机变量之间的相关性。在无监督学习中,利用对互信息的优化,通常我们能够得到更加好的特征表示。
要做什么
特征抽取是无监督学习的重要部分,旨在对大量的无标注数据样本进行训练,最后能够得到一个编码器 E,将每一个样本x x x编码为一个好的向量表示z z z,那么如何衡量这个表示是否好呢?自编码器(AutoEncoder)告诉我们, 希望编码出的向量能够重构原始样本。因此我们在加入一个解码器 D, 将重构的x ′ x’x ′与x x x做 Mse loss。
但是这样的想法真的好吗?答案是不见得,比如下面的例子:
尽管我们已经见过很多次钞票长什么样子,但我们很少能一模一样的画出钞票;虽然我们画不出栩栩如生的钞票,但我们依旧可以轻易地辨别出钞票。因此钞票在我们大脑中的表示,并不需要我们能够生成完整的钞票,而只需要我们能够进行辨别。基于此,我们可以认为,在人的认知学习中: 一个样本的好的表示应该是能够从大量数据中辨别出该样本,而不是能够直接生成改样本。
; 互信息的优化
那别如何去学习到一个足够辨别该样本的表示呢?没错,就是 最大化互信息。这里先引入一些记号,令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)架构如下:
以语音为例,首先通过一个编码器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为:
其中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。而:
因此: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 )的下界进行优化:
疑问
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/
转载文章受原作者版权保护。转载请注明原作者出处!