【论文笔记】Image Classification with Deep Convolutional Neural Network
2015-10-19 21:19
513 查看
Alex Krizhevsky在ImageNet大赛中获胜的代码的说明文章
1. 整体架构
Overall Architecture
//概括:5个卷积层+3个全连接层+1个softmax层。在第1,2,5个卷积层后加了一个LRN和Max Pooling。
每层的尺寸演算
2. 创新点
2.1 ReLU
//概括:不用simgoid和tanh作为激活函数,而用ReLU作为激活函数的原因是:加速收敛。
因为sigmoid和tanh都是饱和(saturating)的(他们的导数都是倒过来的碗状,i.e.,越接近目标,对应的导数越小)。而ReLu的导数对于大于0的部分恒为1。于是ReLU确实可以在BP的时候能够将梯度很好地传到较前面的网络。
2.2 Local Responce Normalization
//概括:本质上,这个层也是为了防止激活函数的饱和的。
个人理解原理是通过正则化让激活函数的输入靠近“碗”的中间,从而获得比较大的导数值。
所以从功能上说,跟ReLU是重复的。
不过作者说,从试验结果看,LRN操作可以提高网络的泛化能力,将错误率降低了大约1个百分点。
2.3 Reducing Overfitting
2.3.1 Data Augmentation
用了两种方法:
随机crop。训练时候,对于256*256的图片进行随机crop到224*224,然后允许水平翻转,那么相当与将样本倍增到((256-224)^2)*2=2048。测试时候,对左上、右上、左下、右下、中间做了5次crop,然后翻转,共10个crop,之后对结果求平均。作者做,不做随机crop,大网络基本都过拟合(under substantial overfitting)。
对RGB空间做PCA,然后对主成分做一个(0, 0.1)的高斯扰动。结果让错误率又下降了百分一。
2.3.2 Overlapping Pooling
//概括:从试验结果看,作者认为Overlapping之后,能够减少网络的过拟合。
2.3.3 dropout
//概括,在第1,2个全连接层后面加入了dropout后,能够防止过拟合。
3.缺点
网络过于庞大,参数过多
__to address: 《Learning both Weights and Connections for Efficient Neural Network》
2015 通过剪枝使其能在移动设备上运作
Detail of learning
batch: 128
momenttum: 0.9
weight decay: 0.0005
init the weights: Guassian(0, 0.01)
init the bias: constant 1 or constant 0
learning rate: 0.01, divide by 10 while valid error rate stopped improving
Result
主要看ILSVRC-2012的结果。
文中模型top1 40.7%,top5 18.2%
五个模型平均出来后是top1 38.1%和top5 16.4%
Discussion
模型没有用到unsupervised pre-training
如果删去任何一个卷积层,top1 error会升高2%左右
1. 整体架构
Overall Architecture
//概括:5个卷积层+3个全连接层+1个softmax层。在第1,2,5个卷积层后加了一个LRN和Max Pooling。
每层的尺寸演算
2. 创新点
2.1 ReLU
//概括:不用simgoid和tanh作为激活函数,而用ReLU作为激活函数的原因是:加速收敛。
因为sigmoid和tanh都是饱和(saturating)的(他们的导数都是倒过来的碗状,i.e.,越接近目标,对应的导数越小)。而ReLu的导数对于大于0的部分恒为1。于是ReLU确实可以在BP的时候能够将梯度很好地传到较前面的网络。
2.2 Local Responce Normalization
//概括:本质上,这个层也是为了防止激活函数的饱和的。
个人理解原理是通过正则化让激活函数的输入靠近“碗”的中间,从而获得比较大的导数值。
所以从功能上说,跟ReLU是重复的。
不过作者说,从试验结果看,LRN操作可以提高网络的泛化能力,将错误率降低了大约1个百分点。
2.3 Reducing Overfitting
2.3.1 Data Augmentation
用了两种方法:
随机crop。训练时候,对于256*256的图片进行随机crop到224*224,然后允许水平翻转,那么相当与将样本倍增到((256-224)^2)*2=2048。测试时候,对左上、右上、左下、右下、中间做了5次crop,然后翻转,共10个crop,之后对结果求平均。作者做,不做随机crop,大网络基本都过拟合(under substantial overfitting)。
对RGB空间做PCA,然后对主成分做一个(0, 0.1)的高斯扰动。结果让错误率又下降了百分一。
2.3.2 Overlapping Pooling
//概括:从试验结果看,作者认为Overlapping之后,能够减少网络的过拟合。
2.3.3 dropout
//概括,在第1,2个全连接层后面加入了dropout后,能够防止过拟合。
3.缺点
网络过于庞大,参数过多
__to address: 《Learning both Weights and Connections for Efficient Neural Network》
2015 通过剪枝使其能在移动设备上运作
Detail of learning
batch: 128
momenttum: 0.9
weight decay: 0.0005
init the weights: Guassian(0, 0.01)
init the bias: constant 1 or constant 0
learning rate: 0.01, divide by 10 while valid error rate stopped improving
Result
主要看ILSVRC-2012的结果。
文中模型top1 40.7%,top5 18.2%
五个模型平均出来后是top1 38.1%和top5 16.4%
Discussion
模型没有用到unsupervised pre-training
如果删去任何一个卷积层,top1 error会升高2%左右
相关文章推荐
- 冒泡排序算法详解C++程序
- MySQL information_schema
- 关于自动打包的小问题
- 1. java获取本周日-本周六的时间
- python文件操作之文件读取方式
- 5-10 计算工资
- ural 1221. Malevich Strikes Back!
- android 52 粘滞广播
- 5-9 用天平找小球
- 大牛很通俗地介绍《信号与系统》
- Ubuntu14.04 USB WIFI 连接不稳定解决方法
- 数字三角形问题
- 中关村的十字路口:曾经轰轰烈烈的电子卖场时代正离我们远去
- iOS8.1 编译ffmpeg和集成第三方实现直播(监控类)
- Java中static{}块、{}块和普通代码块的研究
- 理解 Linux 的硬链接与软链接
- 5-8 超速判断
- Centos eclipse 菜单图标不显示
- E2LSH的原理与实现
- 有形之手 无形之手 案例