最近在学习神经网络,看了ALexnet的论文,下面把论文里个人认为主要的内容记下来,以免后面忘了。
Alexnet 是2012年ImageNet竞赛冠军获得者Hinton和他的学生Alex Krizhevsky设计的,该网络训练采用两个GTX580 3GB GPUs训练5到6天的时间。
ILSVRC中的top-5错误率是只正确答案不在模型的最有可能结果的5个之中。
Alexnet 由于需要固定尺寸的图像输入,因此对于一张图片,先对图像进行重新缩放,使较短的边长256,然后从生成的图像中裁剪出中心256×256的图像。
Alexnet只对图形进行了一个预处理,就是将输入的图像像素减去训练集相同位置的平均值,因此,Alexnt网络结构在卷积层之前还有一个输入层,输入层的参数是227*227*3(论文中说输入图像时224*224*3,但据多家分析,有可能此处是写错了,应该是227*227*3).
Alexnet的卷积层输出的神经元输出函数选择了非饱和非线性函数f(x) = max(0; x),而没有选择饱和非线性函数f(x) = tanh(x)或f(x) = (1 + e-x)-1的原因是,饱和非线性在饱和非线性在梯度下降训练时间更慢。
重叠池化,采用步长为2,池化尺寸为3的滤波器进行池化,通过测试发现,采用重叠池化尺寸(步长2,滤波器3*3)比不重叠池化尺寸(步长2,滤波器2*2)略微更南过拟合。
Alexnet网络结构中有6000万参数,为了防止过拟合,主要采取了以下两种措施:
1、扩大训练的数据集:通过对输入图像进行转换和水平映射:从256*256的图像中随机截取227*227(文章中说是224*224,此处有可能是文章写错了)图像和这些图像的水平翻转,这种方法将训练的数据集扩大了2048倍。在测试阶段,从256*256图像中截取5张227*227的图像(4个角+中心部位),同时将5张图进行水平翻转,这样一共10张图,从10张图的结果预测平均结果最为最终值。
2、改变训练图像中RGB通道的强度。