AlexNet网络介绍
本文转自红黑联盟https://www.2cto.com/kf/201608/533035.html
1LeNet-5
1.1局限性
早在1989年,Yann LeCun (现纽约大学教授)和他的同事们就发表了卷积神经网络(Convolution NeuralNetworks, 简称CNN)的工作。在很长时间里,CNN虽然在小规模的问题上,如手写数字,取得过当时世界最好结果,但一直没有取得巨大成功。这主要原因是,CNN在大规模图像上效果不好,比如像素很多的自然图片内容理解,所以没有得到计算机视觉领域的足够重视。
这个惊人的结果为什么在之前没有发生? 原因当然包括算法的提升,比如dropout等防止过拟合技术,但最重要的是,GPU带来的计算能力提升和更多的训练数据。
1.2理解
(1)为什么F6神经元是84维 ?
原文是用于手写字识别,手写字范围为0-9共有10个字符,因此输出OUTPUT层的节点共10个,可以把每个字符格式化为12*7的图像,如上图,共有84个像元,像元的参数成分(即像素值)可以设为1和-1,此时C5到F6是通过sigmod函数计算的,因此F6节点的值范围为-1到1,因此可以根据F6节点的值和格式化图像(参数向量)的值距离,来判断输入图像的类别,即通过径向基函数:
输入离参数向量越远,RBF输出的越大。
所有训练参数和连接个数:
2AlexNet
本深度学习网络是Alex和Hinton参加ILSVRC2012比赛的卷积网络论文,本网络结构也是开启ImageNet数据集更大,更深CNN的开山之作,本文对CNN的一些改进成为以后CNN网络通用的结构;在一些报告中被称为Alex-net,之后在Imagenet上取得更好结果的ZF-net,SPP-net,VGG等网络,都是在其基础上修改得到。
原论文:ImageNet Classification with Deep ConvolutionalNeural Networks
2.1结构介绍
2.1.1ReLU非线性
模拟神经元输出的标准函数一般是:tanh(x)或者sigmoid(x)函数,由于此类函数在x非常大或者非常小时,函数输出基本不变,所以此类函数成为饱和函数;f(x)=max(0,x),扭曲线性函数,是一种非线性的非饱和函数。在训练时间上,非饱和函数比饱和函数训练更快。而且这种扭曲线性函数,不但保留了非线性的表达能力,而且由于其具有线性性质(正值部分),相比tanh和sigmoid函数在误差反向传递时,不会有由于非线性引起的梯度弥散形象(顶层误差较大,由于逐层递减误差传递,引起低层误差很小,导致深度网络地层权值更新量很小,导致深度网络局部最优)。ReLU的这些性质可以让我们训练更深的网络。
ReLu相关知识:http://www.mamicode.com/info-detail-873243.html
2.1.2在多个GPU上训练
单个GTX 580 GPU只有3GB内存,这限制了可以在其上训练的网络的最大规模。事实证明,120万个训练样本才足以训练网络,这网络太大了,不适合在一个GPU上训练。因此我们将网络分布在两个GPU上。目前的GPU特别适合跨GPU并行化,因为它们能够直接从另一个GPU的内存中读出和写入,不需要通过主机内存。我们采用的并行方案基本上是在每个GPU中放置一半核(或神经元),还有一个额外的技巧:GPU间的通讯只在某些层进行。这就是说,例如,第3层的核需要从第2层中所有核映射输入。然而,第4层的核只需要从第3层中位于同一GPU的那些核映射输入。选择连接模式是一个交叉验证的问题,但是这让我们可以精确地调整通信量,直到它的计算量在可接受的部分。
2.1.3局部响应归一化
ReLU具有所希望的特性,它们不需要输入归一化来防止它们达到饱和。如果至少有一些训练样例对ReLU产生了正输入,学习就将发生在那个神经元。可是,我们仍然发现下列局部归一化方案有助于一般化。用表示点处通过应用核 计算出的神经元激活度,然后应用ReLU非线性,响应归一化活性由下式给出
其中求和覆盖了n个“相邻的”位于相同空间位置的核映射,N是该层中的核总数。核映射的顺序当然是任意的,且在训练开始前就确定。受到在真实神经元中发现的类型启发,这种响应归一化实现了一种侧向抑制,在使用不同核计算神经元输出的过程中创造对大激活度的竞争。常数k,n,α和β是超参数,它们的值要用验证集来确定;我们使用。我们在某些层应用ReLU归一化后再应用这种归一化(见3.5节)。
该方案与Jarrett等人的局部对比度归一化方案具有一些相似之处[11],但我们的方案更正确的命名为“亮度归一化”,因为我们不减去平均活跃度。响应归一化将我们的top-1与top-5误差率分别减少了1.4%与1.2%。我们也验证了该方案在CIFAR-10数据集上的有效性:四层CNN不带归一化时的测试误差率是13%,带归一化时是11%。
2.1.4重叠Pooling
CNN中的Pooling层总结了同一核映射中邻近神经元组的输出。传统上,通过邻接pooling单元总结的邻近关系不重叠(例如,[17,11,4])。更准确地说,一个pooling层可以被认为是由间隔s像素的pooling单元网格组成,每个网格总结出一个z×z大小的邻近关系,都位于pooling单元的中心位置。若设s=z,我们得到传统的局部pooling,正如常用于CNN中的那样。若设s<z,则得到有重叠pool。整个网络结构中,s=2,z=3,即pool区域的大小为3*3,间隔为2,即相邻两个pool,会重叠一个像素,这种方法使top-1和top-5错误率分别减少0.4%和0.3%,与s=2,z=2相比,它们池化结果有相同的维度,并且重叠pool在训练过程中不容易产生过拟合。< p="">
2.1.5减少过拟合
我们的神经网络结构有6000万个参数。虽然ILSVRC的1000个类别,使得每个训练样本在图像到标签的映射上强加了10比特约束,事实上学习如此多的参数而不带相当大的过拟合,这些类别是不够的。下面,我们描述减少过拟合的两种主要方法。
<1>数据扩充
对于图像数据来说,减少过拟合问题,最早使用的同时也是最常用的方法就是,在保持数据标签不变的情况下增大数据集。这里我们使用了两种不同的方法,它们都只需要很少的计算量,因此变换后的图像并不需要存储在硬盘中,而只需要存放在内存中即可。在我们的实现中,转换图像是由CPU上的Python代码生成的,与此同时,在GPU上训练先前产生的图像,因此这些数据扩展方案是计算自由的。
理解:每次选择一半的节点进行连接构成网络,只在被选中参与连接的节点上进行正向和反向传播,如下图,左侧是全连接形式,右边是一半节点构成的网络:
Dropout相关知识:http://www.mamicode.com/info-detail-517504.html
2.2总体结构
2.2.1总体介绍
2.2.2各层运算、维度和参数
2.3学习过程
AlexNet网络介绍相关推荐
- AlexNet网络具体介绍
AlexNet网络 1.AlexNet 网络的创新点 1.1.使用了ReLU作为激活函数 1.2 LRN(局部相应归一化) 1.3 Dropout 1.4使用了重叠池化层 1.5 并行使用了多GPU训 ...
- TorchVision中通过AlexNet网络进行图像分类
TorchVision中给出了AlexNet的pretrained模型,模型存放位置为https://download.pytorch.org/models/alexnet-owt-4df8aa71. ...
- AlexNet 网络详解及Tensorflow实现源码
版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 图片数据处理 2. 卷积神经网络 2.1. 卷积层 2.2. 池化层 2.3. 全链层 3. AlexNet 4. 用Tensorflow搭 ...
- Pytorch:使用Alexnet网络实现CIFAR10分类
全部代码: https://github.com/SPECTRELWF/pytorch-cnn-study 网络介绍: Alexnet网络是CV领域最经典的网络结构之一了,在2012年横空出世,并在当 ...
- 深度学习入门笔记之ALexNet网络
Alex提出的alexnet网络结构模型,在imagenet2012图像分类challenge上赢得了冠军.作者训练alexnet网络时大致将120万张图像的训练集循环了90次,在两个NVIDIA G ...
- 卷积神经网络之AlexNet网络详解
一 介绍 Alex Krizhevsky等人训练了一个大型的卷积神经网络用来把ImageNet LSVRC-2010比赛中120万张高分辨率的图像分为1000个不同的类别.在测试卷上,获得很高准确率 ...
- AlexNet网络构建与训练
2012年AlexNet横空出世,正式将深度学习推向高潮.如今10年过去,整个深度学习生态已经发展到非常庞大.这里使用pytorch进行AlexNet网络实现及在图像分类任务上的训练过程. AlexN ...
- 深度学习之基于Tensorflow2.0实现AlexNet网络
在之前的实验中,一直是自己搭建或者是迁移学习进行物体识别,但是没有对某一个网络进行详细的研究,正好人工智能课需要按组上去展示成果,借此机会实现一下比较经典的网络,为以后的研究学习打下基础.本次基于Te ...
- 一个深度学习痴呆选手对AlexNet网络架构的一些理解
最近开始入坑深度学习,之前根本没接触过关于AI领域的知识,也就对着B站上的CS231N课水了水,但完全就是半懂不懂很懵逼的感觉,毕竟神经网络就类似于一个黑箱,难以理解也是很正常的.现在打算写一篇关于极 ...
最新文章
- 单独写原则Single Writer Principle
- 回顾国产手机4年沉浮,仍然只是靠这三招翻身
- openssl数字证书常见格式与协议介绍
- java动态删除属性值_JavaBean动态添加删除属性
- python判断回文_Python实现判断一个整数是否为回文数算法示例
- c语言源码转流程图,C语言算法第5章源代码以及流程图.doc
- CentOS6.x安装方法超详细教程
- php汽车租赁网站_ThinkPHP实战开发汽车租赁网站项目教程
- 用户画像第四章(企业级360°用户画像_标签开发_挖掘标签_用户购物性别模型-USG)
- python怎么清理垃圾和缓存_怎么才能正确清理电脑的缓存垃圾?
- s32k144 isystem linux,S32K144之时钟配置
- 枚举,随机数模型,函数功能分解---扔骰子随机数游戏
- 十年SEO风云巨变,还有多少站长在坚持
- Java---->强烈安利0_0详解注解和反射机制
- MES上线的实施流程
- C#鼠标单双击事件区分
- Windows系统启动MongoDB本地可以访问,远程连接不上问题
- 差热传导方程的分解法c语言,热传导方程差分解法的最佳网格_李先枝
- 2W字剖析数据治理平台建设经验(建议收藏)
- 专插本计算机专业报考人数,2019年专插本各专业报考录取人数、录取分数及平均分统计 (五)...
热门文章
- 闲聊JavaScript
- 第13期微生物组-宏基因组分析(线上/线下同时开课,2021.11)
- golang协程goroutine
- c语言中swap的意思,C语言中swap的作用和用法?
- Cardano(ADA), EOS, RChain(RHOC), Aeternity(AE) 都是极其好的币
- #{}和¥{}的区别
- 水星usb无线网卡MW150US驱动 for Mac
- 世纪佳缘发布婚恋观报告 “90”后和高学历人群更焦虑
- uboot引导vxworks6.9(T4240) 启动
- JavaWeb页面创作(一)——一个好看的登录界面