探索视觉变换器 (ViT) 在计算机视觉中的强大功能。了解它们如何通过捕捉全局图像上下文来超越 CNN。
Vision Transformer(ViT)是计算机视觉领域的重大变革,它将最初为自然语言处理开发的 Transformer 架构应用于图像识别任务。与逐层处理图像的传统卷积神经网络(CNN)不同,ViT 将图像分解成更小的片段,并将这些片段视为序列中的标记,就像句子中的单词一样。这种新颖的方法使 ViTs 能够利用变换器强大的自我注意机制来捕捉图像中的全局关系,从而在各种计算机视觉任务中实现最先进的性能。
视觉变换器的核心是处理图像,首先将图像划分为固定大小的斑块网格。然后将这些斑块平铺并线性转换为嵌入,嵌入本质上是矢量表示。位置嵌入被添加到这些斑块嵌入中,以保留对理解图像结构至关重要的空间信息。然后,将这一系列嵌入补丁输入标准变换器编码器。
变压器编码器由多层多头自注意和前馈网络组成。其中最关键的部分是自注意机制,它允许模型在处理图像时权衡每个补丁相对于所有其他补丁的重要性。这使得 ViT 能够理解图像的全局背景,捕捉到长程依赖性,而只关注局部特征的 CNN 可能会忽略这些依赖性。对全局背景的理解是视觉转换器的主要优势。要深入了解其基本原理,Jay Allammar 的 "图解变形器 "等资源为变形器架构提供了极佳的视觉解释。
视觉变换器因其令人印象深刻的性能和可扩展性而迅速崭露头角。它们捕捉全局上下文的能力以及从大型数据集中获益的能力,使它们在现代深度学习应用中具有高度相关性。视觉变换器的主要应用包括
实际应用遍及各行各业。在医疗保健领域,虚拟技术有助于医学图像分析,从而改进诊断。在农业领域,它们可加强作物监测和疾病检测。此外,正如NVIDIA Jetson 和 Raspberry Pi 指南中所探讨的,它们的效率和准确性使其适合部署在边缘设备上。
CNN 长期以来一直是计算机视觉领域的主流架构,而 Vision Transformers 则提供了一种根本不同的方法。CNN 擅长通过卷积层捕捉局部模式,因此对于局部特征至关重要的任务而言,CNN 是高效的。然而,它们有时在捕捉长距离依赖关系和全局背景方面会遇到困难。而 ViTs 则能通过自我关注机制捕捉全局背景,在需要全面了解场景的任务中具有优势。
尽管 ViT 有其优势,但与 CNN 相比,ViT 通常需要更大的数据集进行训练,才能达到最佳性能。对于较小的数据集和侧重于局部特征提取的任务,CNN 的计算效率更高。在视觉变换器和 CNN 之间做出选择通常取决于具体应用、数据集大小和可用计算资源。视觉变换器代表了计算机视觉领域的重大发展,展示了注意力机制的力量,并为该领域未来的进步铺平了道路。