概述
将 Transformer 应用到视觉领域,就形成了 ViT(Vision Transformer)。
与卷积神经网络 CNN 不同,ViT 将图像切分为块并转换为向量,像是处理文本一样处理图像。这让 ViT 拥有了超越 CNN 的全局信息捕捉能力。当训练集数量足够时,ViT 表现优于 CNN。
以下数据来源于 OpenAI 的 CLIP 模型研究。可以看到 CNN 在 ViT 面前毫无招架之力。
Dataset | ImageNet ResNet101 | CLIP ViT-L |
---|---|---|
ImageNet | 76.2% | 76.2% |
ImageNet V2 | 64.3% | 70.1% |
ImageNet Rendition | 37.7% | 88.9% |
ObjectNet | 32.6% | 72.3% |
ImageNet Sketch | 25.2% | 60.2% |
ImageNet Adversarial | 2.7% | 77.1% |
ObjectNet 验证模型对姿势和背景的识别能力;ImageNet Rendition 和 ImageNet Sketch 验证模型识别物体更抽象描绘的能力。
ViT 更是促进了多模态模型的发展。ViT 可以轻松与其他 Transformer 模型融合,诞生出像是拥有视觉阅读能力的语言模型。
只不过……
归纳偏置
ViT 需要更多的训练数据才能达到较好效果,归纳偏置则是罪魁祸首。
归纳偏置(inductive biases),指的是模型在预测其未遇到过的输入结果时,所做的假设。例如 CNN,假设了数据的特征具有局部性和平移不变性,因此 CNN 更喜欢发掘图片的局部特征,并且图片的平移变换几乎不影响 CNN 性能。在现实生活中,我们已经可以看到 CNN 这样的假设是多么的合适在视觉领域大放异彩。
ViT 则缺少 CNN 这样的归纳偏置。图像被切分为块后会被摊平,ViT 需要多得多的学习才能获知子图在空间上的关系。
太慢了
Transformer 从来不是什么轻量化模型的代名词。ViT 不仅有归纳偏置的缺陷,还不得不担上运算资源消耗更高的缺点。
ViT 训练成本更高,也绝对不能像 YOLO 一般轻量且实时。
ViT 的未来
目前看来,CNN 仍然有着自己不可复制的优势。ViT 还不能替代 CNN。
拥有更高能力上限的 ViT 似乎站在了未来。准度更高、泛化更强,且比 CNN 更适合作为多模态模型的桥梁。
我可能会拿预训练的 ViT 模型进行有趣的实验,但若要从头训练还是 CNN 吧。
参考来源
- “CLIP: Connecting text and images”,https://openai.com/index/clip/
- “Why Vision Tranformers?”,https://www.reddit.com/r/MachineLearning/comments/16y1rxz/d_why_vision_tranformers/
- Fahim Rustamy, PhD,“Vision Transformers vs. Convolutional Neural Networks”,https://medium.com/@faheemrustamy/vision-transformers-vs-convolutional-neural-networks-5fe8f9e18efc