AlexNet论文学习笔记以及tensorflow实现(原理部分)

AlexNet包含5个卷积层,三个卷积层后面链接最大池化层,最后还有三个全连接层。

(1)成功使用RELU激活函数,成功解决sigmoid在网络较深时梯度弥散的问题。

(2)训练中使用dropout随机忽略部分神经元避免过拟合。

(3)在AlexNet中全部使用最大池化,避免平均池化的模糊效果,AlexNet提出步长比池化核小,这样池化层的输出之间会有重叠和覆盖,提升特征的丰富性。

(4)提出LRN层,对局部神经元的活动创建竞争机制,使得其中相应比较大的值变得相对更大,并且抑制其他反馈比较小的神经元,增加了模型的泛化能力。

(5)数据增强,随机的从原始图像中截取小块区域做数据增强,仅仅靠原始数据是不能泛化的,会产生过拟合的现象,取图片四个角加上中间5张图,加上翻转一共10张图片,,对他们进行预测并且对10次结果取均值。同时对RGB图像做PCA处理,并且对主成分做一个标准差为0.1的高斯扰动,这个操作可以降低1%的错误率。

整个AlexNet有8个需要训练的层(不包括池化层和LRN层),前5层为卷积层,后三层是全连接层,最后一层有1000类输出的softmax层做分类。LRN在一二卷积层后面,最大池化层是在LRN和最后一层卷积层的后面。RELU则是在每一层的后面。

输入图片的大小是224x224,第一个卷积层使用的11x11 卷积核,步长为4,有98个卷积核,紧接着一个LRN层,然后就是3x3的最大池化层,步长为2。这之后的卷积核尺寸都比较小,都是5x5或者3x3大小的,并且步长都是1,会扫描所有像素;而最大池化层依然保持为3x3,并且步长为2。我们发现前几层计算量很大但是参数很小。注意要是去掉中间任何的一层都会让网络的精度下降很多。

关于alexnet的原理就这些了,欢迎大家浏览,下次将开始实战AlexNet,用tensorflow做一个基于AlexNet网络的一个cifar10分类任务。

扫描二维码关注公众号,回复: 8931624 查看本文章
发布了27 篇原创文章 · 获赞 20 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_33479881/article/details/83476672
今日推荐