CNN网络之AlexNet

ImageNet 是一个大的图片数据集。包含大约 1500万张图片,22000种类别。从2010年起,每年举办的图片分类比赛 ILSVRC(ImageNet Large-Scale Visual Recognition Challenge)ImageNet 的一个子集,包含大约 120 万张训练集,5 万张验证集,15 万张训练集,共约140万张图片。

2010和2011年的比赛,Top-5 错误率很高。2012年, AlexNet 网络获得了比赛的冠军,Top-5 错误率(16.4%)相较于前一年(25.8%)有了大幅度提高。AlexNet 采用 CNN 架构,从那以后各种 CNN 网络架构被提出来,Top-5 错误率逐年降低。到2017年,SENet网络 Top-5 错误率为 2.3% 远远超出了人类的水平(5.1%)。 再进行这类竞赛意义也不大 ,所以 CVPR 研讨会宣布2017年是 ImageNet 竞赛正式组织的最后一年, 这标志着一个时代的结束 。

注:在评估分类模型的效果时,会遇见两种错误率:Top-1 和 Top-5。以 ILSVRC 为例,Top-1 错误率是指输出结果的1000个类别中,如果真实类别和概率最大的那个类别相同,则分类正确,否则分类错误。Top-5 错误率是指输出结果的1000个类别中,如果真实类别存在于概率最大的前五个类别中,则分类正确,否则分类错误。通常采用 Top-5 来衡量模型分类效果。

AlexNet架构

AlexNet由5个卷积层和3个全连接层组成。

注意:论文中的 input 为 224 ∗ 244 ∗ 3 224*244*3 2242443 那是错误的,正确的 input 为 227 ∗ 227 ∗ 3 227*227*3 2272273

Input:		227*227*3
Conv:		11*11 stride=4 96 kernels	-->		Parameters=11*11*3*96+96(bias)=34944
MaxPool:	3*3 stride=2	-->		Parameters=0
Conv:		5*5 padding=2 256 kernels	--> 	Parameters=5*5*96*256+256(bias)=614656
MaxPool:	3*3 stride=2	-->		Parameters=0
Conv:		3*3 padding=1 384 kernels	-->		Parameters=3*3*256*384+384(bias)=885120
COnv:		3*3 padding=1 384 kernels	-->		Parameters=3*3*384*384+384(bias)=1327488
Conv:		3*3 padding=1 256 kernels	-->		Parameters=3*3*384*256+256(bias)=884992
MaxPool:	3*3 stride=2	-->		Parameters=0
FC:			Parameters=6*6*256*4096=37748736
FC:			Parameters=4096*4096=16777216
FC:			Parameters=4096*1000=4096000

Total Patameters=62369152   超过六千万参数!!!

AlexNet模型特点

1、使用ReLU作为激活函数

传统的神经网络使用 Tanh 或 Sigmoid 作为激活函数,AlexNet 使用 ReLU作为激活函数,训练速度更快,以下图为例:

同时训练一个四层神经网络,实线使用 ReLU 作为激活函数,虚线使用 Tanh 作为激活函数。在 Training error rate 为0.25时,ReLU收敛更快。

为什么ReLU更快?ReLU函数定义为:
f ( x ) = m a x ( 0 , x ) f(x)=max(0,x) f(x)=max(0,x)
函数图像如下图所示:

TanH函数图像如下图所示:

可以看出TanH函数在 Z 很大或很小的时候进入饱和状态,在使用梯度下降更新参数时,梯度很小(接近于0),导致收敛很慢。而且 TanH函数比ReLU函数更复杂,计算更慢。

ReLU函数在Z大于0收,梯度始终为1,收敛比较快。在Z小于0时,梯度为0。虽然ReLU收敛更快,但由于ReLU在Z小于0时,梯度为0,可能导致模型参数不更新,处于假死状态。

2、使用GPU进行训练

3、局部响应归一化(Local Response Normalization)

这个特性在后面被证明对模型效果没多大影响,可以不用。

4、重叠的Pooling

一般在做Pooling的时候,stride 一般和 kernel 的长或宽一样,即不重叠。而在AlexNet中,kernel大小都 3 ∗ 3 3*3 33 ,stride 为 2,即在做Pooling的时候是重叠的。

AlexNet为防止过拟合采用的方法

1、Data Augmentaion

使用两种数据扩充的方式:1、图片平移和水平镜像。2、修改图片RGB通道的强度。

2、Dropout

在第一和第二个全连接层加入Dropout

注:AlextNet论文地址:https://www.cs.toronto.edu/~fritz/absps/imagenet.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X+Y=Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值