此贴仅做课程作业使用!!!按自己的理解对上课内容进行总结
一、卷积神经网络基本概念
1.卷积操作
卷积操作就是卷积核在原始图片中进行滑动得到特征图(Feature Map)的过程。假设我们现在有一个单通道的原始图片和一个卷积核,卷积的过程如图所示:
卷积得到的特征图的每一个像素值,是由对应位置的卷积核所覆盖的原始图像的对应像素值相乘,然后再相加获得的。卷积核每滑动一次,就进行一次卷积运算,直至得到最后的特征图。
2.多通道、多核卷积操作
首先,一个卷积核的通道数是和被卷积的图像的通道数一致,例如,对于三通道的图像,那么一个卷积核也是由三个通道组成(三个叠加而成的二维矩阵)。而每个通道的大小是可以自定义的超参数,图6一个卷积核的大小为(3,3,3),前两个3分别表示长宽,最后一个3表示通道数。
其次,卷积核的个数可以是多个,每一个卷积核得到特征图的“一层”,N个卷积核得到的特征图就有N层,即特征图的深度为N。图6所示,一共有4个卷积核,那么最终得到的特征图的深度就为4。
3.填充
顾名思义,填充就是在矩阵的边界上填充一些值,以增加矩阵的大小,通常用0或者复制边界像素来进行填充,如下图所示。
4.步长
步长为每次卷积核在图像上移动的像素数,下图卷积的步长为2。
5.池化
池化的主要目的是使用局部统计特征,如均值或最大值,解决特征过多问题。常用的池化具体操作可以等价为卷积核为2*2,步长为2,填充为0的卷积操作。
6.根据卷积操作参数计算处理后图像大小
图像经过卷积、池化操作后图像的大小有可能变化,因此这里给出变化的公式:
其中:
输出图像的高
输出图像的宽
卷积核的高
卷积核的宽
填充
步长
6.前向传播
定义前向传播为:
如果第𝑙层是卷积+池化层,则:
7.反向传播
这里直接给出反向传播的函数表达,具体到代码上的反传操作可以通过loss.backward()让torch帮助我们自动求解。
下采样层->卷积层:
卷积层->下采样层:
卷积层->卷积层:
全连接层->卷积层:
二、经典卷积神经网络
1.LeNet
每个卷积块中的基本单元是一个卷积层、一个sigmoid激活函数和平均汇聚层。每个卷积层使用5 × 5卷积核和一个sigmoid激活函数。这些层将输入映射到多个二维特征输出,通常同时增加通道的数量。第一卷积层有6个输出通道,而第二个卷积层有16个输出通道。每个2 × 2池操作(步幅2)通过空间下采样将维数减少4倍。卷积的输出形状由批量大小、通道数、高度、宽度决定。
为了将卷积块的输出传递给稠密块,我们必须在小批量中展平每个样本。换言之,我们将这个四维输入转换成全连接层所期望的二维输入。这里的二维表示的第一个维度索引小批量中的样本,第二个维度给出每个样本的平面向量表示。LeNet的稠密块有三个全连接层,分别有120、84和10个输出。因为我们在执行分类任务,所以输出层的10维对应于最后输出结果的数量。
2.AlexNet
AlexNet与LeNet很相似,在AlexNet的第一层,卷积窗口的形状是11×11。由于ImageNet中大多数图像的宽和高MNIST图像的多10倍以上,因此,需要一个更大的卷积窗口来捕获目标。第二层中的卷积窗口形状被缩减为5 × 5,然后是3 × 3。此外,在第一层、第二层和第五层卷积层之后,加入窗口形状为3 × 3、步幅为2的最大汇聚层。而且, AlexNet的卷积通道数目是LeNet的10倍。
3.VGG16
VGG网络模型有6种,其中VGG16比较典型。VGG相较于之前的两个网络加入了块的设计,使网络的搭建过程十分便捷。
VGG的优点:
(1)VGGNet探索了卷积神经网络的深度与其性能之间的关系,通过反复堆叠3×3的小型卷积核和2×2的最大池化层,VGGNet成功地构筑了16-19层深的卷积神经网络。
(2)VGGNet结构简洁,整个网络都使用了同样大小的卷积核尺寸(3×3)和最大池化尺(2×2)
(3)拥有5段卷积,每段内有2-3个卷积层,每段段尾连接一个最大池化层,用来缩小图片。
(4)使用非常多的3*3卷积串联 ,卷积串联比单独使用一个较大的卷积核,拥有更少的参数量,同时会比单独一个卷积层拥有更多的非线性变换。
VGG的缺点:
(1)由于用了较多的全连接层(3个),参数量很大。
(2)因为很多的卷积层执行了通道数翻倍,主要缺点是需要训练的特征数量非常巨大。
ps:本人使用RTX3060对VGG模型进行训练,批次大小为12,居然都跑不动,主要原因是全连接层的参数过多,由于原网络的应用场景是1000个分类,因此全连接层的参数被设置的很多,而一般的10分类不需要那么多的参数,使用的时候可自行改小。
#4.GooLeNet
课上没有讲解
5.ResNet(残差网络)
非残差网络梯度消失的问题:
引入残差块:
形成残差网络:
普通网络的基准模型受VGG网络的启发。
卷积层主要有3×3的过滤器,并遵循两个简单的设计规则:
①对输出特征图的尺寸相同的各层,都有相同数量的过滤器;
②如果特征图的大小减半,那么过滤器的数量就增加一倍,以保证每一层的时间复杂度相同。
ResNet模型比VGG网络更少的过滤器和更低的复杂性。ResNet具有34层的权重层,有36亿FLOPs,只是VGG-19(19.6亿FLOPs)的18%。