Alexnet 笔记

Alexnet

Alexnet是一种经典的CNN网络架构。他的作者Alex Krizhevsky在论文中提出了许多训练CNN网络的技巧,同时得出结论:CNN模型的深度越深,CNN模型的表现效果越好。

Alexnet Architecture

论文中Alexnet的Architecture图是
Alexnet Architecture
这个图应该有个错误,输入图像的大小应该是 227×227 227 × 227 。从网上找的另外一个描述更加清晰的表格
Alexnet Architecture
作者实现的Alexnet使用2个GPU同时训练,所以上面的架构图分为两部分,每个GPU训练1部分网络。第2,4,5层网络只与一个GPU的前一层连接,其他层则与两个GPU的前一层连接。作者提出了Local Response Normalization(LRN)层,在第1,2层卷积层池化层后面。如果使用单个GPU训练,把两部分合起来,可以把LRN层去掉,因为在VGG-16的论文中证明LRN没有太大作用。

训练技巧

ReLU Activation

作者在论文中提出了ReLU激活函数,这是这篇论文的主要贡献之一,ReLU激活函数有助于加快网络快速收敛,从此之后许多CNN都使用ReLU激活函数。ReLU函数为: f(x)=max(0,x) f ( x ) = max ( 0 , x )

这里放上一张图证明ReLU加速网络收敛
ReLU and tanh
论文发表之前,神经网络主要使用tanh函数作为激活函数,上图的虚线表示tanh在训练中错误率的收敛情况,实线代表ReLU函数。作者说一个4层的卷积网络在CIFAR-10中训练错误率下降到25%,ReLU比tanh快6倍。

Training on Multiple GPUs

作者使用两个GPU训练Alexnet网络,说明使用GPU能够加快训练速度。

Local Response Normalization

作者添加了LRN层之后,实验的结果有所改善。Response Normalization实现了一种侧向抑制形式,其受到真实神经元中发现的类型的启发,在使用不同内核计算的神经元输出之间产生对大激活值的竞争。

定义 aix,y a x , y i 是第i个feature map在位置 (x,y) ( x , y ) 上的激活值,Local response Normalizated后对应的值为 bix,y b x , y i

bix,y=aix,y/(k+αj=max(0,in/2)min(N1,i+n/2)(ajx,y)2)β b x , y i = a x , y i / ( k + α ∑ j = max ( 0 , i − n / 2 ) min ( N − 1 , i + n / 2 ) ( a x , y j ) 2 ) β

其中N表示feature map的层数(或者说卷积的过滤器的个数),n就是局部响应标准化的局部范围,在i个feature map前后n个feature map中进行标准化处理。另外的几个参数 k,α,β k , α , β 是超参数,作者在论文中的取值为 k=2,n=5,α=104,β=0.75 k = 2 , n = 5 , α = 10 − 4 , β = 0.75

Overlapping Pooling

Pooling层的过滤器大小为 z×z z × z ,步长为s。之前的CNN使用的Pooling都是 s=z s = z ,每个池化区域不重叠。作者则让 s=2,z=3 s = 2 , z = 3 ,使得池化区域重叠。重叠的池化层改善了实验结果。作者发现重叠的池化层使得模型过拟合稍微困难一些。

Data Augmentation

因为Alexnet有60 million个参数,如果训练集的样本个数不多,网络会出现过拟合。作者使用两种方法避免网络出现过拟合,第一种方法就是数据生成。

为了避免过拟合,最简单的方法就是增加训练集的个数。作者通过数据生成的方法增加训练的图片个数。第一种数据生成的方法是对图像位移和水平反射。对训练集 256×256 256 × 256 大小的图片从4个角和中间位置中截取 224×224 224 × 224 大小的部分,然后再对每部分进行水平反射。这样,一张原始图片生成10张训练图片。

第二种数据生成的方法是在RGB通道改变图片的强度。

Dropout

作者防止网络出现过拟合的第二种方法是Dropout。Dropout会以0.5的概率设置隐藏单元的输出值为0,因此,每次梯度下降,网络都会学习一个新的架构,这些架构共享权重。Dropout减少了神经元之间的依赖关系,强迫神经元学习鲁棒性更强的特征。作者在Alext的前两个全连接层应用了Dropout,如果没有dropout,作者训练的网络产生了严重的过拟合现象。虽然Dropout可以有效地防止过拟合,但是加倍了网络收敛使用的迭代次数。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值