网站开发与移动互联,广州哪个公司做网站,长沙网上商城开发,wordpress 多重筛选插件一、CLIP
全称为Contrastive Language-Image Pre-Training用于做图-文匹配#xff0c;部署在预训练阶段#xff0c;最终理解为图像分类器。
1.背景
以前进行分类模型时#xff0c;存在类别固定和训练时要进行标注。因此面对这两个问题提出CLIP#xff0c;通过这个预训练…一、CLIP
全称为Contrastive Language-Image Pre-Training用于做图-文匹配部署在预训练阶段最终理解为图像分类器。
1.背景
以前进行分类模型时存在类别固定和训练时要进行标注。因此面对这两个问题提出CLIP通过这个预训练模型实现zero-shot并且判断类别不是固定的即增加类别也不用重新训练模型。CLIP在完全不使用ImageNet中的数据训练前提下直接zero-shot得到的结果与resnet在Imagenet数据训练后效果一样同时CLIP的数据是从网络上爬取的4亿文本对。
2.网络模型 通过上图左边我们得知在预训练时有两个模型一个是Bert模型做文字方面的Text Encoder一个是ViT模型做图像方面Image Encoder。
本文对图片信息和文字描述对应的是从网络上爬取的有4亿对数据但是因为都是从网络上爬取的所以可能会有错也就是说带有噪声存在的问题。从4亿对数据中我们批次拿取batchsize为3万对的数据来进行encoder变成768维的向量。经过大量的正向传播和反向传播之后那么中间的值会越来越对齐。
过程》假设有5张图片和5段文本一张图片和一段文本是对应的。然后经过对应的Text Encoder和Image Encoder分别生成五个图片编码和文字编码然后图片编码和文字两两相互之间计算相似度选相似度最高作为一对正样本否则就是负样本所以正样本个数为N负样本为NN-1。这里是对比学习的思想也就是Text Encoder和Image Encoder是在不断迭代的。
上图右边进行测试给出图片然后给出类别种类得出图片的编码文字类别时加入提示词组成一个完整的话语然后再经过编码器得到文字编码然后让图片编码和文字编码计算相似度相似度最高的那么这个图片描述的信息就是文字信息类别也就是文字类别。
CLIP的核心思想就是通过海量的弱监督文本对通过对比学习将图片和文本通过各自的预训练模型获得的编码向量在向量空间上对齐。
3.结果
只能和resnet50网络进行比较但是resnet50网络不是最强的同时收集数据的时候很多文本对存在噪声。不过经过对比学习Image Encoder模型和Text Encoder模型是越来越强用于下游任务中能帮助其他模型快速得到准确率高的结果
二、BLIP
BLIP能完成图-文匹配同时也能完成生成任务即文字生成图片和图片生成文字。
1.背景
视觉语言预训练旨在利用图像文本数据来教会模型共同理解视觉和文本信息的能力但是大多数现有的预训练模型不够灵活无法适应广泛的视觉语言任务并且大多数模型都会对从网络自动收集的图像和替代文本对进行预训练然而网络自动收集数据存在大量噪声。而BLIP模型与三个视觉语言目标联合预训练图像文本对比学习、图像文本匹配和图像条件语言建模且提出字幕和过滤一种新的数据集增强方法用于从噪声图像-文本对中学习。
2.网络模型
1网络模型 其中cross attention和causal self-att分别为 流程步骤
①首先是对图片进行ViT分片的一样操作然后传入给transformer的编码器输出一个向量这个向量代表了图片是所有特征768维度。右边的“三个模型”相同颜色的块共用同样的参数。
②第一个模型把文字做好向量化再加上cls表示分类任务特殊符号ViT中的概念然后进入双向自注意力可以理解为和bert一样然后进入Feed Forward其实就是两个全连接层最后得到一个文本向量768维度然后进行ITC对比学习是不是一对一对概率高不是一对概率低两个向量尽量对齐。
③中间的模型是把从图片得到的向量和文本向量进行交叉注意力然后再FFN最后就是ITM二分类任务
④最后一个模型对于文本是一个一个的输入然后让其推理预测下一个字Causal self-att表示单项注意力机制LM就是重新把文本预测出来。
2噪声模型 为了解决网络收集到的大规模数据中存在图像文本不配对的这个问题BLIP通过引入两个模块来引导字幕字幕生成器Captioner和过滤器Filter。字幕生成器是一个基于图像的文本解码器给定网络图像我们使用字幕生成器合成字幕作为额外的训练样本。过滤器是一个基于图像的文本编码器它会删除与相应图像不匹配的嘈杂文本。
步骤流程
①上图的左边D中的Iw和Tw分别表示图像和文本红色的表示从网络爬取下来可能会出现不匹配Ih和Th绿色的表示人为进行处理的数据对它们匹配的。
②然后我们把这些数据放到刚才的模型中进行训练我们就能得到几个训练完之后的模型ITC、ITM和LM。对于得到的模型我们大概能分为两种类型其中ITC图文匹配对齐和ITM图文匹配二分类为一类而LM看图生成文字为一类。
③训练好的模型再把人为处理匹配对的图文分别送到ITC ITM图文匹配和LM看图生成文字的模型中进行训练。
④对于ITC ITM图文匹配的模型我们把从网络上找的图文匹配对进行训练如果该文本对是匹配的就往后传如果不匹配就把这个文本对丢弃。
⑤对于LM看图生文字模型我们把从网络爬取的图片进行训练只要图片训练之后得到文字再把生成的文字再放到前面的ITC ITM图文匹配模型上进行训练如果匹配成功就留下也就是说模型生成的文字和图片是匹配的不成功就丢弃。
经过以上的步骤就能找到干净的数据得到的干净数据再重新送到预训练模型中作为数据再得到ITC、ITM和LM。
3.结果 这个网络框架得到的模型和数据能用于下游任务中帮助其他模型快速得到准确率高的结果。