ViT暂时不会替代CNN
概述#
将 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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通