CLIP 和 SIGLIP 的核心区别在于损失函数的设计:CLIP 使用基于 softmax 的对比损失(InfoNCE),强制正样本在全局对比中压倒所有负样本,计算成本高且受限于负样本数量;SIGLIP 改用基于 sigmoid 的二元分类损失,独立判断每个样本对的匹配概率,无需全局归一化,计算更高效、内存占用低,尤其适合超大规模负采样(如百万级)和多标签场景。简言之,CLIP 强调“最优匹配”,适合小规模精准检索;SIGLIP 侧重“灵活匹配”,更适合开放域、大规模数据下的高效训练。

CLIP(Softmax + 对比损失)

        CLIP 使用 对称对比学习损失(InfoNCE loss),通过 softmax 计算概率分布,强制正样本对的相似度远高于所有负样本对。CLIP的损失函数为

 其中,

为图像到文本的损失

为文本到图像的损失

 为什么使用两种损失:

增强模型的双向对齐能力

  • 单一损失的局限性:如果仅用 I→T 损失(例如仅让图像匹配正确文本),模型可能忽略反向的文本特征优化(如文本编码器未充分学习区分图像)。

  • 对称损失的作用

    • I→T 损失:强制图像特征靠近对应文本特征。

    • T→I 损失:强制文本特征靠近对应图像特征。

    • 双向约束 确保视觉和语言特征在共享嵌入空间中全面对齐。

避免模态偏差(Modality Bias)

  • 问题:若仅用单向损失,模型可能偏向某一模态(例如图像编码器主导,文本编码器弱化),导致跨模态检索时性能不均衡。

  • 对称损失的平衡性

    • 例如,在图文搜索中,用户可能输入文本搜图(T→I),也可能上传图搜文(I→T),双向训练保证两种任务均表现良好。

SigLIP

        SIGLIP 将图文匹配视为 二元分类问题,采用成对Sigmoid损失,允许模型独立地对每个图像-文本对进行操作,而无需对批次中的所有对进行全局查看,独立判断每个图像-文本对是否匹配。损失函数为

其中,

代表图像与文本匹配使用sigmod函数

CLIP 的损失函数基于 softmax + 对比损失(InfoNCE),其计算效率受限于以下问题:

(1) 分母的全局求和:softmax 的分母需要对所有负样本的指数项求和,损失需要一个全局归一化因子(突出显示的分母),这会引入二次内存复杂性。

(2) 梯度计算的依赖性:softmax 的梯度依赖于所有样本的 logits,导致反向传播时必须维护整个相似度矩阵。

(3) 内存消耗高:存储所有负样本的 logits 和中间结果(如 esjesj​)需要大量 GPU 内存,限制 batch size。

SIGLIP 使用 sigmoid + 二元交叉熵损失,其优势在于:

(1) 独立计算,无需全局归一化:Sigmoid 对每个 logit 独立计算,不需要计算所有样本的和,每个样本的处理是独立的。

(2) 损失函数的分解性:二元交叉熵损失对每个样本单独计算,仅依赖当前样本的 logit 和标签,无需其他样本参与。

(3) 内存友好:只需存储当前样本的 logit 和标签,每个图像-文本对(正或负)都单独评估,无需维护全局归一化相似度矩阵。适合分布式训练,可轻松扩展到超大规模负采样(如百万级)。

总结

  • CLIP

    • 使用 softmax + 对比损失,强调 全局最优匹配

    • 适合小规模负样本(如 batch size=512),但对超参数敏感。

  • SIGLIP

    • 使用 sigmoid + 二元分类损失,独立判断每个样本。

    • 优势

      1. 计算高效(适合超大规模负采样,如 1M)。

      2. 梯度稳定(不受负样本数量影响)。

      3. 支持多标签(如一张图对应多个描述)。

      4. 训练更鲁棒(对超参数不敏感)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/916048.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/916048.shtml
英文地址,请注明出处:http://en.pswp.cn/news/916048.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移动管家手机控车便捷性如何

移动管家4G手机控车-全面升级一键启动、无钥匙进入、手机启动、手机开关锁、手机开尾箱、手机寻车、车辆诊断、GPS北斗定位、电子围栏、车辆授权、车辆防盗抢、胎压检测、预约启动、车窗控制、车况提醒等功;移动管家手机控车系统(以“移动管家控车APP”为…

MySQL 8.4.4详细下载安装配置

1、下载mysql8.4.4文件,取zip文件 mysql8.4.4下载路径 MySQL 5.7.31详细下载安装配置 2、配置环境变量 1.系统—>高级系统设置—>环境变量—>系统变量 在系统变量中点击新建,变量名为量名为:MYSQL_HOME,添加你的mys…

在 Linux 上安装 `pgvector`(这是一个 PostgreSQL 的向量类型扩展,常用于处理嵌入向量,便于进行向量相似度搜索)

全文 4000 字,配图配码,已在多家企业落地验证。阅读完如有收获,文末投票告诉我你最关注的方向,我会在下一篇文章里继续深入。 0. pgvector 简介 pgvector 是一款 PostgreSQL 原生向量数据类型扩展,核心能力&#xff1…

【项目实战】——深度学习.全连接神经网络

目录 1.使用全连接网络训练和验证MNIST数据集 2.使用全连接网络训练和验证CIFAR10数据集 1.使用全连接网络训练和验证MNIST数据集 import torch from torch import nn from torchvision import datasets, transforms from torch.utils.data import DataLoader from torch im…

嵌入式学习的第三十四天-进程间通信-TCP

一、TCPTCP : 传输控制协议 传输层1. TCP特点(1).面向连接,避免部分数据丢失 (2).安全、可靠 (3).面向字节流 (4).占用资源开销大2.TCP安全可靠机制三次握手:指建立tcp连接时,需要客户端和服务端总共发送三次报文确认连接。确保双方均已做好 收发…

【爬虫】06 - 自动化爬虫selenium

自动化爬虫selenium 文章目录自动化爬虫selenium一:Selenium简介1:什么是selenium2:安装准备二:元素定位1:id 定位2:name 定位3:class 定位4:tag 定位5:xpath 定位(最常用…

2025年中国移动鸿鹄大数据实训营(大数据方向)kafka讲解及实践-第2次作业指导

书接上回,第二次作业比较容易解决,我问了ai,让他对我进行指导,按照它提供的步骤,我完成了本次实验,接下来我会标注出需要注意的细节,指导大家完成此次任务。 🎯 一、作业目标 ✔️…

三十七、【高级特性篇】定时任务:基于 APScheduler 实现测试计划的灵活调度

三十七、【高级特性篇】定时任务:基于 APScheduler 实现测试计划的灵活调度 前言 准备工作 第一部分:后端实现 - `APScheduler` 集成与任务调度 1. 安装 `django-apscheduler` 2. 配置 `django-apscheduler` 3. 数据库迁移 4. 创建调度触发函数 5. 启动 APScheduler 调度器 6…

RabbitMQ--消息顺序性

看本章之前强烈建议先去看博主的这篇博客 RabbitMQ--消费端单线程与多线程-CSDN博客 一、消息顺序性概念 消息顺序性是指消息在生产者发送的顺序和消费者接收处理的顺序保持一致。 二、RabbitMQ 顺序性保证机制 情况顺序保证情况备注单队列,单消费者消息严格按发送顺…

.net core接收对方传递的body体里的json并反序列化

1、首先我在通用程序里有一个可以接收对象型和数组型json串的反序列化方法public static async Task<Dictionary<string, string>> AllParameters(this HttpRequest request){Dictionary<string, string> parameters QueryParameters(request);request.Enab…

(10)机器学习小白入门 YOLOv:YOLOv8-cls 模型评估实操

YOLOv8-cls 模型评估实操 (1)机器学习小白入门YOLOv &#xff1a;从概念到实践 (2)机器学习小白入门 YOLOv&#xff1a;从模块优化到工程部署 (3)机器学习小白入门 YOLOv&#xff1a; 解锁图片分类新技能 (4)机器学习小白入门YOLOv &#xff1a;图片标注实操手册 (5)机器学习小…

Vue 脚手架基础特性

一、ref属性1.被用来给元素或子组件注册引用信息&#xff08;id的替代者&#xff09;2.应用在html标签上获取的是真实DOM元素&#xff0c;用在组件标签上是组件实例对象3.使用方式&#xff1a;(1).打标识&#xff1a;<h1 ref"xxx">...</h1> 或 <Schoo…

Ubuntu安装k8s集群入门实践-v1.31

准备3台虚拟机 在自己电脑上使用virtualbox 开了3台1核2G的Ubuntu虚拟机&#xff0c;你可以先安装好一台&#xff0c;安装第一台的时候配置临时调高到2核4G&#xff0c;安装速度会快很多&#xff0c;安装完通过如下命令关闭桌面&#xff0c;能够省内存占用&#xff0c;后面我们…

Word Press富文本控件的保存

新建富文本编辑器&#xff0c;并编写save方法如下&#xff1a; edit方法&#xff1a; export default function Edit({ attributes, setAttributes }) {return (<><div { ...useBlockProps() }><RichTexttagNameponChange{ (value) > setAttributes({ noteCo…

【编程趣味游戏】:基于分支循环语句的猜数字、关机程序

&#x1f31f;菜鸟主页&#xff1a;晨非辰的主页 &#x1f440;学习专栏&#xff1a;《C语言学习》 &#x1f4aa;学习阶段&#xff1a;C语言方向初学者 ⏳名言欣赏&#xff1a;"编程的核心是实践&#xff0c;而非空谈" 目录 1. 游戏1--猜数字 1.1 rand函数 1.2 sr…

UE5 UI 控件切换器

文章目录分类作用属性分类 面板 作用 可以根据索引切换要显示哪个子UI&#xff0c;可以拥有多个子物体&#xff0c;但是任何时间只能显示一个 属性 在这里指定要显示的UI的索引

scikit-learn 包

文章目录scikit-learn 包核心功能模块案例其他用法**常用功能详解****(1) 分类任务示例&#xff08;SVM&#xff09;****(2) 回归任务示例&#xff08;线性回归&#xff09;****(3) 聚类任务示例&#xff08;K-Means&#xff09;****(4) 特征工程&#xff08;PCA降维&#xff0…

Excel 将数据导入到SQLServer数据库

一般系统上线前期都会导入期初数据&#xff0c;业务人员一般要求你提供一个Excel模板&#xff0c;业务人员根据要求整理数据。SQLServer管理工具是支持批量导入数据的&#xff0c;所以我们可以使用该工具导入期初。Excel格式 第一行为字段1、连接登入的数据库并且选中你需要导入…

剪枝和N皇后在后端项目中的应用

剪枝算法&#xff08;Pruning Algorithm&#xff09; 生活比喻&#xff1a;就像修剪树枝一样&#xff0c;把那些明显不会结果的枝条提前剪掉&#xff0c;节省养分。 在后端项目中的应用场景&#xff1a; 搜索优化&#xff1a;在商品搜索中&#xff0c;如果某个分类下没有符合条…

cocos 2d游戏中多边形碰撞器会触发多次,怎么解决

子弹打到敌机 一发子弹击中&#xff0c;碰撞回调多次执行 我碰撞组件原本是多边形碰撞组件 PolygonCollider2D&#xff0c;我改成盒碰撞组件BoxCollider2D 就好了 用前端的节流方式。或者loading处理逻辑。我测试过了&#xff0c;是可以 本来就是多次啊,设计上貌似就是这样的…