在之前已经介绍了卷积神经网络的基本原理,这一节主要介绍一下现代的现代卷积神经网络模型,包括
- AlexNet。它是第一个在大规模视觉竞赛中击败传统计算机视觉模型的大型神经网络;
- 使用重复块的网络(VGG)。它利用许多重复的神经网络块;
- 网络中的网络(NiN)。它重复使用由卷积层和1*1卷积层(用来代替全连接层)来构建深层网络;
- 含并行连结的网络(GoogLeNet)。它使用并行连结的网络,通过不同窗口大小的卷积层和最大汇聚层来并行抽取信息;
- 残差网络(ResNet)。它通过残差块构建跨层的数据通道,是计算机视觉中最流行的体系架构;
一,深度卷积神经网络(AlexNet)
1.1 学习表征
对于如何提高模型的精度,历代研究人员都提出了非常多的想法,例如提出更好的算法,也有人说改善特征的提取,如AlexNet,在网络的最底层,模型学习到了一些类似于传统滤波器的特征抽取器,如下
AlexNet的更高层建立在这些底层表示的基础上,以表示更大的特征,如眼睛、鼻子、草叶等等。而更高的层可以检测整个物体,如人、飞机、狗或飞盘。最终的隐藏神经元可以学习图像的综合表示,从而使属于不同类别的数据易于区分。
1.2 AlexNet
AlexNet首次证明了学习到的特征可以超越手工设计的特征,AlexNet和LeNet的架构非常相似,如下图所示
AlexNet由八层组成:五个卷积层、两个全连接隐藏层和一个全连接输出层;使用ReLU而不是sigmoid作为其激活函数。
二,使用块的网络(VGG)
神经网络架构的设计逐渐变得更加抽象,研究人员开始从单个神经元的角度思考问题,发展到整个层,现在又转向块,重复层的模式。使用块的想法首先出现VGG网络。
VGG由一系列卷积层组成,后面再加上用于空间下采样的最大汇聚层。与AlexNet、LeNet一样,VGG网络可以分为两部分:第一部分主要由卷积层和汇聚层组成,第二部分由全连接层组成。
中间的都是VGG块。其中有超参数变量conv_arch。该变量指定了每个VGG块里卷积层个数和输出通道数。
也就是说使用可复用的卷积块构造网络,不同的VGG模型可通过每个块中卷积层数量和输出通道数量的差异来定义
三,网络中的网络(NiN)
LeNet、AlexNet和VGG都有一个共同的设计模式:通过一系列的卷积层与汇聚层来提取空间结构特征;然后通过全连接层对特征的表征进行处理。
AlexNet和VGG对LeNet的改进主要在于如何扩大和加深这两个模块
NiN块以一个普通卷积层开始,后面是两个1*1的卷积层。这两个1*1卷积层充当带有ReLU激活函数的逐像素全连接层。
NiN去除了容易造成过拟合的全连接层,将它们替换为全局平均汇聚层。该汇聚层通道数量为所需的输出数量。移除全连接层可减少过拟合,同时显著减少NiN的参数。
四,含并行连结的网(GoogLeNet)
GoogLeNet吸收了NiN中串联网络的思想,并解决了什么样大小的卷积核最合适的问题。
在GoogLeNet中,基本的卷积块被称为Inception块
这四条路径都使用合适的填充来使输入与输出的高和宽一致,最后我们将每条线路的输出在通道维度上连结,并构成Inception块的输出。
它通过不同窗口形状的卷积层和最大汇聚层来并行抽取信息,并使用1*1卷积层减少每像素级别上的通道维数从而降低模型复杂度。
GoogLeNet模型如下
GoogLeNet一共使用9个Inception块和全局平均汇聚层的堆叠来生成其估计值
五,残差网络(ResNet)
随着我们设计越来越深的网络,理解“新添加的层如何提升神经网络的性能”变得至关重要。
残差网络的核心思想是:每个附加层都应该更容易地包含原始函数作为其元素之一。
在残差块中,输入可通过跨层数据线路更快地向前传播。
利用残差块(residual blocks)可以训练出一个有效的深层神经网络:输入可以通过层间的残余连接更快地向前传播