视觉-语言模型-出发点CLIP--(精读论文)

news2025/3/10 16:51:52

阅读建议:配合这个源码分析阅读效果更加

研究背景和目的

介绍当前计算机视觉系统依赖固定类别标签训练的局限性,以及自然语言监督作为一种有潜力替代方式的研究现状。强调论文旨在探索从自然语言监督中学习可迁移视觉模型,实现零样本学习,提升模型通用性和灵活性。

研究方法

数据集

现有常用数据集,像 MS - COCO、Visual Genome 规模较小,YFCC100M 虽规模大但元数据质量参差不齐。为充分利用自然语言监督数据的优势,作者构建了 WIT 数据集。具体做法是,从互联网上的多种公开渠道收集数据,基于 50 万个查询来搜索(图像,文本)对。这些查询包括在英文维基百科中出现至少 100 次的单词、高频双词组合、特定搜索量以上的维基百科文章名称以及所有 WordNet 同义词集 。在收集时,对每个查询最多收集 20,000 对数据,以此平衡结果,最终得到约 4 亿对(图像,文本)数据的 WIT 数据集,其总词数与训练 GPT - 2 的 WebText 数据集相近。

模型训练策略

对比学习方法

CLIP 模型的训练核心是对比学习。给定一批 N 个(图像,文本)对,模型要学习预测批次中 N×N 种可能配对里实际出现的配对。通过联合训练图像编码器和文本编码器,最大化 N 个真实配对的图像和文本嵌入的余弦相似度,同时最小化 N² - N 个错误配对的相似度,优化对称交叉熵损失。这种方法源于深度度量学习中的多类 N - 对损失,经 InfoNCE 损失推广,在对比(文本,图像)表示学习中发挥重要作用。

解释:对于这 N 个(图像,文本)对,两两计算它们嵌入的余弦相似度,会得到一个 N×N 的相似度矩阵。矩阵对角线上的元素对应着真实配对的相似度,而其他元素则是错误配对的相似度。在训练时,希望对角线上元素(真实配对相似度)尽可能大,非对角线上元素(错误配对相似度)尽可能小。

对称交叉熵损失综合考虑了图像到文本和文本到图像两个方向的预测误差。具体计算时,对于每个图像,计算它与所有文本配对的预测概率(基于余弦相似度经 softmax 得到),与真实标签(只有真实配对的标签为 1,其余为 0)之间的交叉熵损失;同样,对于每个文本,也计算它与所有图像配对的预测概率和真实标签之间的交叉熵损失。将这两部分损失相加并求平均,得到最终的对称交叉熵损失

模型架构选择与调整(vit方案)

视频编码器(vit)

ViT 将输入图像分割成一系列固定大小的图像块(patch)。例如,把常见的 224×224 像素的图像,切成 14×14 个 16×16 像素的 patch。这些 patch 被线性映射为具有固定维度的向量,使其能够适配 Transformer 的输入要求。同时,为了保留图像中各部分的位置信息,会给这些向量添加位置编码,位置编码会随着训练一同优化,帮助模型理解图像中各部分的相对位置关系。

与文本编码器(transformer)

采用 Transformer 架构,并对其进行了特定修改。基础模型是 6300 万参数、12 层、512 维宽度、8 个注意力头的模型,对文本进行小写字节对编码(BPE),词汇表大小为 49152,最大序列长度限制为 76。将文本序列用 [SOS] 和 [EOS] 标记括起来,取 Transformer 最高层在 [EOS] 标记处的激活作为文本特征表示,经层归一化后线性投影到多模态嵌入空间

与文本编码器协同训练

在 CLIP 模型里,ViT 作为图像编码器与文本编码器(Transformer 架构)协同工作。将图像和文本分别输入到各自的编码器中,得到对应的嵌入向量。通过对比学习的方式,最大化匹配的图像 - 文本对之间的嵌入向量相似度,最小化不匹配对的相似度。例如,一张猫的图片和 “一只猫” 的文本描述,模型会学习让它们的嵌入向量在共享的特征空间中距离更近,而与 “一只狗” 这样不匹配的文本描述的嵌入向量距离更远,以此来学习图像和文本之间的关联。

prompt工程

prompt 工程是提升零样本性能的重要手段。由于标准图像分类数据集在标注时,对基于自然语言的零样本转移信息重视不足,导致 CLIP 在处理一些数据集时面临挑战。例如,许多数据集的标签选择较为随意,存在多义词问题,缺乏上下文信息,使得 CLIP 的文本编码器难以准确区分单词的含义。像 ImageNet 数据集中,“crane” 既表示 “建筑起重机”,也表示 “鹤”;在 Oxford-IIIT Pet 数据集中,“boxer” 既可以指 “拳击手”,也可以指 “拳师犬” 。

prompt 模板的使用:为解决这些问题,研究人员发现使用特定的 prompt 模板能有效提升 CLIP 的性能。默认的 “A photo of a {label}.” 模板,明确了文本是关于图像内容的描述,弥补了数据集中标签信息的不足,在 ImageNet 数据集上,仅使用该模板就使准确率提高了 1.3%。

prompt 工程与模型性能提升:通过 prompt 工程,CLIP 在多个数据集上的零样本分类性能得到了显著提升。在 ImageNet 数据集上,通过定制 prompt 和集成多个零样本分类器,模型的准确率提高了近 5%。这表明 prompt 工程不仅能解决 CLIP 在处理自然语言标签时的一些固有问题,还能充分发挥其在零样本学习中的潜力,为模型在不同任务中的应用提供了更强大的支持。

研究结论与意义

通过上述研究,验证了从自然语言监督学习可迁移视觉模型的可行性,CLIP 模型在多任务和数据集上展现出良好的零样本学习能力和泛化性能。ViT 架构和 prompt 工程在提升模型性能方面发挥了重要作用,为计算机视觉领域的研究开辟了新方向,为后续研究奠定了基础,具有重要的理论和实践意义。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

任务11:路由器配置与静态路由配置

目录 一、概念 二、路由器配置 三、配置静态路由CSDN 原创主页:不羁https://blog.csdn.net/2303_76492156?typeblog 一、概念 1、路由器的作用:通过路由表进行数据的转发。 2、交换机的作用:通过学习和识别 MAC 地址,依据 M…

Python实例:PyMuPDF实现PDF翻译,英文翻译为中文,并按段落创建中文PDF

基于PyMuPDF与百度翻译的PDF翻译处理系统开发:中文乱码解决方案与自动化排版实践 一 、功能预览:将英文翻译为中文后创建的PDF 二、完整代码 from reportlab.lib.pagesizes import letter from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle

LeeCode题库第四十六题

46.全排列 项目场景: 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2&am…

LangChain4j开发RAG入门示例

本文将详细介绍如何基于Java语言,使用Langchain4j开源框架、Milvus向量数据、阿里Qwen大模型,开发一个RAG入门级简单示例。本示例虽然简单,但涉及到多个知识点,包括:Milvus初始化、Embedding模型、文档切片、Springboo…

快速从C过度C++(一):namespace,C++的输入和输出,缺省参数,函数重载

📝前言: 本文章适合有一定C语言编程基础的读者浏览,主要介绍从C语言到C过度,我们首先要掌握的一些基础知识,以便于我们快速进入C的学习,为后面的学习打下基础。 这篇文章的主要内容有: 1&#x…

课程《Deep Learning Specialization》

在coursera上,Deep Learning Specialization 课程内容如下图所示:

微服务与消息队列RabbitMQ

简介 同步模式 异步模式 内容 解决方案RabbitMQ 同步调用的优缺点 同步调用的优势是什么? 时效性强,等待到结果后才返回。 同步调用的问题是什么? 拓展性差性能下降级联失败问题

苹果 M3 Ultra 芯片深度解析:AI 时代的性能革命

2025 年 3 月 5 日,苹果正式发布了其史上最强 PC 芯片 ——M3 Ultra。这款基于 UltraFusion 封装技术的旗舰级 SoC,不仅延续了苹果芯片在能效比上的传统优势,更通过架构创新与硬件升级,将 AI 计算能力推向了新高度。本文将从性能突…

通义千问:Qwen2.5-0.5B模型架构解释

通义千问:Qwen2.5-0.5B模型架构解释 1. 模型权重文件 .mdl、.msc:存储模型核心参数,是模型训练后学习到的知识载体,包含神经网络各层权重,加载后模型才能执行推理、生成等任务。 .mdl文件:通常是模型的核心权重数据文件,存储神经网络各层的权重参数、张量等关键数据,是…

【Linux】冯诺依曼体系与操作系统理解

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:Linux 目录 前言 一、冯诺依曼体系结构 二、操作系统 1. 操作系统的概念 2. 操作系统存在的意义 3. 操作系统的管理方式 4. 补充:理解系统调用…

玩转ChatGPT:GPT 深入研究功能

一、写在前面 民间总结: 理科看Claude 3.7 Sonnet 文科看DeepSeek-R1 那么,ChatGPT呢? 看Deep Research(深入研究)功能。 对于科研狗来说,在这个文章爆炸的时代,如何利用AI准确、高效地收…

虚函数和虚表的原理是什么?

虚函数是一个使用virtual关键字声明的成员函数,在基类中声明虚函数,在子类中可以使用override重写该函数。虚函数根据指针或引用指向的实际对象调用,实现运行时的多态。 虚函数表(虚表)是一个用于存储虚函数地址的数组…

laravel es 相关代码 ElasticSearch

来源&#xff1a; github <?phpnamespace App\Http\Controllers;use Elastic\Elasticsearch\ClientBuilder; use Illuminate\Support\Facades\DB;class ElasticSearch extends Controller {public $client null;public function __construct(){$this->client ClientB…

字节跳动C++客户端开发实习生内推-抖音基础技术

智能手机爱好者和使用者&#xff0c;追求良好的用户体验&#xff1b; 具有良好的编程习惯&#xff0c;代码结构清晰&#xff0c;命名规范&#xff1b; 熟练掌握数据结构与算法、计算机网络、操作系统、编译原理等课程&#xff1b; 熟练掌握C/C/OC/Swift一种或多种语言&#xff…

C语言_数据结构总结6:链式栈

纯c语言代码&#xff0c;不涉及C 顺序栈的实现&#xff0c;欢迎查看这篇文章&#xff1a;C语言_数据结构总结5&#xff1a;顺序栈-CSDN博客 0. 结构单元 #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct Linknode { ElemType…

基于DeepSeek的智慧医药系统(源码+部署教程)

运行环境 智慧医药系统运行环境如下&#xff1a; 前端&#xff1a; HTMLCSS后端&#xff1a;Java AIGCDeepseekIDE工具&#xff1a;IDEA技术栈&#xff1a;Springboot HTMLCSS MySQL 主要角色 智慧医药系统主要分为两个角色。 游客 尚未进行注册和登录。具备登录注册、…

信奥赛CSP-J复赛集训(模拟算法专题)(6):P6352 [COCI 2007/2008 #3] CETIRI

信奥赛CSP-J复赛集训&#xff08;模拟算法专题&#xff09;&#xff08;6&#xff09;&#xff1a;P6352 [COCI 2007/2008 #3] CETIRI 题目描述 你原本有 4 4 4 个数&#xff0c;它们从小到大排序后构成了等差数列。 但是现在丢失了一个数&#xff0c;并且其余的三个数的顺序…

2025-03-09 学习记录--C/C++-PTA 习题11-1 输出月份英文名

合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于累土&#xff1b;千里之行&#xff0c;始于足下。&#x1f4aa;&#x1f3fb; 一、题目描述 ⭐️ 裁判测试程序样例&#xff1a; #include <stdio.h>char *getmonth( int n );int main() {int n;char …

linux环保监测4G边缘网关:环境数据的可靠传输者

环保监测工控机&#xff0c;常被称为“环境数据采集器”或“环保数据终端”&#xff0c;是一种专门用于环境监测领域的工业计算机。它具备强大的数据处理能力、稳定的运行性能和多种接口&#xff0c;能够实时采集、处理和传输环境监测数据。这些数据包括空气质量、水质、噪声、…

【哇! C++】类和对象(五) - 赋值运算符重载

目录 ​编辑 一、运算符重载 1.1 运算符重载概念 1.2 全局运算符重载 1.3 运算符重载为成员函数 二、赋值运算符重载的特性 2.1 赋值运算符重载需要注意的点 2.2 赋值运算符重载格式 2.2.1 传值返回 2.2.2 传引用返回 2.2.3 检查自己给自己赋值 三、赋值运算符重载的…