对比学习必知要点

每天给你送来NLP技术干货!

干货

作者:炼丹小生

来自:炼丹笔记

关于对比学习,除了那些优化目标必须知道,还必须知道以下要点.

7b71230bf8e15b0dc1523765a3e01e16.png

数据增强

给定训练样本,我们需要用数据增强来创建带有噪声版本的数据,以作为正样本反馈到损失函数中。正确的数据增强设置对于学习好的泛化性强的embedding至关重要。它在不修改语义的情况下,将非本质变化引入示例中,从而激发模型学习的本质表达。例如,在SimCLR中的实验表明,随机裁剪和随机颜色失真的组合对于学习图像视觉表示的良好性能至关重要。

5d7caec1dd5e977d2df37c018572b488.png

更大的Batch Size

在很多对比学习方法中,使用一个较大的batch size至关重要,例如SimCLR和CLIP.特别是样本依赖于Batch内负采样.仅当batch size足够大才有足够的负样本,使得损失函数充分收敛,对模型而言才能充分的学习更好的表达来区分各种各样的样本.

07b8ba5c27311ce678068e18d58d1e10.png

困难的负样本挖掘

hard负样本指的是与anchor样本label不同,但是特征与anchor十分接近.在有标签的数据集上,找到hard负样本其实还挺容易的.比方说在学习句子表达上,NLI数据集中,句子对中标签是"contradiction"就是hard的负样本(SimCSE),再例如DPR中,BM25最接近但标签不同的样本就是hard负样本.

然而在纯无监督环境下,找到hard负样本是很棘手的.增加训练的batch size或mermory bank会隐式引入更多hard负样本,但这样做会给内存带来严重负担。

这里解释下memory bank,训练过程中维护一个Embedding库,即Memory Bank, 每次训练完一个batch就把里面的embedding塞到这个库里,下次训练从这个库中随机抽取部分出来做负样本.由于采样问题,不一定能保证库里面emb的一致性.

Moco就提出Momentum Contrast的方法解决Memory Bank的缺点,该方法使用一个队列来存储和采样 negative 样本,队列中存储多个近期用于训练的 batch 的特征向量。队列容量要远小于 Memory Bank,但可以远大于 batch 的容量,如下图所示. 这里momentum encoder可以和encoder完全一致参与梯度下降,也可以是对query encoder的平滑拷贝.

ce169d95d652b0f4ad19a19250e888d6.png

《Debiased Contrastive Learning》这篇论文研究了对比学习中的采样偏差问题,提出了一个纠偏的loss.在无监督的环境中,由于我们不知道真实的标签,我们可能会意外地采样False Negative样本(从下图左图可以看到,给一只狗的图片采样了另一只狗做负样本)。抽样偏差可能会导致学习的效果显著下降。

b9f925e1040c51ad5e7d6c12ea456fe1.png

纠偏后的loss如下:

2034e31e2697778948545e7fefc659a4.png

2aa2b8ad58f01c0fc7383f90c08edb22.png

我们可以看到纠偏后用t-SNE可视化后,不同类直接划分的更加明确了.

e3dccf7a2346a4bd9d2dfa0c7451e1e4.png

452adf0c226dbf1e70a56f493e21b1d3.png

参考文献


1、Debiased Contrastive Learning

https://arxiv.org/pdf/2007.00224.pdf

2、Momentum Contrast for Unsupervised Visual Representation Learning

https://arxiv.org/pdf/1911.05722.pdf


下载一:中文版!学习TensorFlow、PyTorch、机器学习、深度学习和数据结构五件套!  后台回复【五件套】
下载二:南大模式识别PPT  后台回复【南大模式识别】

投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

67f169c51f0cf5831e221e818bbb3762.png

记得备注呦

整理不易,还望给个在看!
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值