news 2026/4/23 16:25:22

CLIP模型学习记录

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CLIP模型学习记录

目录

  • 1. 原理
    • 1.1 简介
    • 1.2 模型训练
    • 1.3 模型推理
    • 1.4 举例
  • 2. 应用
    • 2.1 零样本学习
    • 2.2 图像搜索与分类

1. 原理

1.1 简介

1. CLIP(全称是Contrastive Language-Image Pre-training)是由 OpenAI 在 2021 年提出的一种多模态机器学习模型。它旨在通过大量的文本-图像对进行训练,从而学会理解图像内容,并能将这些内容与相应的自然语言描述相匹配。CLIP 的核心思想是利用对比学习,这是一种无监督或弱监督的学习方法,通过最小化正样本之间的距离与最大化负样本之间的距离来学习表示,使得预训练一个能够同时理解图像和文本的模型。

原论文地址:https://arxiv.org/pdf/2103.00020

2. 方法概述图:

1.2 模型训练

1. 如上面图,左半部分是 CLIP 模型的对比预训练架构,通过对数据集中 N 个图像-文本对进行对比学习,使得模型能够理解文本和图像的语义关联关系。(4 亿个图文对)

2. 在预训练阶段,CLIP 模型采用了双流架构,分别处理图像和文本数据:图像流通过 ViT 编码器提取视觉特征,文本流通过 Transformer 编码器处理语言信息,两个流的输出在嵌入空间中进行对比学习,以实现图像和文本的语义对齐。

3. 对比学习是 CLIP 模型的核心,它通过比较正样本(匹配的图像-文本对,即图中对角线上N NN个匹配的图像-文本对)和负样本(不匹配的对,即N 2 − N N^2-NN2N个没有匹配的图像-文本对)来训练模型。这种学习策略使得模型能够学习到图像和文本之间的复杂关系,而不仅仅是简单的特征对应。CLIP 的对比学习框架提高了模型对视觉和语言数据的泛化能力。

4. 对比预训练的伪代码如下:

# image_encoder - 图像编码器(ResNet 或 Vision Transformer)# text_encoder - 文本编码器(CBOW 或 Text Transformer)# I[n, h, w, c] - 对齐图像的迷你批次(批大小 n,高 h,宽 w,通道数 c)# T[n, l] - 对齐文本的迷你批次(批大小 n,序列长度 l)# W_i[d_i, d_e] - 图像到嵌入向量的可学习投影矩阵# W_t[d_t, d_e] - 文本到嵌入向量的可学习投影矩阵# t - 可学习的温度参数# 提取各模态的特征表示I_f=image_encoder(I)# 图像特征 [n, d_i]T_f=text_encoder(T)# 文本特征 [n, d_t]# 联合多模态嵌入 [n, d_e]I_e=l2_normalize(np.dot(I_f,W_i),axis=1)# 归一化图像嵌入T_e=l2_normalize(np.dot(T_f,W_t),axis=1)# 归一化文本嵌入# 缩放后的成对余弦相似度矩阵 [n, n]logits=np.dot(I_e,T_e.T)*np.exp(t)# 相似度得分矩阵# 对称损失函数labels=np.arange(n)# 对角线标签(理想匹配索引)loss_i=cross_entropy_loss(logits,labels,axis=0)# 图像到文本的交叉熵损失loss_t=cross_entropy_loss(logits,labels,axis=1)# 文本到图像的交叉熵损失loss=(loss_i+loss_t)/2# 对称对比损失

1.3 模型推理

1. 如上图右半部分所示,当 CLIP 模型预训练完成后, CLIP 转换为零样本分类器。首先和训练过程一样,也是需要图像编码器将给定的图像转换为图像特征,以及文本编码器将待选文本转换为文本特征。在推理中使用一个小方法,将数据集的所有类转换为标题,例如 “a photo of a {subject}”,将给定的类别分别填入subject,并预测 CLIP 估计的标题类与给定图像的最佳配对。

2. 一些结果示例:

1.4 举例

假设有一个目标数据集,包含三个类别:猫、狗和鸟:

1. 训练阶段:

(1)输入一批图像-文本对,例如(猫的图像,"猫"的文本)

(2)图像编码器生成猫的图像特征向量,文本编码器生成 “猫” 的文本特征向量

(3)模型优化目标函数,使猫的图像特征向量和 “猫” 的文本特征向量在联合嵌入空间中的相似度最大化

2. 测试阶段:

(1)使用文本编码器将类别名称 “猫”、“狗” 和 “鸟” 分别嵌入到向量表示中

(2)对于一个新的图像,通过图像编码器生成其特征向量

(3)计算该特征向量与 “猫”、“狗” 和 “鸟” 的嵌入向量的相似度,选择相似度最高的类别作为预测结果

2. 应用

2.1 零样本学习

零样本学习(Zero-Shot Learning, ZSL)是 CLIP 模型的一个重要应用领域。在零样本学习任务中,模型需要在没有直接标注样本的情况下,对全新类别的数据进行准确预测。CLIP 模型通过其强大的多模态学习能力,能够在未见过的类别上进行有效的分类。

在零样本学习中,CLIP 模型使用类别的视觉特征和语义特征之间的关联来进行分类。具体来说,CLIP 模型会学习一个从图像特征空间到类别标签空间的映射,这个映射允许模型在没有直接样本的情况下识别新类别。

2.2 图像搜索与分类

CLIP 模型在图像搜索与分类任务中也展现出了卓越的性能。图像搜索与分类任务的目标是找到与给定查询图像或文本描述最相关的图像。CLIP 模型通过计算图像和文本之间的相似度得分来实现这一目标。

在图像搜索任务中,CLIP 模型首先将查询图像和数据库中的所有图像分别编码为特征向量,然后计算这些特征向量之间的相似度得分。这些得分可以用来对数据库中的图像进行排序,从而找到与查询图像最相关的图像。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 9:59:43

今天想和大家聊一聊为什么有人劝别选计算机专业?

今天想和大家聊一聊为什么有人劝别选计算机专业? 和大家说一句掏心窝的话:直到 2021 年,计算机专业依旧是寒门改变命运的一个最佳选择之一,要不是怕被喷,我都想把之一去掉,因为想了半天,我实在找不到其它…

作者头像 李华
网站建设 2026/4/23 9:59:43

C++ 核心知识点梳理

C 核心知识点梳理 一、基础语法与数据类型1. 核心数据类型2. 变量与运算符3. 流程控制4. 函数基础二、面向对象(OOP)核心特性(C核心)1. 封装(Encapsulation)2. 继承(Inheritance)3. …

作者头像 李华
网站建设 2026/4/23 11:22:23

深入理解 Spring 事务管理:原理、配置与常见陷阱

文章目录深入理解 Spring 事务管理:原理、配置与常见陷阱一、什么是事务?ACID 特性二、Spring 支持的事务管理类型1. 编程式事务2. 声明式事务(推荐)三、与不同持久层框架的集成四、Transactional 注解详解常用属性示例&#xff1…

作者头像 李华
网站建设 2026/4/23 11:22:21

驾驶十年演进

“驾驶”的这十年(2015–2025),经历了从**“人类掌控机械”到“AI 模拟人类”**,再到 “数据驱动决策” 的范式转移。 这十年中,驾驶的含义从一项“肌肉记忆的技能”演变为一套“系统工程的博弈”。一、 核心演进的三大…

作者头像 李华
网站建设 2026/4/23 14:54:32

ESP32 Series of Modules(ESP32 系列模组)

ESP32 Series of Modules(ESP32 系列模组)四博智联基于乐鑫 ESP32 生态,构建了覆盖主流 Wi-FiBLE 到新一代 Wi-Fi 6 / 多协议的完整模组矩阵,并提供配套开发板/参考方案,帮助客户更快完成从选型、验证到量产落地的全流…

作者头像 李华
网站建设 2026/4/23 14:52:13

【小程序毕设源码分享】基于springboot+Android的民宿预订系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华