AlexNet的基本结构

Alexnet是由5个卷积层和三个全连接层组成,一共8个权重层(池化层不是权重层因为其没有参数),其中ReLU激活函数作用在每个卷积层和全连接层上,在第一个卷积层和第二个卷积层后面连接一个局部响应规范化层,最大池化层作用在第一个卷积层,第二个卷积层和第五个卷积层的输出上。

ReLU

在AlexNet结构中抛弃了传统的‘s'形激活函数,而是选择了修正的线性单元作为激活函数也就是relu传统的’s'形激活函数有f(x)=1/(1+e-x),f(x)=tanh(x),其中sigmoid函数如下图:

sigmoid函数具有饱和特性,当输入较大或者较小时,输出曲线接近平缓,此时梯度几乎为0,会造成消失的梯度问题,并且它的输出均值不为0,可能会造成偏置转移,会使得后一层的神经元将上一层的输出的非0均值的信号作为输入,并且它的输出范围在0~1,没有包含负信息,可能会损失一部分有用的信息。

上图为tanh函数的曲线图,由图可知,它的输出值的范围为[-1,1],其输出均值为0,并且包含了负信息,但是由于它也具有饱和特性,所以也会造成消失的梯度问题。

ReLU的形式为:f(x)=max(0,x),当输入为正时,输出值取其本身,此时关于输入x的导数为1,是一个常数,避免了消失的梯度问题,并且当输入小于0时,输出为0,引进了稀疏性,能够加速训练,但是由于其输出均值也大于0,所以也会出现偏置转移现象,并且由于当输入小于0时,对应的神经元输出为0,梯度为0,对应的权重也就无法更新。

重叠最大池化

AlexNet中使用了池化区域为3X3,步长为2的重叠池化,并且声称此种池化方法要比传统的池化区域为2X2,步长为2的非重叠池化方法效果好,论文中说效果提升了0.3%,但是我在其他数据集实验发现,重叠池化的效果不如非重叠池化,理由是当使用重叠池化时,下一个池化区域的最大值很可能就是上一个池化区域最大元素的副本,此时相当于造成了特征冗余。

局部响应规范化

其中aix,y为第i个卷积核在位置(x,y)处做卷积得到特征映射中的元素,再使用relu对其进行非线性变化得到的神经元。bix,y为经过局部响应规范化处理后得到的神经元。N是在某一层中卷积核的总量.k,ε,n,β为超参数,由网络训练得到,在AlexNet中设置k=2,n=5,ε=10-4,β=0.75。局部响应规范化中的求和是在n个相邻的特征映射中的同一个位置,也就是(x,y),这样相当于在神经元之间引入一种竞争机制,较强的特征会有一个较大的元素值。

减少过拟合

1.数据集扩增

在图像数据中最简单和最普通减少过拟合的方法就是人工的扩增数据集,当然这是在保留标签信息的情况下。比如原图片的尺寸是256X256,就可以随机的在原图片上裁剪一个224X224的小块进行训练,并对其进行水平翻转,平移等操作,扩大数据集。

2.Dropout

Dropout是一种正则化方法,随机的将隐藏层的神经元的值置为0,其中有一个drop率为p,通常p设置为0.5,dropout强迫每个神经元学习独立的特征,而不用依赖其他的神经元。它也相当于权重衰减,当某个神经元的值为0时,连接它的权重也为0,网络的参数变少,复杂度降低,防止过拟合,并且它也相当于一种模型融合,假设网络中一共有n个神经元,p=0.5,则此时,相当于有2n个子网络同时训练,是一种模型平均方法,提高泛化表现。

网络结构分析

通常在卷积层后面都应该接一个池化层,但是AlexNet却只在第一个卷积层,第二个卷积层和最后一个卷积层后面连接最大池化,这是因为在网络的较低层,特征映射的大小一般很大,含有较多的参数,这是进行池化的目的是为了减少的参数的数量,防止过拟合,而在网络的较高层,提取的特征一般是高级特征,可能是某个物体的轮廓,比如小狗的眼睛,但是小狗可能出现在图像中的任意位置,此时最大池化的目的是提供一种平移翻转不变性。至于AlexNet为什么只用了5个卷积层,文中提到深度是重要的,但是再深可能会出现退化现象。而去掉一个卷积层又会使网络的表示能力下降。

CNN中的经典结构之AlexNet的更多相关文章

  1. 论文笔记:CNN经典结构1(AlexNet,ZFNet,OverFeat,VGG,GoogleNet,ResNet)

    前言 本文主要介绍2012-2015年的一些经典CNN结构,从AlexNet,ZFNet,OverFeat到VGG,GoogleNetv1-v4,ResNetv1-v2. 在论文笔记:CNN经典结构2 ...

  2. 小白的经典CNN复现(三):AlexNet

    小白的经典CNN复现(三):AlexNet 锵锵--本系列的第三弹AlexNet终于是来啦(≧∀≦),到了这里,我们的CNN的结构就基本上和现在我们经常使用或者接触的一些基本结构差不多了,并且从这一个 ...

  3. 论文笔记:CNN经典结构2(WideResNet,FractalNet,DenseNet,ResNeXt,DPN,SENet)

    前言 在论文笔记:CNN经典结构1中主要讲了2012-2015年的一些经典CNN结构.本文主要讲解2016-2017年的一些经典CNN结构. CIFAR和SVHN上,DenseNet-BC优于ResN ...

  4. deep learning 经典网络模型之Alexnet、VGG、Googlenet、Resnet

    CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服.当时有流传的段 ...

  5. CNN中,1X1卷积核到底有什么作用呢?

    CNN中,1X1卷积核到底有什么作用呢? https://www.jianshu.com/p/ba51f8c6e348 Question: 从NIN 到Googlenet mrsa net 都是用了这 ...

  6. CNN中的局部连接(Sparse Connectivity)和权值共享

    局部连接与权值共享 下图是一个很经典的图示,左边是全连接,右边是局部连接. 对于一个1000 × 1000的输入图像而言,如果下一个隐藏层的神经元数目为10^6个,采用全连接则有1000 × 1000 ...

  7. MATLAB对于文本文件(txt)数据读取的技巧总结(经典中的经典)

    振动论坛原版主eight的经典贴http://www.chinavib.com/thread-45622-1-1.html MATLAB对于文本文件(txt)进行数据读取的技巧总结(经典中的经典)由于 ...

  8. 如果将彩色图像和灰度图像一起放进 CNN 中去,会是什么结果?

    如果将彩色图像和灰度图像一起放进 CNN 中去,会是什么结果? 今天,坑爹的实验,我处理 SUN397 的时候,忘记去掉灰度图了,结果,利用微调后的 model 提取 feature,悲剧的发现,无论 ...

  9. CNN中的卷积核及TensorFlow中卷积的各种实现

    声明: 1. 我和每一个应该看这篇博文的人一样,都是初学者,都是小菜鸟,我发布博文只是希望加深学习印象并与大家讨论. 2. 我不确定的地方用了"应该"二字 首先,通俗说一下,CNN ...

随机推荐

  1. Ajax.html:35 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org

    AJAX的容易错误的地方 Ajax.html:35 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated ...

  2. python/数据库操作补充—模板—Session

    python/数据库操作补充—模板—Session 一.创建一个app目录 在models.py只能类进行进行创建表 class Foo: xx= 字段(数据库数据类型) 字段类型 字符串 Email ...

  3. spring boot 系列之四:spring boot 整合JPA

    上一篇我们讲了spring boot 整合JdbcTemplate来进行数据的持久化, 这篇我们来说下怎么通过spring boot 整合JPA来实现数据的持久化. 一.代码实现 修改pom,引入依赖 ...

  4. Python系列之 - 描述符

    描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议 __get__():调用一个属性时,触 ...

  5. 去除Eclipse中js报错的问题

    第一步:    去除eclipse的JS验证:        将windows->preference->Java Script->Validator->Errors/Warn ...

  6. 《c++ const 详细总结》--转载

    C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. const 是C++中常用的类型修饰符,常类型是指使用类 ...

  7. 从零开始搭建口袋妖怪管理系统(1)-从Angular1.x开始

    开坑,一直喜欢口袋妖怪,想着能写点有关的程序. 最近项目要改写管理系统,所以用Angular1.x搭建一个口袋妖怪管理系统试试. 巩固Ng1.x的知识+学习库的用法,然后算是记录一个系统从零开始到成型 ...

  8. [HAOI2011]Problem c

    题目描述 给n个人安排座位,先给每个人一个1~n的编号,设第i个人的编号为ai(不同人的编号可以相同),接着从第一个人开始,大家依次入座,第i个人来 了以后尝试坐到ai,如果ai被占据了,就尝试ai+ ...

  9. [AH/HNOI2017]影魔

    题目背景 影魔,奈文摩尔,据说有着一个诗人的灵魂. 事实上,他吞噬的诗人灵魂早已成千上万. 千百年来,他收集了各式各样的灵魂,包括诗人. 牧师. 帝王. 乞丐. 奴隶. 罪人,当然,还有英雄. 题目描 ...

  10. 计蒜客NOIP模拟赛(3)D2T1 小区划分

    一条街道的两侧各连续坐落着 N 座单元楼.现在要为这些单元楼划分居民校区. 规则如下: 每个小区只能由同一侧连续的若干座单元楼组成.且两侧都恰有 K 个小区(每个小区至少有一栋楼). 两侧的小区划分规 ...