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

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

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

相关文章

《永生之后》读后

文章以2120年背景创作,人类进入永生之年,发现了延长寿命的药物。停滞的死亡,新生的继续造生了人口大爆炸,于是分成两个阵营-长生区(不再繁衍后代)与生死区(不服用药物,仍然生老病死&…

PySpark教程(001):基础准备与数据输入

PySpark 学习目标 了解什么是Spark、PySpark了解为什么学习PySpark了解如何和大数据开发方向进行衔接 Spark是什么? Apache Spark是用于大规模数据处理的统一分析引擎。 简单来说,Spark是一款分布式的计算框架,用于调度成百上千的服务器…

MyBatis总结(2)- MyBatis实现原理(一)

Mybatis实现原理: 概括一句话:约定配置参数mybatis-config.xml,映射关系JavaBean-mapper.xml,用SqlSessionFactoryBuilder构建应用程序运行期间需要的SqlSessionFactory实例对象,当请求或方法需要执行CURD操作时&…

初识volatile

volatile:可见性、不能保证原子性(数据不安全)、禁止指令重排 可见性:多线程修改共享内存的变量的时候,修改后会通知其他线程修改后的值,此时其他线程可以读取到修改后变量的值。 指令重排:源代码的代码顺序与编译后字…

基于STM32开发的智能空气质量监控系统

⬇帮大家整理了单片机的资料 包括stm32的项目合集【源码开发文档】 点击下方蓝字即可领取,感谢支持!⬇ 点击领取更多嵌入式详细资料 问题讨论,stm32的资料领取可以私信! 目录 引言环境准备智能空气质量监控系统基础代码实现&…

三十七篇:大数据架构革命:Lambda与Kappa的深度剖析

大数据架构革命:Lambda与Kappa的深度剖析 1. 引言 在这个数据驱动的时代,我们面临着前所未有的挑战和机遇。随着数据量的爆炸性增长,传统的数据处理方法已无法满足现代业务的需求。大数据处理不仅涉及数据量的增加,还包括数据类型的多样化、数据来源的广泛性以及对实时数据…

Policy-Based Reinforcement Learning(1)

之前提到过Discount Return: Action-value Function : State-value Function: (这里将action A积分掉)这里如果策略函数很好,就会很大;反之策略函数不好,就会很小。 对于离散类型: …

深度学习之文本分类模型-基于transformer

1、transformer transformer就是大名鼎鼎的论文《Attention Is All You Need》[1],其在一些翻译任务上获得了SOTA的效果。其模型整体结构如下图所示 encoder和decoder 其整体结构由encoder和decoder组成,其中encoder由6个相同的block组成,…

【设计模式】结构型-桥接模式

当抽象与实现,各自独立, 桥接模式,如彩虹桥,连接两岸。 文章目录 一、类爆炸与代码重复二、桥接模式三、桥接模式的核心组成四、运用桥接模式五、桥接模式的应用场景六、小结推荐阅读 一、类爆炸与代码重复 场景假设&#xff1a…

单片机嵌入式计算器(带程序EXE)

单片机嵌入式计算器 主要功能:完成PWM占空比计算,T溢出时间(延时); [!NOTE] 两个程序EXE; [!CAUTION] 百度网盘链接:链接:https://pan.baidu.com/s/1VJ0G7W5AEQw8_MiagM7g8A?pwdg8…

代码随想录算法训练营第五十四 | ● 392.判断子序列 ● 115.不同的子序列

392.判断子序列 https://programmercarl.com/0392.%E5%88%A4%E6%96%AD%E5%AD%90%E5%BA%8F%E5%88%97.html class Solution { public:bool isSubsequence(string s, string t) {if(s.size()0 )return true;if(t.size()0)return false;vector<vector<int>> dp(s.size(…

为什么选择海外服务器?

如何选择跨境电商服务器&#xff1a;详细指南 选择合适的服务器是跨境电商企业成功的基础。服务器的性能和稳定性直接影响着网站的访问速度、用户体验和安全性&#xff0c;进而影响着企业的销量和利润。那么&#xff0c;跨境电商企业该如何选择服务器呢&#xff1f; ​​​​​…

Jenkins构建 Maven项目(微服务)并自动发布

前面讲了docker 安装Jenkins和gitlab代码管理工具&#xff0c;接下来我们讲一下Jenkins怎么构建 Maven项目。 1. 首先Jenkins配置下面3中工具类 首先是在本地安装三个jenkins自动配置相关的工具 1.1 JDK 由于我们使用docker来启动jenkins&#xff0c;其自带有jdk&#xff0c;…

oracle 12.1 rac to rac adg(maa)搭建保姆级教程

目录 资源配置 一、主库集群操作 1.主库增加standbylog 2.主库开启force logging及归档 3.主库配置参数 4.生成参数文件并将参数文件、密码文件拷贝至备库 4.1参数文件处理 4.2密码文件处理 二、备库操作 1.备库修改参数文件 1.1创建adump目录并在参数文件修改&#…

02-JAVA面向对象编程

一、面向对象编程 1、面向过程编程思想&#xff08;Process Oritented Programming&#xff09; 将实现一个功能的一组指令组合在一起&#xff0c;成为一个函数。这个函数就能实现这一个功能&#xff0c;是对功能实现的一种抽象。通过这种抽象方式&#xff0c;将代码实现复用。…

代码随想录算法训练营第三十一天| 455.分发饼干,376. 摆动序列 ,53. 最大子序和

455. 分发饼干 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int findContentChildren(int[] g, int[] s) {Arrays.sort(g); //递增Arrays.sort(s); int result 0;//遍历&#xff0c;先满足小的int i0,j0;for(;i<g.length && j<s.length;i){…

视觉大模型(VLLM)学习笔记

视觉多模态大模型&#xff08;VLLM&#xff09; InternVL 1.5 近日&#xff0c;上海人工智能实验室 OpenGVLab 团队、清华大学、商汤科技合作推出了开源多模态大语言模型项目InternVL 1.5&#xff0c;它不仅挑战了商业模型巨头例如 GPT-4V 的霸主地位&#xff0c;还让我们不禁…

golang基础

Go安装及配置环境 下载最新的 zip 文件: go#.#.#.windows-amd64.zip &#xff0c;这里的 #.#.# 是 Go 的最新版本号。 解压缩 go#.#.#.windows-amd64.zip 文件到你选择的位置。比如D:\Go 在系统中设置两个环境变量&#xff1a;GOROOT和GOPATH GOPATH 指向的是你的工作目录。…

树莓派4B 零起点(三) 树莓派 VNC 远程桌面配置(2) 配置X11模式

目录 一、配置 VNC Server为X11 1、关闭已启动的VNC Server (如之前未开启&#xff0c;此步可以忽略) 2、切换 VNC Server的模式为 X11 二、开启 X11 VncServer 三、修改树莓派VNC Server的连接模式 1、切换到 root 账号 2、修改VNC Server X11的配置 3、设置VNC密码…

引人入胜的教育视频

对于一家专注于数字自动化和能源管理的跨国公司&#xff0c;我们制作了引人入胜的教育视频&#xff0c;帮助房主选择适合他们需求的电气产品。我们的团队审查并定稿文本&#xff0c;录制并编辑配音&#xff0c;选择背景音乐&#xff0c;设计图形&#xff0c;并制作了演示如何安…