度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客

度量学习DML之Triplet Loss_程大海的博客-CSDN博客

度量学习DML之Lifted Structure Loss_程大海的博客-CSDN博客

度量学习DML之Circle Loss_程大海的博客-CSDN博客

度量学习DML之Cross-Batch Memory_程大海的博客-CSDN博客

度量学习DML之MoCO_程大海的博客-CSDN博客

数据增强之SpecAugment_程大海的博客-CSDN博客

数据增强之MixUp_程大海的博客-CSDN博客


度量学习的目标:

  1. 相似的或者属于同一类的样本提取到的embedding向量之间具有更高的相似度,或者具有更小的空间距离
  2. 对于out-of samples的样本,也就是未见过的样本,希望也能提取到有效的embedding,也就是模型的泛化能力更好

MoCo(queue+encoder滑动平均更新)

论文:《Momentum Contrast for Unsupervised Visual Representation Learning》

参考:MoCo论文解读 - 知乎

参考:论文阅读笔记:MoCo - 知乎

作者把contrastive learning学习问题(也可以理解为metric learning问题)比作一个在字典中的数据查找问题。以人脸识别问题为例,首先要准备人脸图像底库,把人脸图像向量化embedding得到底库中人脸图像的embedding集合(字典),人脸识别的过程就是给定一张新的人脸图片,用这张新图片在embedding集合中进行匹配查找。自监督的Contrastive loss的计算公式如下:

从上述公式可以看到,在损失函数的计算过程中,强依赖于字典中的正负样本数量。在以往这类问题的模型训练方面,字典集合中的embedding通常来自于mini-batch中的样本,然后mini-batch中的样本相互之间进行匹配查找,这样的话就导致模型的性能受限于mini-batch的大小限制,增大mini-batch可以显著提升模型的性能。同时,mini-batch又受限于硬件资源的限制,不能设置的太大。如何在有限的硬件资源条件下,不增加模型训练的batch size,想办法来增加embedding匹配查找时的字典集合大小就成为至关重要的一步操作,上面讲到的Cross-Batch Memory方法也是从这个角度进行切入的。

从增大embedding字典大小的角度进行切入会遇到两个核心问题:

  1. 在不增大batch size的条件下如何增大字典集合的大小?
  2. 增大字典集合势必会引入其他迭代轮次的样本特征,如何保证字典集合中不同迭代轮次的样本特征之间具有可比较性,也就是如何保持不同迭代之间样本特征的比较一致性?

围绕上述两个问题,作者分别提出了对应的解决方案,对于第一个问题如何增大字典集合的大小,作者提出使用queue队列来存放embdding特征,队列的大小可以远远大于mini-batch的大小,队列中可以存放连续多个mini-batch中的样本特征,并且将当前mini-batch的特征入队列,最老的样本特征出队列。对于第二个问题如何保证连续的不同迭代轮次之间计算的样本特征之间具有一致的可比较性,作者提出了一种基于动量的滑动平均的encoder解决方案,通过在不同迭代之间的encoder进行动量滑动平均,得到具有“slowly progressing”的encoder,使得计算得到的字典中的不同迭代的特征之间具有可比性。

假设当前迭代encoder的网络为,参数为,momentum encoder的网络为,参数为,更新momentum encoder的参数如下,同时在误差反向传播中只更新当前迭代的参数

越大,momentum encoder模型更新的越平缓,队列queue中的特征之间的一致性就越高,可比较性也就越高。

度量学习DML之MoCO相关推荐

  1. 度量学习DML之Lifted Structure Loss

    度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客 度量学习DML之Triplet Loss_程大海的博客-CSDN博客 度量学习DML之Lifted Structu ...

  2. 度量学习DML之Circle Loss

    度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客 度量学习DML之Triplet Loss_程大海的博客-CSDN博客 度量学习DML之Lifted Structu ...

  3. 度量学习DML之Contrastive Loss及其变种

    度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客 度量学习DML之Triplet Loss_程大海的博客-CSDN博客 度量学习DML之Lifted Structu ...

  4. 度量学习DML之Triplet Loss

    度量学习DML之Contrastive Loss及其变种_程大海的博客-CSDN博客 度量学习DML之Triplet Loss_程大海的博客-CSDN博客 度量学习DML之Lifted Structu ...

  5. CVPR2018论文看点:基于度量学习分类与少镜头目标检测

    CVPR2018论文看点:基于度量学习分类与少镜头目标检测 简介 本文链接地址:https://arxiv.org/pdf/1806.04728.pdf 距离度量学习(DML)已成功地应用于目标分类, ...

  6. TripletsLoss不是解决距离的银色子弹,而是打开度量学习的大门钥匙

    TripletsLoss不是向量距离的银色子弹,而是打开度量学习的大门钥匙 前言 表征学习和度量学习 回顾度量学习loss损失函数 Triplet-loss之门后,还有哪些loss mining方法值 ...

  7. 【CVPR2022】语言引导与基于视觉的深度度量学习的集成

    来源:专知 本文为论文,建议阅读5分钟我们提出了一种视觉相似度学习的语言指导目标. 深度度量学习(Deep Metric Learning, DML)提出学习度量空间,将语义相似性编码为嵌入空间距离. ...

  8. Facebook爆锤深度度量学习:该领域13年来并无进展!网友:沧海横流,方显英雄本色...

    来源:AI科技评论 近日,Facebook AI和Cornell Tech的研究人员近期发表研究论文预览文稿,声称近十三年深度度量学习(deep metric learning) 领域的目前研究进展和 ...

  9. Metric Learning度量学习:**矩阵学习和图学习

    DML学习原文链接:http://blog.csdn.net/lzt1983/article/details/7884553 一篇metric learning(DML)的综述文章,对DML的意义.方 ...

最新文章

  1. [大数据之Spark]——Actions算子操作入门实例
  2. 阿里进军欧洲市场遇阻:仅凭复制中国模式难获成功
  3. Kafka:分布式消息队列的抽象模型
  4. 通过BI专题场景,深度剖析制造行业如何提高设备利用率?
  5. Flutter学习记录(一、Flutter环境搭建)
  6. 正经科普:12306能扛得住明星并发出轨级的流量吗?
  7. 2018/11/26
  8. jQuery mobile 之三
  9. shell之九九乘法表
  10. ios 横向滚轮效果_ios横向菜单+页面滑动
  11. 关于数据分析用到的统计学知识
  12. 去除右键菜单中图形属性、图形选项
  13. WhatsApp网页版(电脑版)使用教程
  14. python使用 Captcha 模块来生成验证码图片
  15. 手把手教你解决PL2303驱动在Win10无法使用
  16. WORD程序失去焦点再获得焦点后无法使用鼠标功能的解决办法(已解决)
  17. 元数据管理器中存在错误
  18. springcloudalibaba项目的搭建
  19. 玩转Tomcat高级篇
  20. linux ps查看完整时间,Linux ps 命令查看进程启动及运行时间

热门文章

  1. 怎么用python生成带二维码的照片_怎么制作二维码图片-Python 生成个性二维码
  2. keil问题总结(方便以后查找问题)
  3. 翻译程序、编译程序和解释程序的区别和联系
  4. linux如何卸载lightdm,什么是gdm3,kdm,lightdm?如何安装和删除它们?
  5. 哪种计算机支持刻录功能,哪种软件更适合刻录CD |用flac刻录CD的方法
  6. 建立“图书_读者”数据库及如下 3 个表,并输入实验数据,用 SQL 语句实现如下五个查询(opengauss)
  7. 2022年最新国产单端口1000M Ethernet PHY简介
  8. ardupilot 中关键坐标系
  9. 北大计算机考研822 911区别,北大考研成绩“上热搜”,4位神仙“打架”,旁人:倒吸一口气!...
  10. 游戏开发程序员可能会遇到的英文单词