当前位置: 首页 > article >正文

论文笔记:A Simple Framework for Contrastive Learning of Visual Representations

0 简介

论文:A Simple Framework for Contrastive Learning of Visual Representations
代码:https://github.com/google-research/simclr
发表:2020年发表在ICML会议上

1 核心思想

如何构建对比学习的比较对象?本文按如下方式进行构建:

  • 数据增强:输入 x x x,增强为 x ~ i \tilde{x}_i x~i( t ∼ T t \sim \mathcal{T} tT)和 x ~ j \tilde{x}_j x~j( t ′ ∼ T t^\prime \sim \mathcal{T} tT),获得两个相关的视角,这两个相关的视角经过代表学习后要相近;
  • 和其他图片增强的视角进行对比: x x x的视角和其他图片增强得到的视角距离越远越好。
    在这里插入图片描述

2 具体算法

在这里插入图片描述

2.1 增强图片的方式

  • 随机裁剪(random cropping);
  • 随机颜色失真(random color distortions);
  • 随机高斯模糊(random Gaussian blur)。
    在这里插入图片描述
    实矩形是原始图像,虚线矩形是随机裁剪。通过随机裁剪图像,我们采样对比预测任务,包括全局到局部视图(B→A)或相邻视图(D→C)预测。
    在这里插入图片描述

2.2 比较学习

h i = f ( x ~ i ) = ResNet ⁡ ( x ~ i ) \boldsymbol{h}_{i}=f\left(\tilde{\boldsymbol{x}}_{i}\right)=\operatorname{ResNet}\left(\tilde{\boldsymbol{x}}_{i}\right) hi=f(x~i)=ResNet(x~i)
其中 h i ∈ R d \boldsymbol{h}_{i} \in \mathbb{R}^d hiRd
z i = g ( h i ) = W ( 2 ) σ ( W ( 1 ) h i ) \boldsymbol{z}_{i}=g\left(\boldsymbol{h}_{i}\right)=W^{(2)} \sigma\left(W^{(1)} \boldsymbol{h}_{i}\right) zi=g(hi)=W(2)σ(W(1)hi)
其中 σ \sigma σ就是一个ReLU非线性操作。
正样本组合 x ~ i \tilde{x}_i x~i x ~ j \tilde{x}_j x~j对比Loss:
ℓ i , j = − log ⁡ exp ⁡ ( sim ⁡ ( z i , z j ) / τ ) ∑ k = 1 2 N 1 [ k ≠ i ] exp ⁡ ( sim ⁡ ( z i , z k ) / τ ) \ell_{i, j}=-\log \frac{\exp \left(\operatorname{sim}\left(\boldsymbol{z}_i, \boldsymbol{z}_j\right) / \tau\right)}{\sum_{k=1}^{2 N} \mathbb{1}_{[k \neq i]} \exp \left(\operatorname{sim}\left(\boldsymbol{z}_i, \boldsymbol{z}_k\right) / \tau\right)} i,j=logk=12N1[k=i]exp(sim(zi,zk)/τ)exp(sim(zi,zj)/τ)
其中 1 [ k ≠ i ] ∈ { 0 , 1 } \mathbb{1}_{[k \neq i]} \in \{0, 1\} 1[k=i]{0,1},当 k ≠ i k \neq i k=i等于1, k = = i k == i k==i等于0, τ \tau τ为温度系数。
负样本 u u u v v v对比Loss:
在这里插入图片描述


http://www.kler.cn/a/14825.html

相关文章:

  • 第5章 if语句
  • C#使用异步的几种方法对比示例
  • 11. 图的入门
  • Web Service(三)—— SOAP学习
  • Linux进程层次分析
  • 【SWAT水文模型】ArcSWAT输入准备
  • 学会SpringBoot的第一天(超详细)
  • 案例01-tlias智能学习辅助系统02-文件上传
  • 基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)
  • 详解为什么C++ 虚拟成员函数模板不被允许
  • mybatis配置文件详解
  • 记录-有意思的气泡 Loading 效果
  • Redis入门学习笔记【二】Redis缓存
  • OSCP-Sirol(docker容器到宿主机)
  • 10 【Sass语法介绍-继承】
  • 驾考新规记分口诀,1分、3分、6分、9分、12分口诀帮你记
  • 数据库原理容易出错的点
  • 计算多列迭代次数的一种平均列近似方法
  • vue3+vite3+typescript使用wangEditor编辑器
  • 新项目如何选择vue和react