阜新建设网站,谁给个网站啊急急急2021,东莞建站响应式网站多少钱,网站数据分析平台摘要
计算机视觉任务中#xff0c;探索大规模预训练基础模型具有重要意义#xff0c;因为这些模型可以可以极快地迁移到下游任务中。本文提出的CoCa#xff08;Contrastive Captioner#xff09;#xff0c;一个极简设计#xff0c;结合对比损失和captioning损失预训练一…摘要
计算机视觉任务中探索大规模预训练基础模型具有重要意义因为这些模型可以可以极快地迁移到下游任务中。本文提出的CoCaContrastive Captioner一个极简设计结合对比损失和captioning损失预训练一个image-text encoder-decoder基础模型该模型包含对比方法如CLIP和生成方法如SimVLM的学习能力。与基本的encoder-decoder transformer使用所有的decoder层来编码输出不同CoCa在上半部分的decoder中舍去cross-attention来编码unimodel单模态文本表示然后级联剩下的decoder结合image encoder用于multimodel图文对表示。在单模态的图像和文本表示之间使用对比损失函数对多模态decoder的输出应用captioning损失来自动预测文本tokens。通过共享相同的计算图两个训练目标以最小的开销有效地训练。CoCa在网络文本数据和带注释的图像数据上进行预训练图像的标签被简单视为文本来学习特征表示。此外CoCa在零样本迁移和各种特定的下游任务上都取得了最好的效果包含视觉识别ImageNetKinetics-400/600/700Moments-in-Time检索多模型理解和图像字幕。在图像分类任务上CoCa的zero-shot取得86.3%的top-1准确率linear probe取得90.6%微调上取得91.0%的精度。
Introduction
深度学习最近已经见证了基础语言模型的兴起例如BERTT5GPT-3该模型使用大规模数据进行预训练并通过零样本、少样本或迁移学习展示通用多任务处理能力。与专用模型相比针对大量下游任务的预训练基础模型可以摊销训练成本。 对于视觉和视觉-语言问题几个基础模型已经进行探究过
Single-encoder model之前的工作验证了single-encoder模型的有效性该模型在图像分类数据集如ImageNet上使用交叉熵损失函数进行预训练。模型的编码器提供通用的视觉特征表示可以在各种图像和视频理解的下游任务上进行微调。但是这些模型非常依赖于图像的标注同时不涉及任何自然语言知识阻碍其在视觉和语言多模态的下游任务上的应用。 Dual-encoder model指的是CLIP这一条线上的研究。利用海量从网络上采集的图文对以对比损失函数优化两个encoder即image encoder和text encoder分别对图像和文本进行独立编码。CLIP模型在zero-shot图像分类任务和图像-文本检索上都取得出色的成绩但是由于CLIP是图像和文本独立编码且编码过程中没有任何图像和文本侧的交叉只在最后计算余弦相似度缺少图像和文本的融合表示因此不适用于VQA等需要对图像和文本联合理解的任务。 Encoder-Decoder model这种模型使用encoder-decoder的结构encoder侧对图像进行编码decoder侧学习一个跨模态的语言模型预测图像对应的文本。这种生成式方法天然适用于看图说话任务并且图像和文本在encoder-decoder的attention交互有助于多模态信息融合适用于多模态理解相关任务。缺点在于没有像CLIP一样生成单独的文本表示不能灵活应用到图文匹配任务中。 CoCa统一上面三种范式训练一个图像-文本模型既可以生成图像侧和文本侧的单独表示又能进行更深层次的图像、文本信息融合适用于更广泛的任务。
模型结构
介绍CoCa网络结构之前首先回顾一下之前三种基础模型的不同之处。
Single-Encoder Classification该方法使用一个大型图像标注数据集如ImageNet、Instagram、JFT来训练一个视觉encoder。这些图像标签通常使用交叉熵损失函数来映射到固定的类别空间分布中公式如下。 L c l s − p ( y ) l o g q θ ( x ) L_{cls}-p(y)logq_{\theta}(x) Lcls−p(y)logqθ(x)
Dual-Encoder Contrastive Learning该方法使用海量从网络上采集的图像对进行训练以对比损失函数优化image和text encoder公式如下 L c o n − 1 N ( ∑ i N l o g e x p ( x i T y i / σ ) ∑ j 1 N e x p ( x i T y i / σ ) e x p ( y i T x i / σ ) ∑ j 1 N e x p ( y i T x i / σ ) ) L_{con}-\frac{1}{N}(\sum_i^Nlog\frac{exp(x_i^Ty_i/\sigma)}{\sum_{j1}^Nexp(x_i^Ty_i/\sigma)}\frac{exp(y_i^Tx_i/\sigma)}{\sum_{j1}^Nexp(y_i^Tx_i/\sigma)}) Lcon−N1(i∑Nlog∑j1Nexp(xiTyi/σ)exp(xiTyi/σ)∑j1Nexp(yiTxi/σ)exp(yiTxi/σ)) 其中 x i x_i xi和 y j y_j yj分布为图像和文本的归一化编码。 σ \sigma σ为温度系数来缩放逻辑值。
Encoder-Decoder Captioningencoder侧对图像进行编码decoder侧学习一个跨模态的语言模型预测图像对应的文本损失函数如下 L c a p − ∑ t 1 T l o g P θ ( y t ∣ y t , x ) L_{cap}-\sum_{t1}^TlogP_{\theta}(y_t|y_{t},x) Lcap−t1∑TlogPθ(yt∣yt,x) 如下图所示CoCa模型的整体框架包含3个部分一个encoderimage encoder和两个decoderUnimodel Text Decoder和Multimodel Text Decoder。Image Encoder采用图像模型对图像进行编码例如ViT等。Unimodel Text Decoder和CLIP中的text encoder类似用于提取文本的特征是一个不和图像侧进行信息交互的文本解码器。Unimodel Text Decoder和Image Encoder之间没有cross attention而MultiMode Text Decoder建立在Unimodel Text Decoder之上和Image Encoder进行交互生成图像和文本交互信息并解码还原对应文本。 整个模型的损失包括对比学习和看图说话两部分。损失函数如下 L C o C a λ c o n ∗ L c o n λ c a p ∗ L c a p L_{CoCa}\lambda_{con}*L_{con}\lambda_{cap}*L_{cap} LCoCaλcon∗Lconλcap∗Lcap 单模态文本decoder生成文本编码末尾的cls token包含文本统一表示和图像侧编码进行对比学习。多模态文本编码部分和图像侧编码输出进行更深入交互生成文本预测结果。 此外CoCa采用attention pooling的方式融合图像侧信息。对于图像识别任务使用单个图像编码获取全局表示效果更好而对于多模态理解任务需要更多视觉tokens获取局部特征。因此CoCa在图像侧使用attention pooling既可以提取一个统一的编码也可以提取每个token的表示。对于生成式任务会用一个维度为256的query进行attention而对比学习则采用维度为1的query提取全局信息。
实验结果
预训练设置
DataCoCa使用JFT-3B和ALIGN两个数据集从头开始训练模型不同于之前的模型首先使用交叉熵损失函数预训练一个图像编码器CoCa直接从头开始训练所有参数。 Optimizationbatch size设置为65536其中每个batch中的数据来自JFT和ALIGN数据集各一半。训练步数为500k大约是JFT训练5个epochALIGN训练10个epoch。优化函数采用Adafactor β 1 0.9 , β 2 0.999 \beta_10.9,\beta_20.999 β10.9,β20.999权重衰减率为0.01。CoCa预训练的输入大小为288×288patch size为18×18之后又以576×576的分辨率训练了一个epoch。
实验结果
CoCa在图像分类、图文检索、看图说话等多个任务上都取得非常亮眼的效果。下图为CoCa在多个任务上的效果对比可以看到CoCa在多个任务和数据集上都达到SOTA在ImageNet上达到91%的效果。
视觉识别任务
CoCa分别在图像分类数据集ImageNet和视频数据集Kinetics-400, 600, 700上进行实验验证其有效性。实验过程中的超参数设置如下。 冻结CoCa的预训练权重然后在数据集上进行训练在相同的设置下与其他模型进行对比效果如下可以看到CoCa已经取得较好的Top-1精度同时在视频任务上超过之前的SOTA方法。进一步微调CoCa的encoder在所有数据集上效果都有提升在ImageNet上取得新的SOTA达到91%的Top-1值。
跨模式对齐任务
在该任务中CoCa的所有参数冻结直接用来提取特征进行zero-shot在这部分多模态decoder没有被使用。
零样本图文检索
CoCa在MSCOCO和Flickr30K两个基础的图文检索数据集上进行测试。按照CLIP的测试方法首先分别输入图像/文本到对应的encoder中得到测试集中所有的图像/文本embeddings然后通过余弦相似度召回。如下图所示CoCa在所有评价指标上都超过之前方法很多。结果显示CoCa可以学习到很好的单模态表示并且跨膜态对齐它们。
零样本图像分类
如下图所示CoCa在ImageNet上取得一个新的SOTA零样本图像分类结果。此外通过对比平均值可以知道CoCa具有较好的泛化性。
零样本视频检索
CoCa在MSR-VTT数据集上测试视频-文本检索效果。如下图所示CoCa在text-to-video和video-to-text召回上都取得最好的效果。
多模态理解任务
CoCa一个关键的优势在于其可以像encoder-decoder模型一样处理多模态embeddings因此CoCa可以进行看图描述和多模态理解任务。
多模态理解
CoCa分别在VQA、SNLI-VE、NLVR2上进行多模态理解任务测试如下图所示CoCa效果超过最强的视觉语言预训练模型同时在这三个任务上都取得了SOTA。
看图说话
除了多模态分类任务CoCa同样可以直接应用到看图说话任务中。使用captioning损失函数在MSCOCO数据集上微调CoCa然后进行MSCOCO的Karpathy-test子集测试同时在线测试NoCaps数据集。如下图所示Coca在MSCOCO数据集上超越使用交叉熵损失训练的最强模型。在NoCaps测试上CoCa分别在测试和验证子集上取得SOTA。
结论
本文提出了一个新的图像文本基础模型CoCa融合了已有的图像预训练范式。CoCa可以使用图像文本对进行端到端训练并在encoder-decoder范式中有效地对比和caption损失。最重要的是CoCa在一系列下游任务中都取得了最好的效果。