论文笔记:AlexNet模型

卷积神经网络学习(一)中,笔者基于LeNet模型简单介绍了ConNet的基本构成(卷积层、池化层、全连接层等),该模型对手写数字的识别具有较高的准确率,但对于大规模的图像分类还远远不够。而本文即将介绍的AlexNet模型,,由Alex Krizhevsky等人设计,在ILSVRC-2012中以15.3%的top-5错误率获得第一名,比第二名的错误率要低10.9%。这里附上AlexNet模型的文章以及一系列deep learning文章的链接:Deep Learning Papers Reading Roadmap

ps: 本文的图片和内容主要来自Alex的论文

模型结构


AlexNet

这里为节省时间,模型参数介绍直接引用斯坦福CS231n的PPT图片:

AlexNet architecture

可以很直观的看出,AlexNet一共有5个卷积层,其中有三个卷积层后接了最大池化层,最后是三个全连接层。需要说明的是,论文中说该模型的输入图片的维度是224*224*3, 但实际上输入应该是227*227*3,这样在CONV1层的参数才能说得通,换句话说,CONV1层中的输出特征图的维度为(227+0*2-11)/4+1=55。

模型特点

数据扩充(Data Augmentation)

在训练过程中,数据量的大小对于训练结果至关重要,在AlexNet模型通过使用多种图像变换方式以扩充原始数据集,从而缓解过拟合现象。

第一种方式是平移变换和反射变换。根据论文中的介绍,在训练阶段,先随机从256*256的图像中随机抽取224*224的碎片,将原来的数据量扩充了2048倍;在测试阶段,该网络通过提取五个224×224的碎片(四个边角碎片和中心碎片)连同它们的水平反射(因此总共是十个碎片)做出了预测,并在这十个碎片上来平均该网络的softmax层做出的预测。

第二种方式是彩色变换。通过改变训练图像中RGB通道的强度,用的是PCA方法扩充数据。

ReLU激活函数(Rectified Linear Units)

AlexNet用ReLU即 f(x)=max(0,x) 来代替激活函数 f(x)=tanh(x) f(x)=(1+ex)1 ,有效提高了模型训练的收敛速度。以下实从论文中截取的一个对比图,反映的是分别用ReLU激活函数和用tanh激活函数在训练CIFAR10的训练误差收敛速度。


ReLU and tanh on CIFAR10

多GPU(Multiple GPUs)

由于当时GPU运算能力有限,Alex采用了两个GTX580进行训练,这也是为什么最开始的模型结构分成了上下两层。

局部标准化(Local Response Normalization)

AlexNet在卷积中引入局部标准化,据论文介绍,改方法的引入在CIFAR10数据集上降低了约2%的测试误差。不过该方法在之后并不常用。这里不多介绍,可以看论文中介绍。

重叠池化 (Overlapping Pooling)

当池化操作中步长小于核的大小,相邻的池化就会发生重叠,据文中介绍,重叠池化比不重叠池化更不易出现过拟合。

Dropout

Dropout原理类似于浅层学习算法的中集成算法,该方法通过让全连接层的神经元(该模型在前两个全连接层引入Dropout)以一定的概率失去活性(比如0.5)失活的神经元不宰参与前向和反向传播,相当于约有一半的神经元不再起作用。在测试的时候,让所有神经元的输出乘0.5。Dropout的引用,有效缓解了模型的过拟合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值