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

来源:互联网 发布:淘宝淘抢购在哪里打开? 编辑:程序博客网 时间:2024/05/22 09:48

        这是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,可以进一步压缩特征。



0 0