最近我对CNN网络结构比较感兴趣,所以阅读了AlexNet、VGGNet、ResNet等论文。本文介绍AlexNet,在ILSVRC-2012大赛中,它夺得了第一名的佳绩。本文通过宏观和微观两个角度介绍AlexNet结构。
1. 宏观
我们通过下面两个图对AlexNet有一个宏观的认识:
AlexNet由5层卷积,3层Max pooling,3层全连接层组成,激活函数为ReLU.
用ReLU代替了传统的tanh或者logistic,好处有:收敛速度快。
2. 微观
硬件平台
两台GTX-530 3GB GPU,训练时间5-6天
数据预处理
每个像素减去平均活跃度(像素均值)
输入
图像规定大小:256*256
卷积规格
11 * 11 with stride 4, 5 * 5, 3 * 3
其中第二、第四和第五层卷积只连接同一GPU上前一层网络
第三层卷积是跨GPU连接前一层网络
Max pooling规格
overlapping pooling: 3 * 3 with stride 2
训练
优化器:SGD+momentum(0.9)
batch size:128
weight decay:0.0005
权重初始化:随机选取自N(0, 0.01)
偏置初始化:第2、4、5层卷积和全连接层设置为1,其他层为0
减少过拟合
数据增强:
- 水平反转:对图像先进行水平反转,然后随机裁剪为224*224的图像
- 改变训练图像中RGB通道的强度。具体来说,遍及整个ImageNet训练集的RGB像素值集合中执行PCA。
Dropout
3 其他
Local Response Normalization: 就是利用临近的数据做归一化,提高泛化问题。
参考
论文原文:ImageNet Classification with Deep Convolutional Neural Networks