ViT:2 理解CLIP

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。

语言-图像对比的预训练模型(CLIP)是由OpenAI开发的多模态学习架构。它从自然语言监督中学习视觉概念。它通过在包含图像及其相应文本描述的大规模数据集上联合训练模型来弥合文本和视觉之间的差距。

对比学习

对比学习是机器学习中经常使用的技术,特别是在无监督学习领域。对比学习教 AI模型识别大量数据的异同。

上图为对比学习的pipeline管道。

假设存在一个主体、一个相似的主体(正样本)和一个不同的主体(负样本)。对比学习的目标是让模型理解主体和相似主体的关联性,同时将主题和负样本最大程度的推开。其实也很好理解,假如识别苹果,可以给模型一堆的不同角度的苹果照片(正样本),让模型能够从多角度的认识很识别苹果。而其余品类的照片都是负样本。

CLIP 架构

CLIP使用双编码器架构将图像和文本映射到共享的潜在空间中。它通过联合训练两个编码器来工作。一个用于图像的编码器(Vision Transformer)和一个用于文本的编码器(基于Transformer的语言模型)。

图像编码器从视觉输入中提取显著特征。该编码器将“图像作为输入”并生成高维矢量表示。它通常使用卷积神经网络 (CNN) 架构(如 ResNet)来提取图像特征。文本编码器:文本编码器对相应文本描述的语义含义进行编码。它采用“文本标题/标签作为输入”并生成另一个高维向量表示。它通常使用基于 Transformer 的架构(如 Transformer 或 BERT)来处理文本序列。共享嵌入空间:两个编码器在共享矢量空间中生成嵌入。这些共享嵌入空间允许 CLIP 比较文本和图像表示并了解它们的基本关系。

CLIP 在从互联网上收集的 4 亿对(图像、文本)的大规模数据集,并在这些数据集上面进行预训练。在预训练期间,模型会被喂给有图像和文本标题配对组成的样本。其中有些是正匹配(标题准确地描述了图像),而另一些则是负匹配。CLIP对每幅图像都会创造多个文本,有些是正,有些是负。将这些创建的正样本(匹配)和负样本(不匹配)对的混合。

预训练阶段对比损失函数起到关键的作用。模型会根据学习的结果进行对应的奖惩,进而鼓励模型学习到视觉和文本信息的相似性。经过训练的文本编码器被用作zero-shot的分类器。CLIP计算所有图像和文本描述对的嵌入之间的余弦相似度,进而优化了编码器的参数,以便于提升正确对的相似性。因此CLIP学习到一个多模态嵌入空间,其中语义相关的图像和文本彼此靠近。

运用场景

即然CLIP已经将图像和文本映射到共享空间中,那么就可以集成NLP和图像处理任务。

  • 这允许CLIP生成图像的文本描述,通过查询具有图像的嵌入表示,从训练数据中检索相关的文本描述,高效的为图像生成标题。

  • 同时CLIP可以根据文本描述对图像进行分类。直接将文本描述与潜在空间中看不见的图像进行比较。无需为特定类添加标记训练数据即可执行零样本图像分类。

  • 基于这个基础模型还可以根据文本的提示“编辑”图像。用户可以操纵文本输入并将其反馈到CLIP中,为创新的文本到图像生成和“编辑”工具奠定了基础。

传统的视觉模型擅长于物体检测和图像分类等任务。然而,往往难以掌握图像中更深层次的含义和背景。CLIP 可以理解图像中描绘的物体、活动和情感之间的关系。给定一对情侣在公园互相打闹的图像,CLIP可以识别情侣的存在,还可以它们的情绪。而且CLIP可以从更少的图像-文本对中学习,使得它更加节省资源,并适用于数据有限的专业领域。

CLIP 最令人印象深刻的功能之一是它能够执行zero-shot的图像分类。这意味着 CLIP 可以仅使用自然语言描述对以前从未见过的图像进行分类,下图展示其强大的效果。

CLIP的另一个应用是将其用作多模态学习系统的组件。这些可以组合不同类型的数据,例如文本和图像。例如,它可以与 DALL-E 等生成模型配对。它从文本输入创建图像,以产生逼真和多样化的结果。它也可以根据文本命令编辑现有图像,例如更改对象的颜色、形状或样式。这使用户能够傻瓜式的创造性地创建和操作图像。

聪明的读者可以会想到其实在审核场景下,CLIP也是可以大展拳脚的。它可以帮助审核来自在线平台的不当或有害内容,例如包含暴力、裸露或仇恨言论的图片。CLIP 可以通过根据自然语言标准检测和标记此类内容来协助内容审核过程。例如,它可以识别违反平台服务条款或社区准则图像,或者对某些群体或个人具有攻击性或敏感性的图像。更加智能的地方在于它可以通过突出显示触发审核的图像或文本的相关部分来证明决策的合理性。

CLIP在图像识别、NLP、医疗诊断、辅助技术、先进机器人等领域取得突破,它为更直观的人机交互铺平了道路,因为机器可以跨不同模式掌握上下文理解。但是它对人际关系的理解,尤其是情感和抽象概念,仍然受到限制。它可能会误解复杂或细微的视觉线索。因此也会影响它在需要更深入地了解人类的任务表现。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vuInhub靶场实战系列--Kioptrix Level #3

免责声明 本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关。 目录 免责声明前言一、环境配置1.1 靶场信息1.2 靶场配置 二、信息收集2.1 主机发现2.1.1 netdiscover2.1.2 arp-scan主机扫描 2.2 端口扫描2.3 指纹识别2.4 目…

快速测试 Mybatis 复杂SQL,无需启动 Spring

快速测试mybatis的sql 当我们写完sql后,我们需要测试下sql是否符合预期,在填入各种参数后能否正常工作,尤其是对于复杂的sql。 一般我们测试可能是如下的代码: 由于需要启动spring,当项目较大的时候启动速度很慢,有些…

④-2单细胞学习-cellchat单数据代码补充版(通讯网络)

目录 通讯网络系统分析 ①社会网络分析 1,计算每个细胞群的网络中心性指标 2,识别细胞的信号流模式 ②非负矩阵分解(NMF)识别细胞的通讯模式 1,信号输出细胞的模式识别 2,信号输入细胞的模式识别 信…

RocketMq源码解析六:消息存储

一、消息存储核心类 rocketmq消息存储的功能主要在store这个模块下。 核心类就是DefaultMessageStore。我们看下其属性 // 配置文件 private final MessageStoreConfig messageStoreConfig; // CommitLog 文件存储实现类 private final CommitLog commitLog; …

【研发日记】Matlab/Simulink软件优化(三)——利用NaNFlag为数据处理算法降阶

文章目录 前言 背景介绍 初始算法 优化算法 分析和应用 总结 前言 见《【研发日记】Matlab/Simulink软件优化(一)——动态内存负荷压缩》 见《【研发日记】Matlab/Simulink软件优化(二)——通信负载柔性均衡算法》 背景介绍 在一个嵌入式软件开发项目中,需要开…

FedAvg论文

论文:Communication-Efficient Learning of Deep Networks from Decentralized Data 原code Reproducing 通过阅读帖子进行的了解。 联邦平均算法就是最典型的平均算法之一。将每个客户端上的本地随机梯度下降和执行模型的平均服务器结合在一起。 联邦优化问题 数…

开发小Tips:切换淘宝,腾讯,官方,yarn,cnpm镜像源,nrm包管理工具的具体使用方式(方便切换镜像源)

由于开发中经常要下载一些软件或者依赖,且大多数的官方源的服务器都在国外,网速比较慢,国内为了方便,国内一些大厂就建立一些镜像,加快下载速度。 1.各大镜像源的切换: 切换淘宝镜像源: npm …

Bio-Info每日一题:Rosalind-06-Counting Point Mutations

🎉 进入生物信息学的世界,与Rosalind一起探索吧!🧬 Rosalind是一个在线平台,专为学习和实践生物信息学而设计。该平台提供了一系列循序渐进的编程挑战,帮助用户从基础到高级掌握生物信息学知识。无论你是初…

数据结构笔记 线性表的查找 顺序,折半,分块查找

顺序查找:从头找到尾,或者从尾找到头 顺序查找的性能: 其中,辅助空间的O(1)用于存放哨兵的 折半查找:向下取整:指当计算的结果不为整数时取小于计算结果的整数。 折半查找的性能&am…

类和对象的学习总结(一)

面向对象和面向过程编程初步认识 C语言是面向过程的,关注过程(分析求解问题的步骤) 例如:外卖,关注点菜,接单,送单等 C是面向对象的,关注对象,把一件事拆分成不同的对象&…

十大排序

本文将以「 通俗易懂」的方式来描述排序的基本实现。 🧑‍💻阅读本文前,需要一点点编程基础和一点点数据结构知识 本文的所有代码以cpp实现 文章目录 排序的定义 插入排序 ⭐ 🧐算法描述 💖具体实现 &#x1f…

记一次Linux下Docker镜像服务器磁盘空间清理

我们开发环境Jenkins构建项目时报服务器磁盘空间不足,导致项目自动化构建部署失败, Docker镜像服务器磁盘空间清理我们做了多次了,之前在清理Docker镜像服务器时走了不少弯路,查了不少Docker镜像服务器空间清理,都大同…

架构设计-全局异常处理器404、405的问题

java web 项目中经常会遇到异常处理的问题,普遍的做法是使用全局异常处理,这样做有以下几种原因: 集中化处理:全局异常处理允许你在一个集中的地方处理整个应用程序中的异常。这有助于减少代码重复,因为你不必在每个可…

C++的string类

目录 一、导入 二、接口学习 1.默认成员函数 2.迭代器相关的函数iterator 3.与容量相关的函数Capacity系列 4.与成员权限相关的函数Element access: 5.修改器相关的函数Modifiers: 6.字符串操作接口函数String operations:​编辑 三、扩展 一、导入 学习过…

修复损坏的Excel文件比你想象的要简单,这里提供几种常见的修复方法

打开重要的Excel文件时遇到问题吗?Microsoft Excel是否要求你验证文件是否已损坏?Excel文件可能由于各种原因而损坏,从而无法打开。但不要失去希望;你可以轻松修复损坏的Excel文件。 更改Excel信任中心设置 Microsoft Excel有一个内置的安全功能,可以在受限模式下打开有…

阿里通义千问 Qwen2 大模型开源发布

阿里通义千问 Qwen2 大模型开源发布 Qwen2 系列模型是 Qwen1.5 系列模型的重大升级。该系列包括了五个不同尺寸的预训练和指令微调模型:Qwen2-0.5B、Qwen2-1.5B、Qwen2-7B、Qwen2-57B-A14B 以及 Qwen2-72B。 在中文和英文的基础上,Qwen2 系列的训练数…

前端开发部署:Visual Studio Code + vue

〇 说明 本教程全部采用默认安装路径,因为在进行自定义路径安装的时候,需要配置各种环境变量,在这个配置过程中,可能出现各种很混乱的问题。 一 安装Node.js 1 下载https://nodejs.org/en 2 按照默认NEXT执行 C:\Program Files…

C++ BFS相关题目

目录 图像渲染 岛屿数量 图像渲染 733. 图像渲染 vis就是标记1有没有被用过 符合条件的都放到队列里,每次出队列一个,判四个, 如果要改的值与当前的值相同直接返回 注意:image[x][y] prev要放在坐标判断的后面&#xff…

深度解析地铁票务系统的技术架构与创新应用

在城市交通体系中,地铁作为一种快速、便捷的公共交通方式,已经成为现代都市生活的重要组成部分。而地铁票务系统的技术架构,则是支撑地铁运营的核心之一。本文将深度解析地铁票务系统的技术架构与创新应用,从系统设计、数据管理、…

PE文件(七)扩大节合并节数据目录

添加shellcode有以下几种的方式: 1.直接在任意节的空白区添加代码 2.新增节添加代码 3.扩大最后一个节添加代码 4.合并节并添加代码 今天我们学习如何扩大节,合并节 扩大节 在上一节的学习中,我们可以通过上移NT头和节表覆盖DOS Stub以…