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

论文速读|SigLIP:Sigmoid Loss for Language Image Pre-Training.ICCV23

论文地址:https://arxiv.org/abs/2303.15343v4
代码地址:https://github.com/google-research/big_vision
bib引用:

@misc{zhai2023sigmoidlosslanguageimage,title={Sigmoid Loss for Language Image Pre-Training}, author={Xiaohua Zhai and Basil Mustafa and Alexander Kolesnikov and Lucas Beyer},year={2023},eprint={2303.15343},archivePrefix={arXiv},primaryClass={cs.CV},url={https://arxiv.org/abs/2303.15343}, 
}

InShort

提出用于语言 - 图像预训练的Sigmoid损失函数(SigLIP),该函数相比传统Softmax损失函数,在内存效率、训练效率和小批量训练性能上具有优势。研究发现32k的批量大小在对比学习中接近最优,为语言 - 图像预训练研究提供了新方向。

  1. 研究背景:基于网络图像 - 文本对的对比预训练成为获取通用计算机视觉骨干网络的常用方法,标准做法是使用基于softmax的对比损失。本文提出用sigmoid损失替代,其计算更简单、内存效率更高,还能解耦批量大小与任务定义。
  2. 相关工作
    • 对比学习中的sigmoid损失:此前有工作在无监督降维任务中提出类似sigmoid损失,但在对比图像 - 文本学习中,多数工作依赖基于softmax的InfoNCE损失。在监督分类中,sigmoid损失比softmax损失更有效、更稳健。
    • 对比语言 - 图像预训练:CLIP和ALIGN应用softmax对比学习,使对比语言 - 图像预训练受到关注,后续研究将其应用于多种任务。此外,还有生成式语言 - 图像预训练等多种方法。
    • 高效语言 - 图像预训练:LiT、FLIP等尝试提高预训练效率,但各有局限,如LiT需预训练骨干网络,FLIP牺牲质量。BASIC和LAION虽扩大批量大小,但也存在不足。
  3. 方法
    • Softmax损失:通过对图像和文本嵌入进行归一化,最小化匹配对和不匹配对之间的差异,公式为 − 1 2 ∣ B ∣ ∑ i = 1 ∣ B ∣ ( l o g e t x i ⋅ y i ∑ j = 1 ∣ B ∣ e t x i ⋅ y j ⏞ i m a g e → t e x t s o t h a t + l o g e t x i ⋅ y i ∑ j = 1 ∣ B ∣ e t x j ⋅ y i ⏞ t e x t → i m a g e s o f t m a x ) -\frac{1}{2|\mathcal{B}|} \sum_{i=1}^{|\mathcal{B}|}(\overbrace{log \frac{e^{t x_{i} \cdot y_{i}}}{\sum_{j=1}^{|\mathcal{B}|} e^{t x_{i} \cdot y_{j}}}}^{image \to text sothat }+\overbrace{log \frac{e^{t x_{i} \cdot y_{i}}}{\sum_{j=1}^{|\mathcal{B}|} e^{t x_{j} \cdot y_{i}}}}^{text \to image softmax }) 2∣B1i=1B(logj=1Betxiyjetxiyi imagetextsothat+logj=1Betxjyietxiyi textimagesoftmax)
    • Sigmoid损失:将学习问题转化为标准的二元分类,对每个图像 - 文本对独立处理,公式为 − 1 ∣ B ∣ ∑ i = 1 ∣ B ∣ ∑ j = 1 ∣ B ∣ l o g 1 1 + e z i j ( − t x i ⋅ y j + b ) ⏟ L i j -\frac{1}{|\mathcal{B}|} \sum_{i=1}^{|\mathcal{B}|} \sum_{j=1}^{|\mathcal{B}|} \underbrace{log \frac{1}{1+e^{z_{i j}\left(-t x_{i} \cdot y_{j}+b\right)}}}_{\mathcal{L}_{i j}} B1i=1Bj=1BLij log1+ezij(txiyj+b)1 ,并引入可学习偏差项b缓解正负样本不平衡问题。
    • 高效“分块”实现:sigmoid损失采用分块计算方式,降低内存成本,提高计算效率,使大批量训练更可行。
  4. 实验结果
    • SigLiT:在小批量(小于16k)训练时,sigmoid损失显著优于softmax损失;批量增大时,两者差距缩小。SigLiT在4个TPUv4芯片上训练1天,ImageNet零样本准确率可达79.7%;用ViT - g/14模型训练2天,准确率可提升至84.5%。
    • SigLIP:在小于32k批量下,SigLIP性能优于CLIP(WebLI)基线。SigLIP在16个TPUv4芯片上训练3天,零样本准确率可达71%;从 scratch训练时,32个TPUv4芯片训练2天,准确率为72.1% ,训练成本显著低于CLIP。
    • mSigLIP:多语言预训练中,32k批量已足够,更大批量会降低性能。mSigLIP在XM3600跨模态检索任务上达到新的最先进水平,Base模型的图像检索召回率@1为42.6%,文本检索召回率@1为54.1%。
    • 其他实验:研究发现减小Adam和AdaFactor中的β2可稳定大批量训练;sigmoid损失中的正负样本比例不平衡问题影响不大,但有效挖掘负样本可能有益;引入偏差项可提升性能;SigLIP对标签噪声更具鲁棒性。
  5. 研究结论:sigmoid损失在小批量训练时性能优于softmax损失,内存效率更高,32k批量接近最优。研究为有限资源下的语言 - 图像预训练提供了参考,推动该领域进一步发展。
http://www.lryc.cn/news/526081.html

相关文章:

  • 深度学习笔记——循环神经网络之LSTM
  • 算法整理:2-opt求解旅行商(Python代码)
  • 状态模式
  • RoHS 简介
  • 【Vim Masterclass 笔记26】S11L46:Vim 插件的安装、使用与日常管理
  • 深度学习原理与Pytorch实战
  • ELK环境搭建
  • 基于Springboot + vue实现的民俗网
  • 第24篇 基于ARM A9处理器用汇编语言实现中断<六>
  • 【数据结构】_不带头非循环单向链表
  • golang 使用双向链表作为container/heap的载体
  • C#集合操作优化:高效实现批量添加与删除
  • 142.WEB渗透测试-信息收集-小程序、app(13)
  • 24.日常算法
  • 分布式理解
  • wordpress调用指定ID页面的链接
  • 单值二叉树(C语言详解版)
  • python学opencv|读取图像(四十二)使用cv2.add()函数实现多图像叠加
  • 速通Docker === Docker Compose
  • LMI Gocator GO_SDK VS2019引用配置
  • 技术之翼,创作之心
  • WebSocket异步导出
  • OS2.【Linux】基本命令入门(1)
  • 【二叉树】4. 判断一颗二叉树是否是平衡二叉树。5. 对称二叉树。6. 二叉树的构建及遍历 7. 二叉树的分层遍历 。
  • OS Copilot功能测评:智能助手的炫彩魔法
  • MFC结构体数据文件读写实例
  • 音频 PCM 格式 - raw data
  • 关于deepin上运行Qt开发的程序
  • css 如何将字体进行压扁,即水平缩放scaleX
  • C++AVL树(二)详解