您的位置:首页 > 理论基础

经典计算机视觉论文笔记——《ImageNet Classification with Deep Convolutional Neural Networks》

2016-06-23 19:19 651 查看
        这是CNN复兴的开创之作,个人认为比Hinton老爷子Science上那篇具有更重要的实际意义。有人问CNN怎么调参,其实大部分的答案这篇论文里都能找到。深度CNN最佳启蒙之作,没有之一。

技术概括

将浅层CNN扩展到8层的深度CNN,扩展了CNN的learning capacity。
对CNN进行多项改造,可以加快收敛速度、防过拟合、多卡并行。
数据扩充方法。
调参理论和方法。

一些值得反思的细节

网络参数数量:6千万;神经元数量:65万。
输入图像需固定大小:256*256(实际上是224*224,裁剪后)。后续MSRA提出了可变化输入大小的网络SPPNet。
图像每个像素要减去各通道均值。数值范围正则化的手段。后面数据扩充时通过PCA的颜色扰动时的均值就已经减好了。实际重要性不明,GoogleNet似乎并未采用(见caffe默认参数)。
ReLU是传统S型激活函数的改进,值域无界,即非饱和函数。作者说能够更快收敛。
多卡并行训练将立方体卷积的卷积核那一维平分两半,在这一维度上,前一层只有部分神经元与后一层的部份神经元相连(具体是哪部分和哪部分相连,网上有解读)。为多卡并行设计,如此设计没太多参考价值。
三种操作的先后顺序:ReLU-->LRN-->pooling。
卷积核和pooling核都是有重叠的。
各卷积层的卷积核数:96、256、384、384、256。
dropout操作是在最后两个全连接层。
随机裁剪224*224就能让数据扩大2048倍。
颜色扰动用PCA有点过,直接随机扰动就行。
在传统的随机梯度下降中加入了动量和权值正则化。各参数:batchsize-128,momentum-0.9,weight decay-0.0005。
权值初始化为0均值0.01方差高斯分布。
learning rate:0.01-->0.001-->0.0001。
120万样本,跑了90轮。
少一层卷积层,准确率少2%。

借鉴之处

实际训练的几大必杀技:数据扩充、dropout、ReLU(作者只认为能提高收敛速度)、LRN、重叠的pooling核、lr逐渐下降、几十个epoch。
多训练几个分类器进行融合。
可以用最后一层的特征进行图像检索,反映语义相似性。在最后一层特征基础上再用auto-encoder,可以进一步压缩特征。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息