imagenet上使用深度卷积网络
背景介绍
目前的数据集太小,而复杂的图像分类和识别任务需要更多的数据训练。
对于大量的数据又需要容量大的网络,cnn网络可以通过调节宽度和深度来调节网络的容量。cnn相比于标准的前馈网络有较少的链接和参数(归功于卷积操作共享权重),易于训练。
与此同时,高性能gpu以及经过优化的2d卷积可以帮助训练。
本文主要贡献:
1、训练了深度卷积网络并取得了很好的分类效果
2、实现了高性能的gpu 2D卷积
3、通过一些特性提高了网络性能并减少了网络运行的时间
4、通过一些方法减少过拟合
5、网络包含5层卷积和3层全连接,并且网络的深度影响准确率
具体的结构:
1、Relu
相比于tanh和sigmod,ReLU减少训练时间,如下图,
2、多gpu的训练
通过并行gpu进行训练,使得能够使用更大的网络。仅仅在第三层gpu之间存在通信,
3、局部响应归一化
公式如下
其中,i为第i个特性图,x,y也就是特征图上的坐标,其中ax,y是在relu之后的输出,k,α,β,k为超参数,可以通过验证集调整。
具体的原理如上图,通过第i个feature map周围的n个feature map对ax,y处的值进行横向的抑制(别的博客称为侧抑制,但是我觉得横向抑制更加形象一点)
4、重叠池化
池化模板设为3,步长为2,文中称通过重叠池化减少错误率,还能稍微防止过拟合。。。
减少过拟合:
1、数据增强,主要用了两种,第一种为从256x256块中提取224x224大小的块,并进行水平镜像。在测试的过程中,从图片提取5个224x224块,并进行水平镜像,一种十块,对测试结果取平均。
第二种为改变训练数据RGB通道的强度
2、dropout
训练时0.5概率将输出神经元置0,减少了神经元之间的相互适应。测试是,所有神经元输出x0.5
训练的细节:
采用随机梯度下降法,mini-batch = 128
权重更新方式如下:
以0均值,方差为0.01的高斯分布初始化W,全连接层设置为1。
2017年5月22日23:39:01
问题:
卷积如何优化?
PCA?