AlexNet

AlexNet[1]是经典CNN网络之一,由Alex Krizhevsky, Ilya Sutskever and Geoff Hinton三位开发,以一作Alex的名字命名。该网络结构赢得了2012年的ImageNet ILSVRC-2012竞赛的冠军,且大幅度的领先第二名。top-5的错误率为15.3%大幅度领先第二名的26.2%。

AlexNet的出现,证明了虽然计算昂贵,但是模型的深度是获得好的效果和性能的必要保证。同时,也让深度学习真正开始流行了起来。拐点之所以出现在2012年,在于一方面数据可用量大大增加,机器的计算能力伴随着gpu也大幅度提高。当然,AlexNet本身也很优秀,我们这里对该网络进行一些解读。

1. 网络结构

1.1 使用了ReLU单元

论文使用了ReLU单元替代了传统的tanh,和sigmoid,|tanh|等激活函数。相对而言,ReLU更容易求导和运算。能加快迭代的进程。如图2所示,对于CIFAR-10,同样到达25%的训练误差,ReLU可以比tanh激活单元速度快6倍。

1.2 在多个gpu上训练

使用了两块GTX 580 gpu,3GB内存。

1.3 Local Response Normalization

这种方法据说没什么用,就不讲了。

1.4 Overlapping Pooling

此前的CNN普遍使用平均池化,AlexNet全部使用最大池化,避免了平均池化的模糊化效果,并且AlexNet提出步长比池化层的尺寸小,池化层的输出之间就会有重叠和覆盖,提升了特征的丰富性。

2. 减少过拟合

整个网络结构有60m个参数(可以对比LeNet-5有大约60k个参数)。论文中使用了两种方式进行防止过拟合。

2.1 数据增强(Data Augmentation)

增强方法一。论文中,首先将所有图像缩放到最短的一边为256,然后截取长的一边也为256。于是得到256*256*3的图像,3代表RGB颜色。做数据增强的时候,从这个256*256的图像上随机抽取一些224*224的部分图片及其水平翻转。截取的时候,截取四个角落的片段和一个中心的片段,然后加上水平的翻转,正好10个patches。

关于水平反转的数据增强方法,可以参考我的另一篇博客[5]。同时,这里说的224*224因该是有误的,正确的是应该是227*227,最早由Andrei Karpathy在他的CS231n课程上提出[2]。这种增强方法还是很常用的,目前。

增强方法二。是在RGB颜色上增强,先做了PCA降维,然后进行做均值为0,方差为0.1的高斯扰动。

2.2 Dropout

目前的网络里,dropout非常常用,也是受本篇论文的影响。

3. 整体网络结构解析

整体的网络结构如图1所示。刚开始看的时候,我也没看太明白,后来看了其他博客才看懂。看的时候是这么看的。首先要明白,这是一个8层网络,5个卷积层,3个全连接层。然后从左向右看,Max Pooling这里,前面的那些虚线都表示的是一个卷积层,然后max pooling呢,表示卷积得到的图像,要经过max pooling层,这里只是写上了文字pooling,并没有画出来。然后经过max pooling之后的图像再经过卷积层,到达下一层。所以整体的网络结构可以参考下图图3。

下面的图4展示了各个层、参数个数、计算单元等详细情况。

4. 论文亮点

4.1 使用了Relu替代tanh,增加非线性,在相同准确率情况下加速了6倍。
4.2 使用dropout防止过拟合。
4.3 使用了带重叠的池化层(pooling)层。它使得top1和top5的错误率分别减少了0.4%和0.3%。

AlexNet的出现,让人们认识到deep learning巨大的威力,也证明了要想获得更好的效果,增加网络的深度是必要的。

参考资料

  1. Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.
  2. https://medium.com/@smallfishbigsea/a-walk-through-of-alexnet-6cbd137a5637
  3. https://blog.csdn.net/zyqdragon/article/details/72353420
  4. https://blog.csdn.net/marsjhao/article/details/72953256
  5. http://yucc.me/p/4a960c05/
谢谢你,可爱的朋友。
显示 Gitment 评论