赛博土木A-深度学习07:现代卷积神经网络
1 AlexNet
AlexNet 与letNet没有什么本质上的区别,只是增加了层数修改了一些细节。
激活函数:采用了ReLU激活函数,取代sigmod。
复杂度控制:通过暂退法控制模型的复杂度,而不是采用权重衰减。
2 块搭建网络,VGGNeT
利用卷积层、激活函数、汇聚层构成卷积块,然后重复使用该卷积块构成卷积部分。
VGG 首先构建VGG块主要由多层卷积(每层有激活函数)以及一个汇聚层构成。然后重复使用VGG块,搭建VGG网络。
3 微网络构建网络,NiN
NIN提出一种新的方案,利用微神经网络替代卷积块,使用汇聚层进行最后的分类。传统的神经网络中MLP会破坏特征的空间结构。为此使用$1 \times 1$的卷积层对每个像素位置采用全连接,保证空间结构。
4 并行网络,GoogleNet
GoogleNet中的基本卷积块被称为Inception块,其将输入的特征图复制四份,并行处理,最后将结果进行连结。
GoogleNet:
5 批量规范化
批量规范化的引入是为了结局神经网络收敛速度。
5.1 问题
- 数据预处理对最终结果会产生重要的影响,为此需要对数据进行标准化处理使其平均值为0,方差为1。
- 对于深层网络,模型参数众多,且变换莫测,其会影响网络的收敛。
- 深层网络容易过拟合。
5.2 基本原理
批量规范化主要对小批量进行:规范化输入;比例拉伸和比例偏移;
$\mathbf{x}\in \mathcal{B}$ 表示来自小批量 $ \mathcal{B}$ 的输入,规范化$BN$:
$\hat{\boldsymbol{\mu}}_\mathcal{B}$是小批量$\mathcal{B}$的样本均值,$\hat{\boldsymbol{\sigma}}_\mathcal{B}$是小批量$\mathcal{B}$的样本标准差。应用标准化后,生成的小批量的平均值为0和单位方差为1。由于单位方差是一个主观的选择,因此通常包含拉伸参数$\boldsymbol{\gamma}$和偏移参数$\boldsymbol{\beta}$,形状与$\mathbf{x}$相同。$\boldsymbol{\gamma}$和$\boldsymbol{\beta}$是需要与其他模型参数一起学习的参数。引入噪声确保除数不为0。
5.3 批量规范化层
5.3.1 全连接层
全连接层的输入为$\mathbf{x}$,权重参数和偏置参数分别为$\mathbf{W}$和$\mathbf{b}$,激活函数为$\phi$,批量规范化的运算符为$\mathrm{BN}$。
那么,使用批量规范化的全连接层的输出的计算详情如下:
5.3.2 卷积层
卷积层上的规范化是在每个通道上分别进行批量规范化。
6 残差网络
6.1 函数类
设神经网络框架$\mathcal{F}$,包含学习速率以及其它超参数设置。$\forall f \in \mathcal{F}$,存在的参数集(权重和偏重)都可以通过在合适的集合上训练获得。$f^$是理想函数,如果$f^ \in \mathcal{F}$我们可以轻易找到,但是通常我们只能找到近似$f^*$的$f_\mathcal{F}$。
为了寻找更接近$f^*$,唯一的办法是扩展$ \mathcal{F} \rarr \mathcal{F}’$。如果$ \mathcal{F} \not\subseteq \mathcal{F}’$结果存在变差的风险。所以$ \mathcal{F} \subseteq \mathcal{F}’$。
换言之,如果通过增加的网络层可以训练成恒等映射,就可以认为其可能比原网络更有效。
6.2 残差块
每个附加层都应该更容易地包含原始函数作为其元素之一。如下图所示,左面是直接拟合出映射$f(x)$,而右面则是拟合出$f(x)-x$。其中$f(x)$是理想映射。但是理想网络结构不能保证拟合结果一定是理想情况,右侧至少保证可以不会比$x$更差。
因为需要进行相加,所以输出要与输入规模一致,如果想要改变通道数可以引入$1\times1$卷积层。
ResNet‐18:
7 稠密连接网络
稠密神经网络是残差神经网络结合泰勒展开的产物。
泰勒展开形式如下:
而稠密连接网络DenseNet相比ResNet的区别在于将相加给位连接。
这样每经过一次稠密块,都可以保留之前的结果。
但是稠密层也带来了一个问题随着使用次数的增加,其通道数快速增加。为此需要插入过渡层来控制模型的复杂度,一方面通过 $1 \times 1$ 卷积层来控制通道数,另一方面通过平均汇聚层减小特征图大小。
参考文献
[1] 《动手学深度学习》 — 动手学深度学习 2.0.0 documentation[EB/OL]. [2024-12-21]. https://zh.d2l.ai/.