学习
实践
活动
工具
TVP
写文章

使用深度卷积神经网络对图片分类

读万卷书,行万里路,与万人谈

阅读前人paper,做个小总结。

下载地址:

https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

What:

在ImageNet LSVRC-2010 竞赛中,他们在两个NVIDIA GTX 580 3GB GPUs上跑了5到6天,利用deep CNN把120万张图片分为1000个不同的类。

How:

数据data:

训练数据training images:120万张图片

验证数据validation images:5万张图片

测试数据test images:15万张图片

架构architecture:

5个卷积层,3个全连层,共6千万个参数,65万个神经元

激活函数使用不饱和非线性的Relu

两个GTX 580 GPUs(部分层可以并行计算)

局部响应归一化local response normalization(有助降低错误率)

重叠池化overlapping pooling(相比不重叠池化,重叠池化可以减少过拟合)

使用softmax函数输出概率分布(输出1000个类)

使用带动量的随机小批梯度下降(batch size=128,momentum=0.9)

Tips用于防止过拟合overfitting:

1,扩增数据Data Augmentation

把图片进行转换translation,水平翻转,通过这些操作来扩增数据集

对图片RGB像素进行PCA处理,改变RGB通道强度

2,dropout

dropout就是根据一定的概率(他们的keep probability=0.5)让某些神经元失活,这样每次神经网络结构都会不同,但是都共享参数。如果使用dropout,达到聚合converge需要迭代的次数几乎会double。

Result:

他们刷新了Top1和Top5的错误率,他们的top-1 和top-5 错误率分别为 37.5% 和17.0%。top-5是指把概率从大到小排列,输出前5个。自然,top-1就是输出概率最大的那个啦。

Thinking:

这是2010年的结果。现在2018年,GPU和之前的算力又不在一个数量级了。

想起前段时间跑的model,输入两张图片A和B,输出的图片C使用图片A做内容,图片B做风格。

跑的结果如下:

在CPU i7-2640上跑了2个小时25分钟,

但是,

在GPU 1080Ti上跑仅需44秒,

相差200倍。相当于步行,一个坐飞机。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180623G1ON7Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券