记录一下读的三篇相关文章。

01. Representation Learning with Contrastive Predictive Coding

1.1 文章解读

这篇文章的主要思想是,我们维护一个 discriminator,负责判断两个东西是否是一致的(也可认为是一个判断相似性的函数);比如,我的 encoding 和我下一时刻的 encoding(这篇文章所做的),两个相同类别的样本,两个正样本,我的 encoding 和我数据增强后的 encoding 等等。

在这篇文章(CPC)里,我们定义 discriminator 是 \(f_k(x_{x+k},c_t)=\exp(z_{x+k}^TW_kc_t)\),这个函数大概计算了 z 和 c 的内积。其中,\(z_{x+k}\) 是 \(x_{x+k}\) 真实值的 encoding,而 \(c_t\) 是序列预测模型(比如说 RNN 或 LSTM)最后一步的 hidden 值,我们一般用这个值来预测。

这篇文章的 loss function 是

\[L_N = - E\left[\log\frac{f_k(x_{x+k},c_t)}{\sum _{x_j\in X} f_k(x_j,c_t)}\right]
\]

这是一种 maximize [exp / Σ exp] 的形式。(照搬原博客)怎么理解这个 loss function 呢,\(p(x_{t+k}|c_t)\) 指的是,我们选正在用的那个声音信号的 \(x_{t+k}\) ,而 \(p(x_{j})\) 指的是我们可以随便从其他的声音信号里选择一个片段。

回忆一下,我们刚才说过, \(f_k()\) 其实是在计算 \(c_t\) 的预测和 \(x_{t+k}\) (未来值)符不符合。那么对于随便从其他声音信号里选出的 \(x_j\),\(f_k(x_j,c_t)\) 应是相对较小的。

在具体实践时,大家常常在对一个 batch 进行训练时,把当前 sample 的 \((x_{t+k}^i,c_t^i)\)(这里上标表示 sample 的 id)当作 positive pair,把 batch 里其他 samples 和当前 sample 的预测值配对 \((x_{t+k}^j,c_t^i)\) 作为 negative pair (注意上标)。

1.2 个人理解

这篇文章主要在说 InfoNCE loss。InfoNCE loss 大概就是 maximize [exp / Σ exp] 的形式,公式:

\[L_\text{InfoNCE} = - E\left[\log\frac{\exp(z^T_{x+k}Wc_t)}{\sum _{x_j\in X} \exp(z^T_{j}Wc_t)}\right]
\]

这貌似是比较现代的对比学习 loss function。还有一些比较古早的 loss function 形式,比如 Contrastive loss(Chopra et al. 2005),它希望最小化同类样本(\(y_i=y_j\))的 embedding 之间的距离,而最大化不同类样本的 embedding 距离:

\[L(x_i,x_j) = \mathbb 1[y_i=y_j] \big\|f(x_i)-f(x_j)\big\|
+ \mathbb 1[y_i\neq y_j] \max\big(0,\epsilon- \|f(x_i)-f(x_j)\| \big)
\]

第一项代表,如果是同类别样本,则希望最小化它们 embedding 之间的距离;第二项代表,如果是不同类样本,则希望最大化 embedding 距离,但不要超过 ε,ε 是超参数,表示不同类之间的距离下限。

Triplet Loss 三元组损失(FaceNet ,Schroff et al. 2015) :

\[L_\text{triplet}(x,x^+,x^-) = \sum_{x\in X} \max\big(
0, \|f(x)-f(x^+)\| - \|f(x)-f(x^+)\| + \epsilon \big)
\]

其中,x 是 anchor,x+ 是正样本,x- 是负样本。我们希望 x 靠近 x+、远离 x-。可以理解为,我们希望最大化 \(\|f(x)-f(x^+)\| - \|f(x)-f(x^+)\| - \epsilon\) ,即,anchor 离负样本的距离应该大于 anchor 离正样本的距离,距离差超过一个超参数 margin ε。

02. CURL: Contrastive Unsupervised Representations for Reinforcement Learning

curl 也应用了这种 maximize [exp / Σ exp] 的形式,它的 loss function 是:

\[L_q=\log\frac{\exp⁡(q^TWk_+)}{\exp⁡(q^TWk_+) + \sum_{i=0}^{K−1}\exp⁡(q^TWk_i)}
\]

其中,q 是 query,貌似也可理解为 anchor,k 是 key,k+ 是正样本,ki 是负样本。anchor 和正样本 貌似都是图像裁剪得到的。

key encoder 的参数是 query encoder 的参数的 moving average,\(\theta_k=m\theta_k+(1-m)\theta_q\) 。

HIM 中,curl 是一个 baseline,HIM curl 的正样本是 adding gaussian perturbation ∼ N (µ = 0.0, σ = 0.1) 得到的。

03. Representation Matters: Offline Pretraining for Sequential Decision Making

做了很多 RL 相关的 representation learning 的 review 和技术比较,比较了各种实现在 imitation learning、offline RL 和 offline 2 online RL 上的效果。

arxiv:https://arxiv.org/pdf/2102.05815

Contrastive Learning 对比学习 | RL 学 representation 时的对比学习的更多相关文章

  1. ICLR2021对比学习(Contrastive Learning)NLP领域论文进展梳理

    本文首发于微信公众号「对白的算法屋」,来一起学AI叭 大家好,卷王们and懂王们好,我是对白. 本次我挑选了ICLR2021中NLP领域下的六篇文章进行解读,包含了文本生成.自然语言理解.预训练语言模 ...

  2. 论文解读(S^3-CL)《Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learning》

    论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...

  3. 迁移学习(PCL)《PCL: Proxy-based Contrastive Learning for Domain Generalization》

    论文信息 论文标题:PCL: Proxy-based Contrastive Learning for Domain Generalization论文作者:论文来源:论文地址:download 论文代 ...

  4. 论文解读(MERIT)《Multi-Scale Contrastive Siamese Networks for Self-Supervised Graph Representation Learning》

    论文信息 论文标题:Multi-Scale Contrastive Siamese Networks for Self-Supervised Graph Representation Learning ...

  5. 迁移学习(DCCL)《Domain Confused Contrastive Learning for Unsupervised Domain Adaptation》

    论文信息 论文标题:Domain Confused Contrastive Learning for Unsupervised Domain Adaptation论文作者:Quanyu Long, T ...

  6. 迁移学习(CLDA)《CLDA: Contrastive Learning for Semi-Supervised Domain Adaptation》

    论文信息 论文标题:CLDA: Contrastive Learning for Semi-Supervised Domain Adaptation论文作者:Ankit Singh论文来源:NeurI ...

  7. 论文解读(CDCL)《Cross-domain Contrastive Learning for Unsupervised Domain Adaptation》

    论文信息 论文标题:Cross-domain Contrastive Learning for Unsupervised Domain Adaptation论文作者:Rui Wang, Zuxuan ...

  8. Remote Sensing Images Semantic Segmentation with General Remote Sensing Vision Model via a Self-Supervised Contrastive Learning Method

    论文阅读: Remote Sensing Images Semantic Segmentation with General Remote Sensing Vision Model via a Sel ...

  9. 论文解读(MLGCL)《Multi-Level Graph Contrastive Learning》

    论文信息 论文标题:Structural and Semantic Contrastive Learning for Self-supervised Node Representation Learn ...

  10. 谣言检测(GACL)《Rumor Detection on Social Media with Graph Adversarial Contrastive Learning》

    论文信息 论文标题:Rumor Detection on Social Media with Graph AdversarialContrastive Learning论文作者:Tiening Sun ...

随机推荐

  1. 数据结构 - 关键路径(AOE)

    数据结构 - 关键路径求解

  2. 支付宝携手HarmonyOS SDK打造高效便捷的扫码支付体验

    背景 在日常的购物转账.生活缴费等在线支付中,用户在正式拉起支付界面前,均需要至少经历一次"识别"+两次"寻找",即识别归属应用.寻找应用.寻找扫码入口,才能完 ...

  3. CSS & JS Effect – 用 wheel 模拟 scroll

    前言 在 用 JavaScript 实现 position sticky 文章中,我提到了用 wheel 来模拟 scroll 效果. 这篇来说说具体怎么实现,挺简单的哦. Preparation t ...

  4. Figma 学习笔记 – Auto Layout

    用途 Auto Layout 有点像 CSS 的 Flex, 它还带有 responsive 的概念.使用它以后可以替代掉不少 constraints 的写法. 用法 一个 parent 抱着多个 c ...

  5. 2024csps初赛记

    对于此次初赛,教训有不少,有一些差点把自己整死. 第一点,铅笔只能用2B,不要尝试使用HB 2nd:一定要带涂卡笔和橡皮,不然就算借别人用了也会发现橡皮还不如手擦的干净(可能因为这个原因我都要丢几分) ...

  6. vector<char>转string的方法

    要将 std::vector<char> 转换为 std::string,可以通过 std::string 的构造函数直接从 vector 中构建字符串. 假设 std::vector&l ...

  7. Android Studio自带Profiler工具内存泄露分析步骤

    1.运行需要检测内存泄露的程序 这里以"com.example.opengltest"程序为例. 2.点击Profiler按钮 3.点击SESIONS "+"号 ...

  8. Java日期时间API系列23-----Jdk8中java.time包中的新的日期时间API类,获取准确开始时间00:00:00,获取准确结束时间23:59:59等

    有时候,往往需要统计某个时间区间的销量等问题,这就需要准确的起始时间,获取准确开始时间00:00:00,获取准确结束时间23:59:59.下面增加了一一些方法,获取当天起始时间,昨天起始时间,当前月第 ...

  9. Blazor Hybrid 实战体验:那些你可能没预料到的坑没预料到的坑

    前言 昨天写了一篇介绍 Blazor Hybrid 技术的文章,但限于篇幅,一些问题未能深入探讨.今天,我想继续记录使用 Blazor Hybrid 过程中遇到的几个问题,以及这个技术目前的一些局限性 ...

  10. kotlin类与对象——>委托、委托属性

    1.委托 1.1 委托的实现 委托模式已经证明是实现继承的一个很好的替代方式,而 Kotlin 可以零样板代码地原生支持它. Derived 类可以通过将其所有公有成员都委托给指定对象来实现一个接口 ...