介绍
AlexNet是2012 ImageNet竞赛的冠军,ALexNet有很多开创的进展。
1) 2012 Most Deep CNN Network on ImageNet
2) highly optimized GPU 实现以及多GPU训练
3)许多开创性的方式训练技术以及处理overfitting手段
多GPU多channel训练
使用relu 非线性函数
采用dropout技术
架构
Relu
在AlexNet之前,大部分神经网络的激活函数是tanh和sigmoid这样饱和的非线性函数,这样非线性函数存在收敛比较慢的缺点。在AlexNet中,引入Relu激活函数,基本成为后续deep neural network的标配。
(relu和tanh收敛速度对比)
多GPU训练
由于当初的硬件局限,采用2个GTX580 GPU一起来训练AlexNet,这也是后面提到多channel(cardinality)的技术。大部分训练都是在独立GPU进行,只是在第3层CNN和后面全连接层有跨GPU的数据交换。
LRN
在AlexNet采用LRN来实现单侧抑制化来提供泛化能力,后续的其他网络没有采用LRN技术。
overlapping pooling
在传统的pooling,pooling的单元大小(Z*Z)和stride(S)是一样。在AlexNet采用重叠池化(overlapping Pooling),其中步长小于单元大小(Z),池化剑存在重叠。
重叠池化能提升能top1和top5分别提升 .4% 和 0.3%,
整体架构
ALexNet模型
AlexNet总共8层网络(5个CNN层和3个全连接层)
参数规模如下:
参数规模
可以看出参数主要集中全连接层,CNN参数规模比较小。
过拟合处理方法
数据增强
1)在原始图片上面截取224*224 patch,并且对图片翻转. 通过该操作能增加数据集合2048倍
2)
dropout
采用DropOut(相当于ensemble)在全连接层随机删除部分50%的connection来增强网络的泛化能力
DropOut
AlextNet在2012ImageNet
AlexNet在2012 ImageNet取第一名的成绩,TOP 1(36.7%) ,TOP5(15.4%)
代码