首页 > 其他分享 >CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?

CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?

时间:2023-12-28 14:35:47浏览次数:31  
标签:编码器 训练 CLIP 模型 ResNet 离奇 图像 文本




CLIP:如何训练视觉大模型?

  • 对比预训练
  • 图像编码器
  • 文本编码器
  • 最大的亮点:zero-shot图像分类



 


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

CLIP = 对比学习 + 预训练 + 文字图像相似度。

对比预训练

传统方法训练视觉模型的方式通常是使用有监督学习方法,需要收集大量图像和对应标签:

CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_特征向量

CLIP 采用了一种不需要人工大量标记数据的自监督学习方法。

CLIP 模型是一种基于对比学习的模型,可以将图像和文本进行联合编码,从而实现图像和文本之间的交叉检索。

  • 传统方法:要构建一个图像-文本匹配数据集,需要收集大量的图像和与之相关联的文本描述,并对它们进行人工标注。比如,我们收集了10000张图像和与之对应的10000个文本描述,然后需要手动将每张图像与对应的文本进行匹配标注。
  • CLIP方法:相比之下,CLIP可以利用自监督学习和互联网上的数据进行训练,无需显式的人工标注。例如,我们可以利用互联网上的图像和相关联的文本数据,比如从社交媒体、图像搜索引擎或图像描述数据集中获取图像-文本对,不用人工标注。
  • openai 使用了 WebImage Text 上 4亿 对图像文本对训练 CLIP
  • CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_特征向量_02

CLIP会将图像和文本分别编码为特征向量,并通过比较这些特征向量的相似性来学习图像和文本之间的匹配关系。

比如图像和文本的匹配任务中,模型需要区分正样本(真实的图像-文本匹配对)和负样本(随机的图像-文本对)。

模型会通过最大化正样本的相似性,同时最小化负样本的相似性来学习。

CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_相似度_03

对比预训练:

  • 一个文本编码器,得到 n 个文本特征向量(CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_编码器_04
  • 一个图像编码器,得到 n 个图像特征向量(CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_相似度_05
  • 将文本、图像映射到同一个特征空间
  • 计算这对组合的相似度
  • 最大化正样本相似度(对角线 CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_编码器_06
  • 最小化负样本相似度(其他是负样本)

完整版(参考知乎大佬):

CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_相似度_07


动态过程:


图像编码器

使用 ResNet 作为初始的图像特征提取器,然后将 ResNet 的输出,传递给 ViT 模型。

利用 ResNet 在低层级特征提取方面的优势,同时使用 ViT 模型的自注意力机制来捕捉图像中的全局关系。

图像编码器 = ResNet + ViT。

ResNet 部分:

  • 引入模糊池化,在下采样前加入一个高斯低通滤波。以减少特征图中的高频细节信息,从而实现更加鲁棒的下采样。
  • 将全局平均池化,替换成注意力池化。对特征图的每个通道进行加权平均,从而将更多的注意力放在重要的特征上。
  • 5 个模型的放缩:ResNet - 50、ResNet - 100、ResNet - 50x4、ResNet - 50x16、ResNet - 50x64

CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_相似度_08

ViT 部分:

  • 在 patch embedding 和 position embedding 后,添加一个额外的线性/全连接层,以增加模型的非线性表达能力。
  • 更换了初始化方法,提升模型性能。
  • 4 个模型的缩放:ViT-B/32、ViT-B/16、ViT-B/14、ViT-B/14-336px

CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_特征向量_09

文本编码器

没啥特殊的,就是 Transformer :

  • 6 个编码器
  • 6 个解码器
  • 使用了 63M 个参数
  • 有 8 个注意力头

最大的亮点:zero-shot图像分类

CLIP 对比预训练 + 文字图像相似度:离奇调查,如何训练视觉大模型?_编码器_10

传统大模型预训练后,还需要微调,才能处理下游任务。

CLIP 出来后,不需要任何训练数据,就可以直接做图像分类。

分类过程:

  • 将所有类别(汽车、狗、鸟等),转换为一个句子 A photo of a {object}
  • 输入到文本编码器,得到 N 个特征向量
  • 输入图像到图像编码器,得到 1 个特征向量
  • 俩个特征向量相似度最高的,就是图像的类别


标签:编码器,训练,CLIP,模型,ResNet,离奇,图像,文本
From: https://blog.51cto.com/u_13937572/9014749

相关文章

  • DALL-E 系列:AI绘画背后的惊人真相!!【1个离奇内幕、3个意想不到、5大秘密揭示】
    DALL-E系列:AI绘图原理,根据用户给出的描述,生成与描述相匹配的图像DALL-E1dVAETransformerDALL-E2CLIP先验priordecoder(image)DALL-E3 论文地址:https://arxiv.org/pdf/2102.12092.pdfDALL-E的提出是为了解决图像生成的问题,即通过文字描述生成对应的图像。DALL-E文生图官网:ht......
  • day01 代码随想录算法训练营 704. 二分查找
    题目:leetcode704.二分查找 感悟:困扰我多年的二分查找对于边界的判断,我终于理解了。难点:难点1:定边界rightright=len(nums)还是len(nums)-1 难点2:while循环whileleft<right还是left<=right 难点3:mid取值mid=right-1还是mid=right  结论:1.自己确定......
  • 人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码
    人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码目录人体关键点检测2:Pytorch实现人体关键点检测(人体姿势估计)含训练代码1.前言2.人体关键点检测方法(1)Top-Down(自上而下)方法(2)Bottom-Up(自下而上)方法:3.人体关键点检测数据集4.人体检测模型训练5.人体关键......
  • 笔尖笔帽检测2:Pytorch实现笔尖笔帽检测算法(含训练代码和数据集)
    笔尖笔帽检测2:Pytorch实现笔尖笔帽检测算法(含训练代码和数据集)目录笔尖笔帽检测2:Pytorch实现笔尖笔帽检测算法(含训练代码和数据集)1.前言2.笔尖笔帽检测方法(1)Top-Down(自上而下)方法(2)Bottom-Up(自下而上)方法:3.笔尖笔帽检测数据集4.手笔检测模型训练5.笔尖笔帽检测模型训练......
  • 代码随想录算法训练营第十五天 | 层序遍历 ,226.翻转二叉树,101.对称二叉树
    一、二叉树层序遍历题目链接:LeetCode102.二叉树的层序遍历LeetCode107.二叉树的层序遍历IILeetCode199.二叉树的右视图LeetCode637.二叉树的层平均值LeetCode429.N叉树的层序遍历LeetCode515.在每个树行中找最大值LeetCode116.填充每个节点的下一个右侧节......
  • 人工智能大模型原理与应用实战:预训练模型的优化与调优
    1.背景介绍人工智能(ArtificialIntelligence,AI)是计算机科学的一个分支,研究如何使计算机具有智能,能够理解人类语言、进行问题解决、学习和自主决策等。随着数据量的增加和计算能力的提升,深度学习(DeepLearning)成为人工智能的核心技术之一,它能够自动学习表示和特征,从而实现人类级别......
  • 代码随想录算法训练营第十四天 | 二叉树理论基础,递归遍历,分别迭代遍历, 统一迭代遍历
    一、二叉树理论基础学习:1.从二叉树是否包含数值进行分类:无数值:完全二叉树和满二叉树有数值的:二叉搜索树和平衡二叉搜索树(AVL,Adelson-VelskyandLandis)。其中二叉搜索树指数值按照从小到大的顺序是左子树<根结点<右子树,平衡指的是左右子树高度差不超过12.二叉树存......
  • 探索星辰大海:成为AIGC大模型领域的精英 - 近屿智能OJAC深度训练营招募中!
    朋友,面对AIGC这股新的AIGC技术革命浪潮,您还在旁观吗? 近屿智能OJAC第六期AIGC星辰大海:大模型工程师和产品专家线上训练营,正在寻找像您这样有梦想、有热情的学员!OJAC的AIGC星辰大海第六期训练营,一个为您量身打造的AI大模型学习之旅,已经开启!成百上千的学员已经通过我们的课程实现了职......
  • 用ColossalAI完成一次完整的预训练
    太难了,累懵了,全是坑...   最近没更新,其实有机会(怎么个机会不细说了)可以玩玩两台新出炉的H100,而且是8卡400GIB的,这两台估计已经超过了库里南的价格了,极其的豪华...   因为我正好没看《乡村爱情15》,我买了个youku会员,可以边看《乡村爱情15》边拿H100跑一跑训练,看看具......
  • 代码随想录算法训练营第二天 | 239. 滑动窗口最大值,347.前 K 个高频元素
    一、239.滑动窗口最大值题目链接:LeetCode239.滑动窗口最大值学习前:思路:无学习后:自定义双端队列,实现push、pop、peek方法,使得队列单调非增。peek方法不变;当入队时,若当前元素比队尾元素大,则pop队尾,直到队列为空或当前元素不大于队尾元素;当出队时,若队列非空且队首元素和窗......