论文阅读:Representation Learning with Contrastive Predictive Coding

编程入门 行业动态 更新时间:2024-10-09 03:24:39

<a href=https://www.elefans.com/category/jswz/34/1770125.html style=论文阅读:Representation Learning with Contrastive Predictive Coding"/>

论文阅读:Representation Learning with Contrastive Predictive Coding

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​∣ct​). 实际上当前的X中postive是 x i x_i xi​的概率
p ( d = i ∣ X , c t ) = p ( d = i , X ∣ c t ) p ( X ∣ c t ) = p ( d = i , X ∣ c t ) ∑ j p ( d = j , X ∣ c t ) = p ( x 1 ∣ c t ) p ( x 2 ∣ c t ) . . . p ( x i ∣ c t ) . . . p ( x N ∣ c t ) ∑ j p ( x 1 ∣ c t ) p ( x 2 ∣ c t ) . . . p ( x j ∣ c t ) . . . p ( x N ∣ c t ) = p ( x 1 ) p ( x 2 ) . . p ( x i ∣ c t ) . . . p ( x N ) ∑ j p ( x 1 ) p ( x 2 ) . . . p ( x j ∣ c t ) . . . p ( x N ) = p ( x i ∣ c t ) p ( x i ) ∑ j p ( x j ∣ c t ) p ( x j ) p(d=i|X, c_t) = \frac{p(d=i, X|c_t)}{p(X|c_t)} \\ = \frac{p(d=i,X|c_t)}{\sum_jp(d=j,X|c_t)} \\ = \frac{p(x_1|c_t)p(x_2|c_t)...p(x_i|c_t)...p(x_N|c_t)}{\sum_jp(x_1|c_t)p(x_2|c_t)...p(x_j|c_t)...p(x_N|c_t)}\\ =\frac{p(x_1)p(x_2)..p(x_i|c_t)...p(x_N)}{\sum_j{p(x_1)p(x_2)...p(x_j|c_t)...p(x_N)}} \\ =\frac{\frac{p(x_i|c_t)}{p(x_i)}}{\sum_j\frac{p(x_j|c_t)}{p(x_j)}} p(d=i∣X,ct​)=p(X∣ct​)p(d=i,X∣ct​)​=∑j​p(d=j,X∣ct​)p(d=i,X∣ct​)​=∑j​p(x1​∣ct​)p(x2​∣ct​)...p(xj​∣ct​)...p(xN​∣ct​)p(x1​∣ct​)p(x2​∣ct​)...p(xi​∣ct​)...p(xN​∣ct​)​=∑j​p(x1​)p(x2​)...p(xj​∣ct​)...p(xN​)p(x1​)p(x2​)..p(xi​∣ct​)...p(xN​)​=∑j​p(xj​)p(xj​∣ct​)​p(xi​)p(xi​∣ct​)​​

所以 f k ( x t + k , c t ) f_k(x_{t+k}, c_t) fk​(xt+k​,ct​)正比于上述分子。

但是为何 L N \mathcal{L}_N LN​中的分式代表 p ( d = i ∣ X , c t ) p(d=i|X, c_t) p(d=i∣X,ct​),论文中大致是这样描述的:
f k ( x t + k , c t ) ∑ x f k ( x , c t ) \frac{f_k(x_{t+k}, c_t)}{\sum_xf_k(x, c_t)} ∑x​fk​(x,ct​)fk​(xt+k​,ct​)​是一个正样本类别概率,当优化 L N \mathcal{L}_N LN​的时候,就是在最大化这个正样本类别概率,其实类似于一个最大似然估计的过程,来估计出上述的 p ( d = i ∣ X , c t ) p(d=i|X, c_t) p(d=i∣X,ct​)

在理论上的解释就是上面的内容,技术上,其实这类往往比较容易实现,道理也很直观。

由于 f f f只是一个由参数决定的估计值, f f f被feed x i , c t x_i, c_t xi​,ct​和负样本 x j , c t x_j, c_t xj​,ct​,计算softmax分类即可,直观上可以认为是一种contrastive loss, 即配对的当前状态 c t c_t ct​和未来帧 x t + k x_{t+k} xt+k​通过 f f f后的值较大,而不配对的较小。实际上就是给你一堆 x x x,网络有能力判断出与 c t c_t ct​匹配的哪个 x i x_i xi​.

其实这类论文的思路按照theory->method的顺序往往难以理解,但是按照method->theory的顺序往往是容易的,即随便想一个intuitive的loss,将其想法设法与已有的统计量发生关联,给出一个合理的数学解释。

CPC的实验部分:

更多推荐

论文阅读:Representation Learning with Contrastive Predictive Coding

本文发布于:2024-02-07 04:42:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753438.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:论文   Representation   Learning   Coding   Predictive

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!