读万卷书,行万里路,与万人谈
阅读前人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倍。相当于步行,一个坐飞机。
领取专属 10元无门槛券
私享最新 技术干货