Representation Learning with Contrastive Predictive Coding
- 参考一些NLP方法
- 理解Contrastive Learning
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 ) l o g p ( x ∣ c ) p ( x ) I(x,c) = H(x) - H(x|c) = \sum_{x,c}p(x,c)log\frac{p(x|c)}{p(x)} I(x,c)=H(x)−H(x∣c)=x,c∑p(x,c)logp(x)p(x∣c)
论文中要以某种loss函数的形式来最大化当前编码 c t c_t ct与未来帧 x t + k x_{t+k} xt+k之间的互信息。
而上述MI公式中的 p ( x ∣ c ) p ( x ) \frac{p(x|c)}{p(x)} p(x)p(x∣c)不容易计算。CPC给出的解决方案是利用最大化所提出的InfoNCE loss来最大化MI的一个下界。
如上述,给定 X = { x 1 , x 2 , . . . , x N } X=\{x_1, x_2, ..., x_N\} X={
x1,x2,...,xN}其中 x n ( n ≠ i ) x_n (n \neq i) xn(n=i)采样自p(x), 而 x i x_i xi采样于 p ( x t + k ∣ c t ) p(x_{t+k}|c_t) p(xt+k