专栏名称: 极市平台
极市平台是由深圳极视角推出的专业的视觉算法开发与分发平台,为视觉开发者提供多领域实景训练数据库等开发工具和规模化销售渠道。本公众号将会分享视觉相关的技术资讯,行业动态,在线分享信息,线下活动等。 网站: http://cvmart.net/
目录
相关文章推荐
中国能建  ·  再添“新绿”,国家级荣誉+1! ·  昨天  
中国电信  ·  【中奖通知】送1000元话费,来领! ·  3 天前  
51好读  ›  专栏  ›  极市平台

GPT的风也吹到了CV,详解自回归视觉模型的先驱! ImageGPT:使用图像序列训练图像 GPT模型

极市平台  · 公众号  ·  · 2024-04-17 18:27

正文

↑ 点击 蓝字 关注极市平台
作者丨科技猛兽
编辑丨极市平台

极市导读

在 CIFAR-10 上,iGPT 使用 linear probing 实现了 96.3% 的精度,优于有监督的 Wide ResNet,并通过完全微调实现了 99.0% 的精度,匹配顶级监督预训练模型。 >> 加入极市CV技术交流群,走在计算机视觉的最前沿

本文目录

1 自回归视觉模型的先驱 ImageGPT:使用图像序列训练图像 GPT 模型
(来自 OpenAI)
1 ImageGPT 论文解读
1.1 自回归预训练的大视觉模型会不会像 LLM 一样有缩放性
1.2 ImageGPT 方法介绍
1.3 数据集和数据增强策略
1.4 减少序列长度
1.5 模型设置
1.6 自回归预训练实验结果
1.7 BERT 预训练实验结果

太长不看版

本文所受的启发就是 NLP 中领域的无监督表征学习,是自回归视觉模型的先驱。本文训练了 image GPT,一个序列 Transformer 模型,来自回归地预测图片像素,而无需结合 2D 输入结构的先验知识。本文训练时,尽管只是在不含标签的低分辨率 ImageNet 上作训练,但是展示出的 GPT-2 尺度的模型依然能够学习到强力的图像表征 (通过 linear probing,fine-tuning,low-data classification 来度量)。

在 CIFAR-10 上,iGPT 使用 linear probing 实现了 96.3% 的精度,优于有监督的 Wide ResNet,并通过完全微调实现了 99.0% 的精度,匹配顶级监督预训练模型。在将像素替换为 VQVAE 编码时,iGPT 的性能还在自监督的 ImageNet benchmarks 具有竞争力,使用 linear probing 实现了 69.0% 的 top-1 精度。

本文做了什么工作

本文聚焦于 NLP 领域中 GPT 模型的 "给定一些文本 tokens,然后预测下一个 token 是什么" 的范式,将这一范式从 NLP 领域迁移到 CV 领域中。因此,本文的方法称为 iGPT,是个序列 Transformer 模型。例如,把 32×32 的图像按照像素依次排列成一个序列,并使用序列 Transformer 模型建模。训练的目标函数是自回归目标函数。

这样预训练之后得到的 iGPT 模型可以在多个下游任务,比如 ImageNet,CIFAR,STL-10 上得到有前景的精度,并且展示出一些模型容量的规律。本文是将自回归方案引入视觉领域的先驱工作。

1 自回归视觉模型的先驱 ImageGPT:使用图像序列训练图像 GPT 模型

论文名称:Generative Pretraining from Pixels (ICML 2020)

论文地址:

https//cdn.openai.com/papers/Generative_Pretraining_from_Pixels_V2.pdf

官网地址:

https//openai.com/research/image-gpt

  • 1 ImageGPT 论文解读:

1.1 无监督学习在视觉的应用

无监督预训练在深度学习的复兴中起着核心的作用。从 2000 年代中期开始,深度置信网络 (Deep Belief Network)[1]和去噪自动编码器 (Denoising Autoencoder) [2]等方法通常用于计算机视觉和语音识别的神经网络。随着分段线性激活函数[3],改进的初始化策略[4]和归一化策略[5][6]等等方法的出现无监督预训练的必要性在逐步被消除。

无监督的预训练在 NLP 领域中也蓬勃发展。在词向量[7]之后,它推动了自然语言处理在大多数任务上的应用。有趣的是,BERT 等方法的训练目标,即预测损坏的输入,与最初为图像开发的去噪自动编码器的训练目标非常相似。

从模态上讲,图像比文本的维度更高、更嘈杂,且更加冗余,因此被认为难以做生成建模。考虑到生成式预训练方法对于 NLP 领域的重大影响,这种方法值得再审视,并与最近的自监督方法作比较。本文重新评估图像上的生成式预训练,并证明使用 Transformer + 自回归式预训练得到的生成式预训练模型与其他自监督方法相比同样具有竞争力。

1.2 ImageGPT 方法介绍

ImageGPT 方法包括一个预训练阶段和一个微调阶段。在预训练中,作者探索了自回归和 BERT 目标函数,还应用序列 Transformer 架构来预测像素 token,而非语言 token。

微调 (Finetuning): 衡量图像表征质量的一种方法是在图像分类任务上做微调。微调在模型中添加了一个小的分类头,用于优化分类目标并且再训练所有权重。

线性探针 (Linear Probing): 另一种衡量表示质量的方法是线性探针。它使用预训练模型作为特征提取器: 给定标记示例 ,该模型输入 以产生特征 。然后在 上训练线性分类器。线性探测的直觉是: 好的特征应该可以线性分离待迁移的任务。此外,线性探针有助于将特征质量与模型架构分开: 在微调中,一个模型比另外一个更好的原因不是因为其学到的特征更好,而是其架构可能更适合这个下游任务。

预训练

如图1所示,给定无标签数据集 ,包含数据 ,可以选择集合 的排列 ,并对概率密度 进行自回归建模:

其中,排序的策略选择恒等排序: , for ,也被称为光棚顺序。通过最小化数据的负对数似然来训练 iGPT 模型:

通过最小化 BERT 目标函数来训练 IGPT 模型: 采样一个子序列 ,即每个索引都有 0.15 的概率进入集合 ,称 为 BERT 掩码,通过最小化 "未掩码" 元素 的负对数似然来训练模型:

在预训练中,作者选择了 的其中之一,并最小化了预训练数据集上的损失。

图1:iGPT 对图片的分块操作以及两种目标函数,以及评估策略

模型框架

iGPT 遵循 GPT2 的设计使用 Transformer Decoder。给定输入图片序列 ,为每个 patch 计算一个 embedding。Decoder 使用 个堆叠的块,其中第 个块的输出是一组 维度的向量 。作者对每个块内部的操作如下:

跨序列元素的混合操作只发生在注意力操作里面。为了适配自回归的训练范式,作者将标准的上三角掩码应用于注意力矩阵中。当使用 BERT 目标函数时,不需要对注意力进行掩码。

而且,由于 iGPT 为每个序列 token 学习独立的位置嵌入,BERT 模型没有位置归纳偏差 (即它是置换不变的)。模型在训练时必须学习位置之间的任何空间关系。AR 模型就不是这样,因为选择光棚顺序其实也是使用了预先指定的顺序。

在最后一个Transformer 块之后,作者计算 layer_norm ,并设置一个可学习的投影层从 映射到逻辑输出。在训练 BERT 时,忽略未掩码位置的逻辑输出。iGPT 遵循 GPT2 的设计使用 Transformer Decoder。给定输入图片序列 ,为每个 patch 计算一个 embedding。Decoder 使用 个堆叠的块,其中第 个块的输出是一组 维度的向量 。作者对每个块内部的操作如下:

跨序列元素的混合操作只发生在注意力操作里面。为了适配自回归的训练范式,作者将标准的上三角掩码应用于注意力矩阵中。当使用 BERT 目标函数时,不需要对注意力进行掩码。

而且,由于 iGPT 为每个序列 token 学习独立的位置嵌入,BERT 模型没有位置归纳偏差 (即它是置换不变的)。模型在训练时必须学习位置之间的任何空间关系。AR 模型就不是这样,因为选择光棚顺序其实也是使用了预先指定的顺序。

在最后一个Transformer 块之后,作者计算 layer_norm ,并设置一个可学习的投影层从 映射到逻辑输出。

微调

在微调时,首先在序列维度上对 作 Pool 操作,得到一个 维向量:

再设置一个可学习的投影层从 映射到逻辑输出,并使用这个输出计算交叉嫡损失函数 ,并发现使用联合损失函数 效果更好。

线性探测

在线性探测时,首先在序列维度上对 作 Pool 操作,得到一个 维向量:

最佳特征通常位于网络的中间。与微调一样,再设置一个可学习的投影层从 映射到逻辑输出,并使用这个输出计算交叉摘损失函数

1.3 数据集和数据增强策略

尽管有监督的预训练是图像分类的主要范式,但管理大型标注图像数据集既昂贵又耗时。本文希望从更大的可用无标记图像集中学习通用的表征,并对其进行微调以进行分类。本文使用 ImageNet 作为大型未标记的图像数据集,并使用小的有标注数据集 (CIFAR-10、CIFAR-100、STL-10) 来作为下游任务的代理。

数据增强: 训练时随机调整图像的大小,使较短的边长在 [256,384] 范围内。接下来取一个随机的 224×224 裁剪。推理时调整了图像的大小,使得较短的边长为 224,并使用 224×224 中心裁剪。

当对 CIFAR-10 和 CIFAR100 进行微调时,使用 Wide Residual Networks 的数据增强方式:每边填充4个像素,并从填充图像或其水平翻转中随机采样 32×32 裁剪。

1.4 减少序列长度

由于 Transformer Decoder 的内存要求在使用密集注意力时与上下文长度呈二次方关系,因此必须采用进一步的措施减少序列长度。如果在长度为 的序列上训练一个 Transformer,那么注意力的维度将会比语言模型大很多,甚至单层也不适合 GPU 训练。为了解决这个问题,作者首先将图像大小调整为较低的分辨率,iGPT 模型的输入分辨率 (Input Resolution, IR) 为

但是即便是 的输入分辨率,计算仍然相当密集。低于这个大小,先前的工作已经证明了人类在图像分类上的表现开始迅速下降。当使用 的 IR 时,改为通过使用 的 k-means 聚类 ( 像素值进一步将上下文大小减少 3 倍。当使用 的 IR 时,使用 VQ-VAE 。VQ-VAE 可以对图像进行下采样并将输入分辨率控制在 。latent vocabulary size 设置为 4096 。

1.5 模型设置

最大的模型 iGPT-L 与 GPT-2 基本相同: 都包含 层,但 iGPT 使用 的嵌入维度,使得参数计数略有下降。iGPT 使用与 GPT-2 相同的模型代码,只是以 Sparse Transformer







请到「今天看啥」查看全文