先这样答
ViT 和 CNN 的核心区别在于特征提取机制。CNN 依靠局部感受野和权重共享来处理图像。这种机制自带很强的归纳偏置。CNN 对小规模数据非常友好。模型在数据量有限时也能提取有效的图像特征。
ViT 把整张图像切分成多个图像块。模型将这些图像块当作 token 序列处理。ViT 使用全局注意力机制来提取信息。这种结构缺乏 CNN 的归纳偏置。ViT 在小数据集上非常容易过拟合。当训练数据足够大时,ViT 的表现上限比 CNN 更高。全局注意力机制在大数据下能发挥更大作用。
工程面试中需要特别强调 ViT 的架构优势。ViT 与大语言模型的底层架构完全统一。工程师在做多模态融合时流程更顺畅。开发人员可以直接在同一套模型架构下处理图像和文本。
面试官会怎么追问
- 「为什么 ViT 在小数据集上容易过拟合?」 ViT 缺乏 CNN 自带的归纳偏置。模型需要依靠海量数据来学习特征规律。小数据集无法提供足够的信息。模型容易直接记住训练集的数据。
- 「你提到 ViT 多模态融合更顺畅,具体体现在哪里?」 ViT 将图像转换成了 token 序列。这与大语言模型处理文本的方式完全一致。工程师可以直接把图像和文本放在同一个架构下训练。
- 「CNN 的局部感受野和 ViT 的全局注意力有什么差别?」 CNN 依靠局部感受野提取局部特征。模型通过权重共享在整张图像上滑动。ViT 直接使用全局注意力。模型在初始阶段就能关联所有图像块的信息。
回答的坑
- 贬低 CNN 的价值,忽视 CNN 在小数据场景下的优势。
- 遗漏工程视角的对比,忘记点出 ViT 与大语言模型架构统一的好处。
同系列的题
—— 本题完 ——