method-CNN
必会的六大卷积神经网络
LeNet-5
LeNet-5 由 Yann LeCun 设计,是最早的卷积神经网络 (CNN) 之一,主要用于手写数字识别。
它有 5 层,具有可学习的参数,并以灰度图像作为输入。
以下是其架构的详细分解:
输入层
输入:32x32 灰度图像。
3组卷积+平均池化层
卷积层通过应用滤波器从输入图像中提取特征,而平均池化层则减少空间维度,使得网络对输入图像的小平移保持不变。
第 1 层,6 个大小为 5x5 的滤波器,产生 28x28x6 的特征图。
第 2 层,使用平均池化(2x2 窗口),减少到 14x14x6。
第 3 层,16 个大小为 5x5 的滤波器,产生 10x10x16 的特征图。
第 4 层,使用平均池化(2x2 窗口),减少到 5x5x16。
第 5 层,120 个大小为 5x5 的滤波器,产生 1x1x120 的特征图。
2个完全连接层
全连接层根据从卷积层提取的特征进行分类。
第 6 层,84 个神经元,与前一层完全连接。
输出层,10 个神经元,每个数字类别一个,使用 Softmax 进行分类。
AlexNet
AlexNet 由 Alex Krizhevsky 开发,在 2012 年 ImageNet 竞赛中获胜,彻底改变了计算机视觉。
它有 8 层,有 6230 万个可学习参数。
以下是逐层详细分解:
输入层
输入,224x224 RGB 图像。
5 组卷积 + 最大池化层
这些层执行特征提取,使用 ReLU 激活加速训练速度。最大池化层减少空间维度,同时保留重要特征。使用填充来防止特征图的大小急剧减小
第 1 层,96 个大小为 11x11、步幅为 4 的过滤器,产生 55x55x96 的特征图,然后进行 ReLU 激活和最大池化。
第 2 层,256 个大小为 5x5 的过滤器,产生 27x27x256 的特征图,然后进行 ReLU 激活和最大池化。
第 3 至第 5 层,384 个大小为 3x3 的过滤器,为第 3 层和第 4 层生成 13x13x384 的特征图,为第 5 层生成 13x13x256 的特征图,每个特征图后跟 ReLU 激活。第 5 层后跟最大池化。
完全连接层
全连接层对卷积层提取的特征进行分类。
第 6-7 层,每层 4096 个神经元,随后是 ReLU 激活和 dropout。Dropout 通过在训练期间随机将一部分输入单元设置为零来帮助防止过度拟合。
输出层 8:最后一层使用 Softmax
VGG16
VGG16,由牛津大学的视觉几何小组提出。它于 2014 年提出。它有 16 层,有 1.38 亿个可学习参数,以其简单和统一的架构而闻名。
输入层
输入,224x224 RGB 的图像。
卷积+最大池化层
块 1:2 个卷积层,带有 64 个大小为 3x3 的过滤器,然后是 ReLU 激活和最大池化。
块 2:2 个卷积层,带有 128 个大小为 3x3 的过滤器,然后是 ReLU 激活和最大池化。
块 3:3 个卷积层,带有 256 个大小为 3x3 的过滤器,然后是 ReLU 激活和最大池化。
块 4:3 个卷积层,带有 512 个大小为 3x3 的过滤器,然后是 ReLU 激活和最大池化。
块 5:3 个卷积层,带有 512 个大小为 3x3 的过滤器,然后是 ReLU 激活和最大池化。
过滤器的数量不断增加,直到块 4 和块 5 中达到 512。所有卷积层的过滤器大小固定为 3 X 3,步长 =1,填充 =1
- 完全连接层
第 14-15 层,每层 4096 个神经元,随后是 ReLU 激活和 dropout。
输出层 16,1000 个神经元(每个 ImageNet 类一个),使用 Softmax 进行分类。
GoogLeNet
谷歌于 2014 年推出的 Inception V1 旨在通过增加网络的深度和宽度来提高性能,同时缓解过度拟合和参数数量的增加。
它有 22 层,有 680 万个可训练参数
输入层
输入,224x224 RGB 图像。
2 组初始卷****积+最大池化层
第 1 层,64 个大小为 7x7 的过滤器,产生 112x112x64 的特征图,然后进行最大池化。
第 2 层,192 个大小为 3x3 的过滤器,产生 56x56x192 的特征图,然后进行最大池化。
9个Inception模块
Inception 模块结合了多种尺寸(1x1、3x3、5x5)的过滤器,以捕获输入的不同方面。包括用于降维的 1x1 卷积。
Inception 模块允许网络以多种尺度捕获特征,并通过降维提高计算效率。
Inception 模块的优势
无需担心确定过滤器的大小,因为 Inception 模型包含各种尺寸
使用降维模块减少操作次数
可以构建更深的网络,最终可以提高我们模型的性能
降维模块
为了解决深度增加时过拟合概率的问题,在 Inception 模块中包含了使用 1x1 卷积的降维模块。
它通过减少通道数量来大幅减少操作次数。
下图显示了使用/不使用 1x1 卷积时操作次数的比较。
- 使用不同形状的过滤器来提取特征
2个辅助分类器
辅助分类器通过提供中间监督来帮助主网络更好地学习,从而降低梯度消失的风险。
辅助分类器由以下内容组成:
平均池化,过滤器大小 5 X 5,步幅为 3
具有 128 个滤波器的 1 X 1 卷积
具有 1024 个神经元 + ReLU 的全连接层
Dropout 层,dropout 率为70%
具有 1000 个神经元 + Softmax 的全连接层
- 2个完全连接层
全连接层
输出层,1000 个神经元(每个 ImageNet 类一个),使用 Softmax 进行分类。
ResNet
ResNet 由微软研究院于 2015 年推出,解决了梯度消失/爆炸问题和退化问题。
在退化问题中,训练误差和测试误差都会随着层数的增加而增加。
这些问题通过残差块得到解决。
ResNet34 中有 16 个残差块。ResNet34 有 34 个可学习参数的层。
其架构包括:
输入层
输入,224x224 RGB 图像。
初始卷积+最大池化层
第 1 层,64 个大小为 7x7 的过滤器,产生 112x112x64 的特征图,然后进行最大池化。
残差块
16 个残差块,其中大部分为 3x3 过滤器。
残差块允许网络学习残差函数,通过防止退化问题,使得训练非常深的网络变得更容易。
恒等映射使得网络可以跳过不添加新信息的层,从而确保高效的梯度流。
残差块的优点
可以将初始信息传递到更深层
F(x) + x 是元素逐一相加,因此没有额外的参数,也没有额外的计算复杂度
更容易优化残差映射
4. 批量标准化和ReLU
每次卷积后都会应用批量标准化来稳定和加速训练,然后进行 ReLU 激活。
5. 自适应平均池+全连接层
自适应平均池,将特征图减少为每个特征图一个值。
输出层,1000 个神经元(每个 ImageNet 类一个),使用 Softmax 进行分类。
DenseNet
DenseNet 于 2018 年提出,以前馈方式将每一层连接到其他每一层。
密集块
DenseNet 从 conv 层开始,然后是 Desne Block
密集块内的每个单独块都是一个复合函数,由 3 个操作组成,即批量标准化、ReLU 和最后的转换操作。
在 3x3 转换之前应用 1x1 转换,并且在每个转换之前使用批量标准化和 ReLU,如下所示:
每一层都接收来自所有前几层的输入,并连接它们的特征图。
密集块的优点
解决梯度消失的问题:因为梯度可以直接从第一个块流到最后一个块
鼓励特征重用:由于特征连接,他们发现较早层提取的特征可直接由同一密集块中的较深层使用
过渡层
使用 1x1 卷积和池化将特征图的大小减少一半,从而降低计算复杂度。
Transition 层的架构如下所示。
与往常一样,在 1x1 转换层之前应用批量标准化和 ReLU 激活,然后应用 Avage Pooling。