在 ImageNet 图像识别挑战赛里,2010 和 2011 年的冠军队伍都使用了经典的视觉方法,基于手工设计的特征 + 机器学习算法实现图像分类,Top-5 错误率在 25% 上下。受限于人类的智慧,手工设计特征更多局限在像素层面的计算,丢失信息过多,在视觉任务上的性能达到瓶颈
在 2012 年的竞赛中,来自多伦多大学的团队首次使用深度学习方法,一举将错误率降低至 15.3% ,而传统视觉算法的性能已经达到瓶颈,2015 年,卷积网络的性能超越人类。
• 第一个成功实现大规模图像的模型,在 ImageNet 数据集上达到 ~85% 的 top-5 准确率
• 5 个卷积层,3 个全连接层,共有 60M 个可学习参数
• 使用 ReLU 激活函数,大幅提高收敛速度
• 实现并开源了 cuda-convnet ,在 GPU 上训练大规模神经网络在工程上成为可能
VGG-19 19 层
ImageNet Top-5 准确率:92.7%
GoogLeNet 22 层
ImageNet Top-5 准确率:93.4%
将大尺寸的卷积拆解为多层 3×3 的卷积
相同的感受野、更少的参数量、更多的层数和表达能力
• 网络层数:11、13、16、19 层
• 3×3 卷积配合 1 像素的边界填充,维持空间分辨率
• 每隔几层倍增通道数、减半分辨率,生成 1/2、1/4 尺度的更高抽象层级的特征
• 使用 Inception 模块堆叠形成, 22 个可学习层
• 最后的分类仅使用单层全连接层,可节省大量参数
• 仅 7M 权重参数(AlexNet 60M、VGG 138M)
模型层数增加到一定程度后,分类正确率不增反降
残差学习的基本思路
等同于多模型集成:残差网络有 (2) 个隐式的路径来连接输入和输出,每添加一个块会使路径数翻倍
基本思路:借助强化学习等方法搜索表现最佳的网络
代表工作:NASNet (2017)、MnasNet (2018)、EfficientNet (2019) 、RegNet (2020) 等
使用 Transformer 替代卷积网络实现图像分类,使用更大的数据集训练,达到超越卷积网络的精度
代表工作:Vision Transformer (2020),Swin-Transformer (2021 ICCV 最佳论文)
将 Swin Transformer 的模型元素迁移到卷积网络中,性能反超 Transformer
⭐ 卷积层的可学习参数包括:卷积核 + 偏置值
⭐ 参数量计算公式: ′ × ( × × + 1) = ′2 +
⭐ 输出特征图每个通道上的每个值都是输入特征图和 1 个
通道的卷积核进行一次卷积的结果
⭐ 乘加次数计算公式:
′ × ′× ′ × ( × × ) = ′′′2
基本思路:并不是所有特征都需要同样大的感受野,在同一层中混合使用不同尺寸的特征可以减少参数量
实现层次化特征: 后层特征是空间邻域内的前层特征的加权求和
权重越大,对应位置的特征就越重要
• Vision Transformer 的特征图是是直接下采样 16 倍得到的,后面的特征图也是维持这个下采样率不变,缺少了传统卷积神经网络里不同尺寸特征图的层次化结构。所以,Swin Transformer 提出了分层结构(金字塔结构)Hierarchical Transformer。• 同时,相对于 Vision Transformer 中直接对整个特征图进行 Multi-Head Self-Attention,SwinTransformer 将特征图划分成了多个不相交的区域(Window),将 Multi-Head Self-Attention 计算限制在窗口内,这样能够减少计算量的,尤其是在浅层特征图很大的时候。
• 由于将 Multi-Head Self-Attention 计算限制在窗口内,窗口与窗口之间无法进行信息传递。所以, Swin
Transformer 又提出了 Shifted Windows Multi-Head Self-Attention (SW-MSA) 的概念,即第 + 1 层的窗
口分别向右侧和下方各偏移了半个窗口的位置。那么,这就让信息能够跨窗口传递。