七、现代卷积神经网络
7.1 AlexNet
7.2 VGG
VGG使用可重复使用的卷积块来构建深度卷积神经网络
不同的卷积块个数和超参数(n层,m通道)可以得到不同复杂度的变种
7.3. 网络中的网络(NiN)
卷积层需要较少的参数:输入通道数*输出通道数**
NiN块
一个卷积层后跟两个全连接层
- 步幅1,无填充,输出形状跟卷积层输出一样
- 起到全连接层的作用
NiN架构
无全连接层
交替使用NiN块和步幅为2的最大池化层,逐步减小高宽和增大通道数
最后使用全局平均池化层得到输出,其输入通道数是类别数
7.4. 含并行连结的网络(GoogLeNet)
Inception块
4个路径从不同的层面抽取信息,然后在输出通道维合并
跟单3×3或5×5卷积层比,inception块有更少的参数个数和计算复杂度
GoogleNet
5段,9个inception块
Inception块用4条有不同超参数的卷积层和池化层的路来抽取不同的信息,它的一个主要优点是模型参数小,计算复杂度低
GoogleNet使用了9个Inception块,是第一个达到上百层的网络,后续有一系列改进
7.5 批量归一化 batch normalization
固定小批量里面的均值和方差
然后再做额外的调整(可学习的参数)
批量归一化层
可学习的参数:γ,β
作用在:
- 全连接层和卷积层输出上,激活函数前
- 全连接层和卷积层输入上
对全连接层,作用在特征维
特征维:二维的输入,每一行是一样本,每一列是一个特征,全连接层每一个特征计算一个标量的均值、方差,将特征变为均值为0,方差为1)
对于卷积层,作用在通道维
通道维:每个像素有多通道,n个通道就是长为n的向量,这个向量是这个像素的特征,每个像素都是一个样本,对卷积层来说,若输入是批量大小*高*宽*通道数,那么样本数是批量大小*高*宽(通道层当作是特征层)
批量归一化固定小批量中的均值和方差,然后学习出适合的偏移和缩放
可以加速收敛速度,但一般不改变模型精度
我们现在可以[创建一个正确的
BatchNorm
层]。 这个层将保持适当的参数:拉伸gamma
和偏移beta
,这两个参数将在训练过程中更新。 此外,我们的层将保存均值和方差的移动平均值,以便在模型预测期间随后使用。7.6 残差网络(ResNet)
添加更多的层不一定总是会改进精度,只有当较复杂的函数类包含较小的函数类时,我们才能确保提高它们的性能。
残差网络的核心思想是:每个附加层都应该更容易地包含原始函数作为其元素之一。
残差块 residual block
ResNet架构