论文阅读——BLIP

BLIP: Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation

(1)单模态编码器,它分别对图像和文本进行编码。图像编码器用ViT,并使用附加的 [CLS] 标记来表示全局图像特征。文本编码器与 BERT 相同(Devlin et al., 2019),其中 [CLS] 标记附加到文本输入的开头以总结句子。

(2)基于图像的文本编码器,通过在文本编码器的每个变换器块的自注意(SA)层和前馈网络(FFN)之间插入一个额外的交叉注意(CA)层来注入视觉信息。特定于任务的 [Encode] 标记被附加到文本中,并且 [Encode] 的输出嵌入用作图像-文本对的多模态表示。

(3)基于图像的文本解码器,用因果自注意力层替换基于图像的文本编码器中的双向自注意力层 [Decode] 标记用于表示序列的开始,序列结束标记用于表示序列的结束。

三个损失:

Image-Text Contrastive Loss (ITC)

Image-Text Matching Loss (ITM):

        图像文本匹配损失(ITM)激活图像文本编码器。它的目的是学习图像文本多模态表示,捕获视觉和语言之间的细粒度对齐。 ITM 是一项二元分类任务,其中模型使用 ITM 头(线性层)来预测图像文本对在给定多模态特征的情况下是正(匹配)还是负(不匹配)。

Language Modeling Loss (LM):

        语言建模损失(LM)激活基于图像的文本解码器,其目的是根据给定的图像生成文本描述。它优化了交叉熵损失,训练模型以自回归方式最大化文本的可能性。在计算损失时,我们应用 0.1 的标签平滑。与 VLP 中广泛使用的 MLM 损失相比,LM 使模型具有泛化能力,可以将视觉信息转换为连贯的字幕。

CapFilt:处理网络图像文本对数据大量噪声

我们提出了字幕和过滤(CapFilt),这是一种提高文本语料库质量的新方法。图 3 给出了 CapFilt 的图示。它引入了两个模块:一个用于在给定网络图像的情况下生成字幕的字幕生成器,以及一个用于消除噪声图像文本对的过滤器。字幕生成器和过滤器都是从相同的预训练 MED 模型初始化的,并在 COCO 数据集上单独进行微调。微调是一个轻量级的过程。具体来说,字幕生成器是一个基于图像的文本解码器。它通过 LM 目标进行微调,以解码给定图像的文本。

给定网络图像 Iw,字幕生成器生成合成字幕 Ts,每个图像一个字幕。该过滤器是一个基于图像的文本编码器。它根据 ITC 和 ITM 目标进行了微调,以了解文本是否与图像匹配。该过滤器会去除原始网络文本 Tw 和合成文本 Ts 中的噪声文本,其中如果 ITM 头预测文本与图像不匹配,则文本被认为是噪声文本。最后,我们将过滤后的图像文本对与人工注释对结合起来形成一个新的数据集,我们用它来预训练新模型。

实验:

模型在 PyTorch 中实现,并在两个 16-GPU 节点上进行预训练。图像转换器是从 ImageNet 上预训练的 ViT 初始化的,文本转换器是从 BERTbase 初始化的。

使用 AdamW (Loshchilov & Hutter, 2017) 优化器,权重衰减为 0.05。学习率预热至 3e-4 (ViT-B) / 2e-4 (ViT-L),并以 0.85 的速率线性衰减。我们在预训练期间随机采集分辨率为 224 × 224 的图像,并在微调期间将图像分辨率提高到 384 × 384。我们使用预训练数据集总共 1400 万张图像,包括两个人工注释数据集(COCO 和 Visual Genome )和三个网络数据集(Conceptual Captions 、Conceptual 12M),SBU captions)。我们还尝试了另一个网络数据集 LAION,其中包含 1.15 亿张图像,其中文本噪声较多1。

 CapFilt 可以通过更大的数据集和更大的视觉主干进一步提高性能,这验证了其在数据大小和模型大小方面的可扩展性。

   

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

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

相关文章

springcloud:4.1 GateWay

概述 Gateway 简介 Spring Cloud Gateway基于Spring 5.0、SpringBoot 2.0和Project Reactor等技术开发 旨在为微服务架构提供一种简单有效的、统一的API路由管理方式,并为微服务架构提供安全、监控、指标和弹性等功能 其目标是替代Zuul特点 易于编写谓词和过滤器&…

解决谷歌浏览器最新chrome94版本CORS跨域问题

项目场景: 谷歌浏览器升级到chrome94版本出现CORS跨域问题 问题描述 解决谷歌浏览器最新chrome94版本CORS跨域问题。 CORS跨域问题: 升级谷歌浏览器最新chrome94版本后,提示Access to XMLHttpRequest at ‘http://localhost:xxxx/api’ fro…

zabbix企业微信接入结合海螺问问编写的shell脚本

前言 博客懒得写详细了,视频剪的累死了,看视频就好了 白帽小丑的个人空间-白帽小丑个人主页-哔哩哔哩视频 shell脚本 #!/bin/bash #set -x CorpID"" #我的企业下面的CorpID Secret"" #创建的应用那…

【Numpy】(3)数组操作

索引 基本索引 NumPy索引类似于Python列表的索引,但它提供了更多的功能。对于一维数组,你可以使用整数索引访问特定位置的元素: import numpy as nparr = np.array([1, 2, 3, 4]) print(arr[2]) # 输出:3对于多维数组,你可以使用逗号分隔的索引元组来访问元素: arr …

C++:什么情况下函数应该声明为纯虚函数

在C中,函数应该在以下情况下声明为纯虚函数: 抽象基类:当你希望定义一个基类,该基类不能被实例化,只能作为其他类的基类时,你应该在基类中声明至少一个纯虚函数。这样的基类被称为抽象基类。纯虚函数通过在…

python实现多进程循环共享内存队列

python实现多进程循环共享内存队列 python >=3.8 1、原理流程 生产者消费者模式: 创建一个size大小的共享内存列表,前三个分别保存头指针、尾指针、锁 一个进程生产数据 多个进程消费数据 消费数据时通过锁来保证已消费的数据不能再被取出,已消费的数据置为None1、创建…

C到C++的敲门砖-1

文章目录 关键字命名空间输入和输出缺省参数函数重载 关键字 相较于C语言32个关键字: autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilesta…

全量知识系统“全基因序列”程序构想之1

序 这段时间使用AI工具来完善系统的设计。这几天的话题一直都是 使设计可能完成的一个起点,就是“全基因序列”。从这个文字表述上就可以看出,它将可能是需求文档、程序概要结构和数据库三部分的融合体。 计划从今天开始 深入这个话题,目标…

Everything:文件查找工具,一搜即得

名人说:东边日出西边雨,道是无晴却有晴。——刘禹锡 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 一、软件介绍①Everything②核心功能③原理二、下载安装①下载②安装三、使用方法①文件搜索②高级搜索③快捷唤起四、总结

用python写网络爬虫:2.urllib库的基本用法

文章目录 urllib库抓取网页data参数timeout参数更灵活地配置参数登录代理Cookies 参考书籍 建议新入门的小伙伴先看我同一专栏的文章:用python写网络爬虫:1.基础知识 urllib库 urllib是python中一个最基础的HTTP库,一般是内置的,…

spotbugs不兼容IDEA2023.2

运行时出现报错,之后spotBugs就是灰色的了 spotbugs java.lang.LinkageError: loader constraint violation: when resolving method org.slf4j.ILoggerFactory org.slf4j.impl.StaticLoggerBinder.getLoggerFactory() the class loader com.intellij.ide.plugins.…

2024年 前端JavaScript Web APIs 第三天 笔记

3.1-表单全选反选案例 <!DOCTYPE html><html><head lang"en"><meta charset"UTF-8"><title></title><style>* {margin: 0;padding: 0;}table {border-collapse: collapse;border-spacing: 0;border: 1px solid …

网络安全实训Day5

写在前面 昨天忘更新了......讲的内容不多&#xff0c;就一个NAT。 之前记的NAT的内容&#xff1a;blog.csdn.net/Yisitelz/article/details/131840119 网络安全实训-网络工程 NAT 公网地址与私网地址 公网地址 可以在互联网上被寻址&#xff0c;由运营商统一分配全球唯一的I…

在 Windows 上利用Qwen大模型搭建一个 ChatGPT 式的问答小助手

本文首发于公众号&#xff1a;Hunter后端 原文链接&#xff1a;在 Windows 上利用Qwen大模型搭建一个 ChatGPT 式的问答小助手 最近 ChatGPT 式的聊天机器人比较火&#xff0c;可以提供各种问答功能&#xff0c;阿里最近推出了 Qwen1.5 系列的大模型&#xff0c;提供了各个参数…

在线BLOG网|基于springboot框架+ Mysql+Java+JSP技术的在线BLOG网设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究…

【C#算法实现】可见的山峰对数量

文章目录 前言一、题目要求二、算法设计及代码实现2.1 算法思想2.2 代码实现 前言 本文是【程序员代码面试指南&#xff08;第二版&#xff09;学习笔记】C#版算法实现系列之一&#xff0c;用C#实现了《程序员代码面试指南》&#xff08;第二版&#xff09;栈和队列中的可见的…

OpenCV-Java 开发简介

返回目录&#xff1a;OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a; 如何在“Microsoft Visual Studio”中使用OpenCV编译应用程序 下一篇&#xff1a;暂无 ​ 警告&#xff1a; 本教程可能包含过时的信息。 从 OpenCV 2.4.4 开始&…

代码随想录Day48:买卖股票的最佳时机、买卖股票的最佳时机II

买卖股票的最佳时机 class Solution { public:/*dp[i][0]第i天持有股票所得的最大现金&#xff1b;dp[i][1]第i天不持有股票所得的最大现金&#xff1b;dp[i][0] max(dp[i-1][0], - prices[i]);dp[i][1] max(dp[i-1][1], dp[i-1][0] prices[i]);*/int maxProfit(vector<…

VB.NET高级面试题:什么是 VB.NET?与 Visual Basic 6.0 相比有哪些主要区别?

什么是 VB.NET&#xff1f;与 Visual Basic 6.0 相比有哪些主要区别&#xff1f; VB.NET是一种面向对象的编程语言&#xff0c;是微软公司推出的.NET平台上的一种编程语言&#xff0c;用于构建Windows应用程序、Web应用程序和Web服务等。它是Visual Basic的后续版本&#xff0…

面试算法-36-无重复字符的最长子串

题目 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”&#xff0c;所以其长度为 3。 解 class Solution {public int lengthOfLongestSubstring(String …