从信息提取的角度思考,图片为什么要输入——>网络模型(卷积神经网络(ResNet系列)对比 ViT (Vision Transformer))
1. 卷积核的工作原理:
特征提取:卷积核通过在输入图像(或特征图)上滑动来提取特征。每个卷积核负责从输入数据中提取一种特定类型的特征,例如边缘、颜色变化、纹理等。
权重和偏置:每个卷积核都有一组权重和一个偏置项,这些参数在训练过程中通过反向传播算法进行学习和更新。卷积操作本质上是对卷积核权重和输入图像片段(卷积核覆盖的区域)的元素进行 加权求和,然后 加上偏置项。
激活函数:卷积操作的输出通常会通过一个非线性激活函数(如ReLU)进行处理,以引入非线性特性,这对于学习复杂的特征和模式是必要的。
多个卷积核:CNN层通常包含多个不同的卷积核,每个卷积核都可以捕捉输入数据的不同特征。这些不同的卷积核在相同的输入数据上进行操作,但由于它们的权重不同,因此可以提取不同的信息。
2. ViT 线性映射
ViT的架构主要基于Transformer模型,这是一种主要依靠自注意力机制(self-attention)来处理数据的方法。ViT模型的核心是将图像划分为一系列的小块(patches),这些小块被 线性投影 (通过全连接层,而非卷积层)到一个高维空间,并作为序列输入到一个标准的Transformer模型中。Transformer模型通过自注意力机制来处理这些序列,从而学习图像的全局特征。
在ViT的设计中,图像的每个patch都被单独处理,而不是通过传统CNN中的卷积操作来提取特征。这一点是ViT和基于卷积的网络(如CNN)的主要区别之一。自注意力机制允许模型在处理每个patch时考虑到与它相关的所有其他patches,而不是依赖于固定大小的卷积窗口**(感知野)**。
结论:
从特征图的角度思考(信息提取)
1.(卷积, ViT映射——>都是线性变化——>特征的维度都很大)
2.(位置信息——>都得到比原来图片小的特征图)
CNN | ViT | |
---|---|---|
设计思想 | 先局部再整体。CNN的结构决定了模型的理解过程,必须是循序渐进的。 | 先全部再细节,ViT的结构上每一个小的patch 一开始便要进行注意力机制的分配,每一个patch在空间上的相关性必须要高 |
设计局限 | 强的局部理解能力——>卷积核的尺寸——>特征图不能太大——>网络深度会很深(全局理解需要深度去弥补),对于CNN来说(CNN核的大小变化一般不大)。它特征图的最终大小一般和第一层,或者最后一层卷积核的大小一样,目的是保证考虑到了全局信息。 | 强的全局理解能力——>patch的数量不能太多——>特征图不能太大——>网络需要加深(局部理解能力需要深度去弥补) 图片的patch不能切的太多,由于一开始就计算全局的信息整合,导致计算量随深度网络深度线性生长,但是每一个patch的局部信息需要深度去理解加以区分 |
Patch 里面的信号(都是通过线性变化提取,映射到高纬度上区分) | 卷积核小,容易训练得出 | 映射信息多,ViT的信号是线性映射,本质和卷积一样都是线性操作,它更像一个反卷积(卷积的反操作) |