一、简介:
2012届图像识别大赛的冠军,top-5误差仅为15.3%,主要特点如下:
- 参数更多:60M个;
- 网络更大:650000个神经元;
- 网络构成:5个卷积层(有些层后添加了池化层)+ 3个全连接层(最后一层是1000维的softmax层);
- 使用GPU提升训练速度;
- 使用了ReLU激活函数,改善梯度消失,提升训练速度;
- 使用dropout减少过拟合;
二、网络结构:
以上是原文的网络结构,作者在写这篇论文的时候,GPU的处理速度还比较慢,所以AlexNet 采用了在两个 GPU 上进行训练的方法。大致原理是:这些层分别拆分到两个不同的GPU 上,同时还专门有一个方法用于两个GPU 进行交流。
这里用一张227×227×3的图片作为输入,实际上原文中使用的图像是224×224×3,其实227×227这个尺寸更好一些(我的理解是卷积后图片尺寸是整数的缘故)。
三、技术特点:
1、使用ReLU激活函数
ReLU激活函数的优点:
- 程序实现时ReLU是一个 if-else 语句,而 sigmoid 函数需要进行浮点四则运算,在实践中,使用ReLU激活函数的神经网络通常会比使用 sigmoid 或者 tanh 激活函数学习的更快;
- sigmoid 和 tanh 函数的导数在正负饱和区的梯度都会接近于0,而ReLU函数大于 0 部分都为常数,不会产生梯度消失。
2、Local Response Normalization(局部响应归一化)
进行局部响应归一化的动机是,对于这张 13×13 的图像中的每个位置来说,我们可能并不需要太多的高激活神经元。但是后来,很多研究者发现 LRN 起不到太大作用。
3、Overlapping Pooling
使用池化层可以缩减模型的大小。作者在使用重叠窗pooling进行训练时发现更不容易出现过拟合现象。
4、Data Augmentation
使用数据增广可以对抗过拟合,有pad、水平/垂直翻转、随机裁剪、彩色转换等多种方法。
5、Dropout
使用丢弃法可以对抗过拟合。在训练时使用dropout,每次训练时的模型结构都不一样,避免过度依赖某一些神经元而导致过拟合。作者在文中提到dropout减少了过拟合,也使收敛需要的迭代次数增加一倍。
四、讨论:
- 作者提到减少一个卷积层,网络的精度会下降,网络深度很重要。那么增加一层或多层会怎么样呢?
- 作者谈到没有使用预训练模型,但是非常推荐使用预训练模型。预训练模型可以可供更好的初始化参数,加快训练。