继之前那篇deep-learning笔记:着眼于深度——VGG简介与pytorch实现,我觉得还是有必要提一下VGG的前辈——具有历史意义的AlexNet,于是就写了这篇文章简要介绍一下。
References:
电子文献:
https://blog.csdn.net/zym19941119/article/details/78982441
参考文献:
[1]ImageNet Classification with Deep Convolutional Neural Networks
简介
ALexNet是第一个运用大型深度卷积神经网络的模型,在ILSVRC中一下子比前一年把错误率降低了10%,这是非常惊人的,也很快引起了注意。于是,自2012年开始,深度学习热潮由此引发。
根据我之前听网课的笔记以及网上的其他文章,我把AlexNet主要的进步归纳如下:
- 使用大型深度卷积神经网络。
- 分组卷积(groupconvolution)来充分利用GPU。
- 随机失活dropout:一种有效的正则化方法。关于正则化,可以看我的博文machine-learning笔记:机器学习中正则化的理解。
- 数据增强data augumentation:增大数据集以减小过拟合问题。
- ReLU激活函数:即max(0,x),至今还被广泛应用。
个人思考
这段时间也看了不少东西,对于如何提升神经网络的性能这个问题,我觉得主要有如下三个方面:
从网络本身入手
- 增加深度。
- 增加宽度。
- 减少参数量。
- 防止过拟合。
- 解决梯度消失的问题。
从数据集入手
- 尽可能使用多的数据。
从硬件入手
- 提升GPU性能。
- 充分利用现有的GPU性能。
当你阅读完AlexNet的论文,你会发现它在这几个方面都有思考且做出了非常优秀的改进。
论文
在放论文之前,我还是先贴一张流程图,方便在阅读论文的时候进行对照与理解。
下面奉上宝贵的论文:
论文原版
论文中文版
从introduction第一句开始,作者就开始了一段长长的吐槽:
Current approaches to object recognition make essential use of machine learning methods…
吐槽Yann LeCun大佬的论文被顶会拒收了仅仅因为Yann LeCun使用了神经网络。其实,那段时间之前,由于SVM等机器学习方法的兴起,神经网络是一种被许多ML大佬们看不起的算法模型。
在introduction的最后,作者留下了这样一句经典的话:
All of our experiments suggest that our results can be improved simply by waiting for faster GPUs and bigger datasets to become available.
有没有感觉到一种新世界大门被打开的感觉呢?
有关论文别的内容,我暂不多说了,大家可以自己看论文学习与体会。
附上推荐重点阅读的章节:3.1 ReLU Nonlinearity;3.5 Overall Architecture;4 Reducing Overfitting。
说明
同我写VGG的那篇文章中一样,我在英文原版中用黄颜色高亮了我觉得重要的内容给自己和大家今后参考。
另外,我在这里推荐大家还是先尝试阅读英文原版。一方面由于一些公式、符号以及名词的原因,英文原版叙述更精准,中文翻译有缺漏、偏颇之处;另一方面更重要的,接触这些方面的知识仅参考中文是远远不够的。
在这里我推荐一个chrome英文pdf阅读插件,大家可以自己到chrome里面搜索安装:
有了这个插件,遇到不认识的单词,只需双击单词,就可以看到中文释义,一定程度上可以保证阅读的流畅性。但是如果想从根本上解决问题,只有好好背单词吧(我也在朝这个方向努力…)。
另外,iPad的上也有好多强大的app,在这里不一一推荐了。
补充:最近又发现一款特别好用且美观的查词插件,功能非常强大,推荐一下:沙拉查词。