上一节介绍了LeNet-5经典卷积网络模型的构成以及如何实现这样的一个网络,并且在实现的模型上达到了99%的正确率,但是LeNet-5缺乏对于更大更多图片的一个分类的功能。

在2012年,有人提出了新的深度卷积神经网络模型AlexNet。在2012的ILSVRC竞赛中,AletNet模型取得了top-5错误率为15.3%的好成绩,对比于第二名16.2%的错误率,AlexNet的优势明显。从此,AlexNet成为CNN领域比较有标志性的一个网络模型。

AlexNet新的技术点:五个卷积层+三个全连接层

(1)成功使用Relu作为CNN的**函数,并验证其效果在较深的网络超过了Sigmoid函数,成功解决了Sigmoid在网络较深时的梯度弥散(消失)现象。虽然Relu**函数在很久之前就被提出了,但是在AlexNet之前没有关于CNN使用Relu函数获得重大成功的例子。

(2)训练时使用Dropout随机忽略一部分神经元,以避免模型过拟合。在AlexNet中主要是最后的几个全连接层使用了Dropout。

(3)在CNN中使用重叠的最大池化。以前CNN中普遍使用平均池化,AlexNet全部使用最大池化,避免平均池化的模糊化效果。并且AlexNet中提出让步长比池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特征的丰富性,减少了信息的丢失

(4)提出了LRN层,对局部神经元的活动创建竞争机制,使得其中响应比较大值变得更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。

(5)使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,处理神经网络训练时大量的矩阵运算,双卡通信。

(6)数据增强:Data Augmentation

模型结构

​ AlexNet网络的基本结构如下:
AlexNet卷积网络模型

接下来我们来介绍一下AlexNet网络的一些细节:

在第一段卷积(conv1)中,AlexNet使用96个11x11卷积核对输入的224x224大小且深度为3的图像进行滤波操作,步长stride参数为4x4,得到的结果是96个55x55的特征图;得到基本的卷积数据后,第二个操作是Relu去线性化;第三个操作是LRN(AlexNet首次提出);第四个操作是3x3的最大池化,步长为2.

第二段卷(conv2)接收了来自conv1输出的数据, 也包含 4 个操作。第一个操作是卷积操作,使用256个5x5深度为3的卷积核,步长 stride 参数为1X1,得到的结果是256 个 27 × 27 的特征图:得到基本的卷积数据后,第二个操作也是 Relu去线性化;第三个操作也是LRN;第四个操作是3X3的最大池化,步长为2。

第三段卷积接受了来自conv2输出的数据,但是这一层去掉了池化操作和LRN。第一个操作是3X3的卷积操作,核数量为384,步长stride参数为1,得到的结果是384个13x13的特征图;得到基本的卷积数据后,下一个操作就是Relu函数去线性化。

第四段卷积与第三段卷积的实现类似,第五段卷积在第四段卷积的基础上增加了一个最大池化操作。

本节我们先对AlexNet做了一个大概的介绍,在下一节的内容中,我们会使用tensorflow代码来实现我们的AlexNet网络。

关注小鲸融创,一起深度学习金融科技!

相关文章: