AlexNet总结
https://blog.csdn.net/Rasin_Wu/article/details/80017920
https://blog.csdn.net/chaipp0607/article/details/72847422
AlexNet
AlexNet在2012年的ImageNet图像分类大赛中夺得第一名,将top-5错误率瞬间提升了百分之十以上。之后,CNN重回历史舞台。 首先看一下它的网络结构:
这是论文中的给出的结构图,看起来很复杂,我们简化一下。这是吴恩达深度学习课程中给出的讲义(注意这里输入的是的格式,与论文中有所不同,但是对网络结构没有影响)。
AlexNet的网络结构
Conv_1: 卷积层,输入:,使用个核卷积,步长为,卷积之后长宽为,所以输出格式为
Max-pooling:输入为,pool:,步长为:2,所以pool之后长宽为:,输出为:
Conv_2:卷积层,输入:,使用个,步长为,padding为same. Padding常用的有两种same,valid:
SAME padding:
VALID padding:
所以此时Padding为左右两边均是。输出结果:.
Max-pooling:输入为:,pool为,步长为,长度为:,输出结果为:
Conv_3,Conv_4,Conv_5:输入输出均为,步长为,核为,Padding为Same。
Max-pooling:输入,pool:,步长为输出结果为,也就是个特征变量。
FC:全连接层有两个隐藏层,从
AlexNet高性能的解释
- 非线性激活函数:ReLU
- 防止过拟合的方法:Dropout,Data augmentation
- 大数据训练:百万级ImageNet图像数据
- 其他:GPU实现,LRN归一化层的使用
ReLU
优点:
- ReLU本质上是分段线性模型,前向计算非常简单,无需指数之类操作;
- ReLU的偏导也很简单,反向传播梯度,无需指数或者除法之类操作;
- ReLU不容易发生梯度发散问题,Tanh和Logistic激活函数在两端的时候导数容易趋近于零,多级连乘后梯度更加约等于0;
- ReLU关闭了右边,从而会使得很多的隐层输出为0,即网络变得稀疏,起到了类似L1的正则化作用,可以在一定程度上缓解过拟合。
缺点:
左边全部关了很容易导致某些隐藏节点永无翻身之日,所以后来又出现pReLU、random ReLU等改进,而且ReLU会很容易改变数据的分布,因此ReLU后加Batch Normalization也是常用的改进的方法。
Data Augmentation
- 从原始图像(256,256)中,随机的crop出一些图像(224,224)。【平移变换,crop】
- 水平翻转图像。【反射变换,flip】
- 给图像增加一些随机的光照。【光照、彩色变换,color jittering】
AlexNet 训练的时候,在data augmentation上的处理:
- 随机crop。训练时候,对于256*256的图片进行随机crop到224*224,然后允许水平翻转,那么相当与将样本倍增到。
- 测试时候,对左上、右上、左下、右下、中间做了5次crop,然后翻转,共10个crop,之后对结果求平均。作者说,不做随机crop,大网络基本都过拟合(under substantial overfitting)。
- 对RGB空间做PCA,然后对主成分做一个的高斯扰动。结果让错误率又下降了1%。
Dropout
结合多个训练模型可以减少测试误差,但是在神经网络中,训练每个模型都需要大量的时间,代价昂贵。Dropout通过在隐藏层中以rate概率随机将部分神经元输出设置为0,这些神经元既不参于前向传播,也不参与反向传播。所以每次提出一个输入,该神经网络就尝试一个不同的结构,但是所有这些结构之间共享权重。因为神经元不能依赖于其他特定神经元而存在,所以这种技术降低了神经元复杂的互适应关系。在测试时只需要除以。
Local Response Normalization
局部响应归一化原理是仿造生物学上活跃的神经元对相邻神经元的抑制现象(侧抑制)。
本质上,这个层也是为了防止激活函数的饱和的。
- 是神经元的影响范围。
- 是超参数。
参考资料:
- ImageNet Classification with Deep Convolutional Neural Networks
- [原创]#Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
- 卷积神经网络-进化史】从LeNet到AlexNet
- 深度学习的局部响应归一化LRN(Local Response Normalization)理解
- 卷积神经网络
参考文章:
https://www.cnblogs.com/gongxijun/p/6027747.html
https://blog.csdn.net/hjimce/article/details/50413257https://blog.csdn.net/taoyanqi8932/article/details/71081390--------------------- 作者:Rasin_Wu 来源:CSDN 原文:https://blog.csdn.net/Rasin_Wu/article/details/80017920 版权声明:本文为博主原创文章,转载请附上博文链接!
AlexNet总结的更多相关文章
- 神经网络模型之AlexNet的一些总结
说明: 这个属于个人的一些理解,有错误的地方,还希望给予教育哈- 此处以caffe官方提供的AlexNet为例. 目录: 1.背景 2.框架介绍 3.步骤详细说明 5.参考文献 背景: AlexNet ...
- #Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet
CNN的发展史 上一篇回顾讲的是2006年Hinton他们的Science Paper,当时提到,2006年虽然Deep Learning的概念被提出来了,但是学术界的大家还是表示不服.当时有流传的段 ...
- 【转】[caffe]深度学习之图像分类模型AlexNet解读
[caffe]深度学习之图像分类模型AlexNet解读 原文地址:http://blog.csdn.net/sunbaigui/article/details/39938097 本文章已收录于: ...
- how to change the AlexNet into FCNs ?
How to change the AlexNet into FCNs ? FCNs is a network that only contain convolution layers and no ...
- [caffe]深度学习之图像分类模型AlexNet解读
在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军.要研究CNN类型DL网络模型在图像分类上的应用,就逃不开研究alexnet.这是CNN ...
- 学习笔记TF030:实现AlexNet
ILSVRC(ImageNet Large Scale Visual Recognition Challenge)分类比赛.AlexNet 2012年冠军(top-5错误率16.4%,额外数据15.3 ...
- AlexNet 网络详解及Tensorflow实现源码
版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 图片数据处理 2. 卷积神经网络 2.1. 卷积层 2.2. 池化层 2.3. 全链层 3. AlexNet 4. 用Tensorflow搭 ...
- 学习笔记TF052:卷积网络,神经网络发展,AlexNet的TensorFlow实现
卷积神经网络(convolutional neural network,CNN),权值共享(weight sharing)网络结构降低模型复杂度,减少权值数量,是语音分析.图像识别热点.无须人工特征提 ...
- 【深度学习系列】用PaddlePaddle和Tensorflow实现AlexNet
上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...
- TensorFlow实战之实现AlexNet经典卷积神经网络
本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet ...
随机推荐
- 系统环境变量(就是不需要切换目录,敲击“python”就可以进入编码器)
1.右击我的电脑,选择属性,选择“高级系统设置” 2.选择高级,选择环境变量 3.在系统变量中找到path,点击编辑.然后新建,将python的路径复制进去,点击确定.
- python--pip出错
问题: 1.使用pip install时,出现Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None) ...
- 查找常用字符(给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。)
给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表. 例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 ...
- Python class NameError name "xxx" is not defined
Python class NameError name "xxx" is not defined 这是因为在 class 中调用了带双下划线 "__" 的函数对 ...
- Python 解决 :NameError: name 'reload' is not defined 问题
对于 Python 2.X: import sys reload(sys) sys.setdefaultencoding("utf-8") 1 2 3 对于 <= Pytho ...
- ImportError: No module named 'pysqlite2'
在使用 Python 3 进行 Flask 学习时,运行服务时,出现: ImportError: No module named 'pysqlite2' 一. 现象 && 原因 出现如 ...
- js根据银行卡号进行判断属于哪个银行并返回银行卡类型
在做绑定银行卡,输入银行卡的时候,产品有这么一个需求,需要用户输入银行卡号的时候,显示对应的银行卡名称及简称.于是苦苦寻觅,终于找到了支付宝的开放API,银行卡校验接口 https://ccdcapi ...
- Java 之 XML
1.XML a.定义:可扩展标记语言 b.用途:现在主要用来以一种格式化的形式来存储数据 c.注意:XML中是区分大小写的 2.DTD a.定义:文档类型定义 b.作用:定义 XML 文档的合法构建模 ...
- Python并发复习3 - 多进程模块 multiprocessing
python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程.Python提供了非常好用的多进程包multiprocessing,只需要定 ...
- Springmvc借助SimpleUrlHandlerMapping实现接口开关功能
一.接口开关功能 1.可配置化,依赖配置中心 2.接口访问权限可控 3.springmvc不会扫描到,即不会直接的将接口暴露出去 二.接口开关使用场景 和业务没什么关系,主要方便查询系统中的一些状态信 ...