Representation Learning with Contrastive Predictive Coding
CPC
Motivation: 该论文认为,随着预测未来更多的帧,一些noisy的低层信息会被忽略掉,更多的共享信息(该论文称之为slow features)会被提取到,这也是一些更应被关注的信息。论文举了几个例子:phonemes,object,story line.
去真正的预测未来帧并不是一件简单且必要的事情,因此论文提出学习到某种可以使得当前状态c和未来帧x之间互信息最大的表示。
MI表示:
I(x,c)=H(x)−H(x∣c)=x,c∑p(x,c)logp(x)p(x∣c)
论文中要以某种loss函数的形式来最大化当前编码ct与未来帧xt+k之间的互信息。
而上述MI公式中的p(x)p(x∣c)不容易计算。CPC给出的解决方案是利用最大化所提出的InfoNCE loss来最大化MI的一个下界。

如上述,给定X={x1,x2,...,xN}其中xn(n=i)采样自p(x), 而xi采样于p(xt+k∣ct). 实际上当前的X中postive是xi的概率
p(d=i∣X,ct)=p(X∣ct)p(d=i,X∣ct)=∑jp(d=j,X∣ct)p(d=i,X∣ct)=∑jp(x1∣ct)p(x2∣ct)...p(xj∣ct)...p(xN∣ct)p(x1∣ct)p(x2∣ct)...p(xi∣ct)...p(xN∣ct)=∑jp(x1)p(x2)...p(xj∣ct)...p(xN)p(x1)p(x2)..p(xi∣ct)...p(xN)=∑jp(xj)p(xj∣ct)p(xi)p(xi∣ct)
所以fk(xt+k,ct)正比于上述分子。
但是为何LN中的分式代表p(d=i∣X,ct),论文中大致是这样描述的:
∑xfk(x,ct)fk(xt+k,ct)是一个正样本类别概率,当优化LN的时候,就是在最大化这个正样本类别概率,其实类似于一个最大似然估计的过程,来估计出上述的p(d=i∣X,ct)
在理论上的解释就是上面的内容,技术上,其实这类往往比较容易实现,道理也很直观。
由于f只是一个由参数决定的估计值,f被feed xi,ct和负样本xj,ct,计算softmax分类即可,直观上可以认为是一种contrastive loss, 即配对的当前状态ct和未来帧xt+k通过f后的值较大,而不配对的较小。实际上就是给你一堆x,网络有能力判断出与ct匹配的哪个xi.
其实这类论文的思路按照theory->method的顺序往往难以理解,但是按照method->theory的顺序往往是容易的,即随便想一个intuitive的loss,将其想法设法与已有的统计量发生关联,给出一个合理的数学解释。
CPC的实验部分: