自监督|「NNCLR」阅读笔记

  恰好我最近在做用户点击行为序列有关的实验,主要方向也是对比学习,想探索图文多模态的 embedding 的语义性。如今读到 NNCLR 这篇文章时,我已经不再是几个月前对比学习自监督一无所知的状态,学会在论文之间纵向、横向对比。本文 NNCLR 主要和 SimCLR 模型对比,实验部分细节我之后结合实验后的理解补上。

Intro

  文章是 21年10月发布的,提出通过利用物品之间的相似性来提升自监督的表示力。举个简单例子如,渡渡鸟🦤,更像一只鸡、鸭,与老虎、大象不相似。

论文引言部分介绍两块:前人的自监督思想、对比学习正样本是如何构造的

  • 前人的自监督:尝试找到渡渡鸟与训练集其他物品的不同,本文的思想来自于同时再让模型找到图片相似性的特征,能更好的学习向量特征表示。

  • 前人的对比学习正样本构造:一张图片通过不同的数据增强得到的两张图片视为一对,是正样本,其他 N-1 张图片数据增强得到的 2N - 2 张图片视为负样本。本文类似,不过在正例对的一张图上使用了 NN 找到最相似的图片向量表示,另一正例不变。参考下结构图左。

(💡 论文 idea 缘由:不论是随机裁切、颜色变化等缺点是不能提供相同物品的不同视角,eg 车头正面、车身侧面;也无法提供同一类物品的相似图片。总之,想突破数据增强的局限性)

论文的主要贡献有以下四点:

  • 提出 NNCLR,能超越单例正样本的局限性

  • 提高对比学习的准确率 ∼ 3.8%,在 imageNet 线性分类和用有标签初始化的半监督(finetune) 达 SOTA

  • 在自监督甚至有监督(learned via supervised ImageNet pre-training) 达 SOTA

  • 有 NN(nearest neighbor)后能简化对数据增强的依赖(SimCLR 依赖数据增强的复杂组合),只需要裁剪 ImageNet 就能达到 73.3%
    左图是 NNCLR 结构,右图是 SimCLR 结构
    左图是 NNCLR 结构,右图是 SimCLR 结构

Approach

support set Q Q Q

  support set 是本文最核心的贡献点,主要作用体现在存储与 z i z_i zi 最近邻的向量 embedding,用于构造正样本;
  更新方式是按队列形式先进先出,每一次迭代训练结束后,取训练步中的 bs = n 个 embedding,放在队列的最后并抛弃前 n 个 embedding;同时 support set 非常大,能近似估计整个数据集在向量空间中的 embedding. (意思就是 support set 足够大, queue size: 98304, 大到能为每一张图片都找到相似 emb)

损失函数 NNCLR loss vs. SimCLR loss

请添加图片描述
  左图是 NNCLR 的损失函数,右图是 SimCLR 的损失函数 InfoNCE。不论是 NNCLR 还是 InfoNCE,在计算 cross entropy 之前都要做 L2-norm。此外,公式都是针对一张图片的损失函数,若要计算一个 minibatch 中 N 张图片的总损失函数:求和再求平均。
  NNCLR 的损失函数与 SimCLR 的类似,是一张图片 aug 后的两张图片,在一张 support set 中找到最近邻(也就是公式(3) 中的 NN ( z i , Q ) (z_i, Q) (zi,Q)),另一张保留(也就是公式(3) 中的 z i + z_i^+ zi+ )计算 InfoNCE. 具体流程参考下图请添加图片描述

Experiment

  • 训练:

数据集:ImageNet;1000 epoch;warm up epoch: 10

LARS optimizer; weight decay 10−6

τ 0.1; queue size 98304; lr 0.3

  • 线性分类:

数据集:ImageNet 线性分类;frozen 2048-d;

LARS optimizer; Nesterov momentum 0.9

batch size 4096; lr 1

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值