大模型学习笔记------CLIP模型解读与思考

大模型学习笔记------CLIP模型解读与思考

    • 1、为什么提出CLIP模型
    • 2、CLIP模型详解
    • 3、CLIP模型的重要意义

    上文已经讲到,我认为多模态的大模型是最有前途的大模型,首先学习的就是CLIP这个模型。 CLIP(Contrastive Language-Image Pretraining)模型由OpenAI提出,是一种多模态模型,能够将图像和文本通过对比学习的方式映射到一个共享的向量空间中,使其具备跨模态理解能力。

1、为什么提出CLIP模型

    最开始的时候,OpenAI的想法非常超前,想通过“输入图片,直接生成文本”,即直接通过文本对图像进行理解与表达。但是这个难度太大了,训练成本太高,模型的收敛非常缓慢,因此就想到通过对比学习的方式训练一个图文模型,这样就诞生了CLIP模型。

    其实,我认为还有其他的原因,比如图生文模型可能无法准确生成对多种表达的理解,因为它只能生成单一的文字描述。对比学习训练的CLIP模型能够理解多样化的文字表达(如“猫”、“小猫”、“喵星人”),并匹配相关图像,这种鲁棒性使其能适应不同语言和表达风格的描述。

2、CLIP模型详解

2.1 CLIP模型之双塔结构/双流架构

    CLIP模型采用的是双塔结构或是称为双流架构,具体的模型图如下所示:在这里插入图片描述

    从上面的模型结构就可以知道,对比学习的精髓是什么,即图文对比相似度的一种方式。文本编码器主要是提取文本信息,图像编码器主要是提取图像信息。本质上,图像与文本的信息特征就是向量,同时两个编码器提取的特征维度是相同的。这就是所谓的文本与图像流的输出在嵌入空间中进行对比学习,以实现图像和文本的语义对齐

    从底层原理考虑,图像与文本的对齐其实就是在学习图像与文本的相似度。对比学习是CLIP模型的核心,它通过比较正样本(匹配的图像-文本对,即图中对角线上N个匹配的图像-文本对)和负样本(不匹配的对,即N^2-N个没有匹配的图像-文本对)来训练模型。那就很好理解了,我认为两个数据流形成的对角线部分的值应该趋向于1

    在源代码中,文本编码器是transformer,图像编码器测试了各种版本的ResNet(经过Efficientnet最优宽度深度分辨率)和VIT。实质上,文本编码器可以是任何一个网络,比如BERT,甚至可以是GPT。而图像编码器那就更多了,只要是提取编码特征都是可以的,比如transformer的各种改进型,我认为甚至可以使用Mamba进行尝试。

2.2 CLIP模型之模型推理

    CLIP模型训练完成以后如何进行推理呢,文章中给了一个相对比较好理解的图像进行描述(Prompt+图像),如下所示:
在这里插入图片描述
    当CLIP模型预训练完成后, CLIP 转换为零样本分类器。在推理中将数据集的所有类转换为标题(即Prompt),例如 “a photo of a {subject}”,将给定的类别分别填入subject,并预测 CLIP 估计的标题类与给定图像的最佳配对。也就是在编码完成后,拿图像特征跟文本特征比cos相似度,跟哪个特征距离最近,这张图像就属于对应的类别。

3、CLIP模型的重要意义

    CLIP模型的出现有重要的意义,我的分析如下:

跨模态理解能力的突破
    联合视觉与语言:CLIP将视觉和文本信息映射到同一个空间中,使模型能够理解图像与文字的语义关联。例如,CLIP可以识别“狗”的图片并知道其对应的文本描述为“狗”,这突破了传统单模态模型的限制。

开放式的推理与生成
    开放标签分类:CLIP在图像分类中并不依赖固定的标签集,而是可以接受任意文字描述作为标签,从而实现开放标签分类。模型可以根据输入的描述对图像进行分类,这在现实应用中更具灵活性。
    图像文本搜索和生成:CLIP的跨模态理解使得图文搜索与生成更为精准,它可以通过简单的文字描述来查找对应图像,或者通过图像找到与之相关的文字描述。

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

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

相关文章

sass @mixin @extend

sass中的mixin混入 和 extend继承 mixin 需要使用include mixin-name; 就可以直接使用 extend 继承 可以直接继承通用的css 不用再单独去添加class类型 使用示例 .button-default { background-color: #f00; color: #fff; padding: 10px; border: none; borde…

《IMM交互式多模型滤波MATLAB实践》专栏目录,持续更新……

专栏链接:https://blog.csdn.net/callmeup/category_12816762.html 专栏介绍 关于IMM的例程 双模型EKF: 【逐行注释】基于CV/CT模型的IMM|MATLAB程序|源代码复制后即可运行,无需下载三模型EKF: 【matlab代码】3个模型的IMM例程&…

【UART异步串口协议及verilog实现】

UART异步串口协议 1 UART1.1 数据格式1.2 波特率 2 UART的发送和接收模块2.1 uart发送模块2.2 uart的接收模块 【博客首发于微信公众号《 漫谈芯片与编程》】 本篇文章介绍常用的芯片外围低速协议:UART; 1 UART UART是异步串行传输协议,即…

【算法——二维动态规划】

64. 最小路径和 #include<iostream> #include<vector> #include<algorithm> using namespace std;int dfs(int i,int j,vector<vector<int>>nums) //右下到左上dfs {if (i 0 && j 0)return nums[0][0];int up INT_MAX;int left INT…

TS-AWG控制电光调制器:推动科技应用新发展的利器

一、电光调制有什么用&#xff1f; 如今&#xff0c;基于光学、光子学和脉冲激光以及电光调制器的应用正变得极为流行&#xff0c;最新一代科学家正在为其实际应用开辟新领域&#xff0c;如汽车激光雷达、医疗解决方案、航空航天和国防、量子和激光传感器。 测试挑战、上市时…

ros与mqtt相互转换

vda5050 VDA5050协议介绍 和 详细翻译-CSDN博客 ros与mqtt相互转换 如何转换的&#xff0c;通过某个中转包&#xff0c;获取ros的消息然后以需要的格式转换为mqtt 需要的参数 ros相关 parameters[ (ros_subscriber_type, vda5050_msgs/NodeState), (ros_subscriber_queue…

探讨 | 大模型在传统NLP任务的使用姿势

以chatgpt为起始节点的大模型技术经过了两年左右的发展&#xff0c;大致沉淀了一些较为确定的研究领域。首先是基座大模型的研究&#xff0c;主要是国内外大厂集中大量财力、人力、算力进行大模型军备竞赛&#xff0c;企图将大模型的基础能力&#xff08;包括推理能力&#xff…

C语言 — 指针的进阶

文章目录 前言一、字符指针二、指针数组三、数组指针数组名 与 &数组名 四、指针传参二维数组传参 五、函数指针结语 前言 通过前面的关于指针的学习&#xff0c;我们了解了指针的一些个特性。本篇文章我们将深入指针&#xff0c;挖掘指针更深处的知识。 在开始之前&#…

Ceisum无人机巡检视频投放

公司投标内容有个视频投放的功能动画&#xff0c;原本想实现这么一个效果&#xff1a; 案例效果来自别人的展示作品&#xff0c;Leader一眼就相中了这个效果&#xff0c;可惜别人的终究是别人的&#xff0c;又不会白白给你&#xff0c;终究是要自己动手尝试。 动画方面的展示…

Redis为什么用跳表实现有序集合

Redis为什么用跳表实现有序集合 手写一个跳表 为了更好的回答上述问题以及更好的理解和掌握跳表&#xff0c;这里可以通过手写一个简单的跳表的形式来帮助读者理解跳表这个数据结构。 我们都知道有序链表在添加、查询、删除的平均时间复杂都都是 O(n) 即线性增长&#xff0c…

ubuntu双屏只显示一个屏幕另一个黑屏

简洁的结论&#xff1a; 系统环境 ubuntu22.04 nvidia-535解决方案 删除/etc/X11/xorg.conf 文件 记录一下折腾大半天的问题。 ubuntu系统是22.04,之前使用的时候更新驱动导致桌面崩溃&#xff0c;重新安装桌面安装不上&#xff0c;请IT帮忙&#xff0c;IT一番操作过后也表示…

Docker可视化管理面板DPanel的安装

本文软件由网友 rui 推荐&#xff1b; 什么是 DPanel &#xff1f; DPanel 是一款 Docker 可视化管理面板&#xff0c;旨在简化 Docker 容器、镜像和文件的管理。它提供了一系列功能&#xff0c;使用户能够更轻松地管理和部署 Docker 环境。 软件特点&#xff1a; 可视化管理&…

学习threejs,使用对象组合

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.Object3D 三维物体 二…

企业必备:一合通电子合同

一合通&#xff0c;让合同签署更简单。加密技术保障安全&#xff0c;随时随地可签。助力企业加速业务流程&#xff0c;提高办公效率。 在数字化转型的浪潮中&#xff0c;企业面临着前所未有的机遇与挑战。特别是在人力资源管理和合同签署方面&#xff0c;传统的纸质合同已经难以…

第十二章 spring Boot+shiro权限管理

学习目标 引入依赖配置Shiro设计数据库表编写Mapper、Service和Controller前端页面测试与调优其他注意事项 Spring Boot与Shiro的集成是一种常见的Java Web应用程序权限管理解决方案。Shiro是一个强大的Java安全框架&#xff0c;提供了认证、授权、会话管理、加密等安全功能。以…

二十二、MySQL 8.0 主从复制原理分析与实战

文章目录 一、复制&#xff08;Replication&#xff09;1、什么是复制2、复制的方式3、复制的数据同步类型3.1、异步复制3.2、半同步复制3.3、设计理念&#xff1a;复制状态机——几乎所有的分布式存储都是这么复制数据的 4、基于binlog位点同步的主从复制原理4.1、异步复制示例…

AAA 数据库事务隔离级别及死锁

目录 一、事务的四大特性&#xff08;ACID&#xff09; 1. 原子性(atomicity)&#xff1a; 2. 一致性(consistency)&#xff1a; 3. 隔离性(isolation)&#xff1a; 4. 持久性(durability)&#xff1a; 二、死锁的产生及解决方法 三、事务的四种隔离级别 0 .封锁协议 …

w~自动驾驶~合集4

我自己的原文哦~ https://blog.51cto.com/whaosoft/12451789 #基于深度学习的端到端自动驾驶 最新的端到端自动驾驶综述刚刚出炉&#xff0c;话说论文一作卡内基梅隆大学的Apoorv Singh今年产出了七篇综述&#xff0c;都和自动驾驶相关&#xff0c;推荐给大家。就一个字&…

【6G 需求与定义】ITU(国际电联)对全球6G标准的愿景

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…

使python输出带上颜色

以下代码可以使python输出带上颜色 import sys# 定义一些颜色 class Colors:PINK \033[95mBLUE \033[94mGREEN \033[92mYELLOW \033[93mRED \033[91mENDC \033[0mBOLD \033[1mUNDERLINE \033[4m# 打印带颜色的文本 def print_color(text, color):print(color text C…