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的网络结构

  1. Conv_1: 卷积层,输入:,使用核卷积,步长为,卷积之后长宽为,所以输出格式为

  2. Max-pooling:输入为,pool:,步长为:2,所以pool之后长宽为:,输出为:

  3. Conv_2:卷积层,输入:,使用,步长为,padding为same. Padding常用的有两种same,valid:

    • SAME padding:

    • VALID padding:

       

    所以此时Padding为左右两边均是。输出结果:.

  4. Max-pooling:输入为:,pool为,步长为,长度为:,输出结果为:

  5. Conv_3,Conv_4,Conv_5:输入输出均为,步长为,核为,Padding为Same。

  6. Max-pooling:输入,pool:,步长为输出结果为,也就是个特征变量。

  7. FC:全连接层有两个隐藏层,从

AlexNet高性能的解释

  1. 非线性激活函数:ReLU
  2. 防止过拟合的方法:Dropout,Data augmentation
  3. 大数据训练:百万级ImageNet图像数据
  4. 其他:GPU实现,LRN归一化层的使用

ReLU

优点:

  1. ReLU本质上是分段线性模型,前向计算非常简单,无需指数之类操作;
  2. ReLU的偏导也很简单,反向传播梯度,无需指数或者除法之类操作;
  3. ReLU不容易发生梯度发散问题,Tanh和Logistic激活函数在两端的时候导数容易趋近于零,多级连乘后梯度更加约等于0;
  4. ReLU关闭了右边,从而会使得很多的隐层输出为0,即网络变得稀疏,起到了类似L1的正则化作用,可以在一定程度上缓解过拟合。

缺点:

左边全部关了很容易导致某些隐藏节点永无翻身之日,所以后来又出现pReLU、random ReLU等改进,而且ReLU会很容易改变数据的分布,因此ReLU后加Batch Normalization也是常用的改进的方法。

Data Augmentation

  1. 从原始图像(256,256)中,随机的crop出一些图像(224,224)。【平移变换,crop】
  2. 水平翻转图像。【反射变换,flip】
  3. 给图像增加一些随机的光照。【光照、彩色变换,color jittering】

AlexNet 训练的时候,在data augmentation上的处理:

  1. 随机crop。训练时候,对于256*256的图片进行随机crop到224*224,然后允许水平翻转,那么相当与将样本倍增到
  2. 测试时候,对左上、右上、左下、右下、中间做了5次crop,然后翻转,共10个crop,之后对结果求平均。作者说,不做随机crop,大网络基本都过拟合(under substantial overfitting)。
  3. 对RGB空间做PCA,然后对主成分做一个的高斯扰动。结果让错误率又下降了1%。

Dropout

结合多个训练模型可以减少测试误差,但是在神经网络中,训练每个模型都需要大量的时间,代价昂贵。Dropout通过在隐藏层中以rate概率随机将部分神经元输出设置为0,这些神经元既不参于前向传播,也不参与反向传播。所以每次提出一个输入,该神经网络就尝试一个不同的结构,但是所有这些结构之间共享权重。因为神经元不能依赖于其他特定神经元而存在,所以这种技术降低了神经元复杂的互适应关系。在测试时只需要除以

Local Response Normalization

局部响应归一化原理是仿造生物学上活跃的神经元对相邻神经元的抑制现象(侧抑制)。

本质上,这个层也是为了防止激活函数的饱和的。

  1.  是神经元的影响范围。
  2. 是超参数。

参考资料:


参考文章:
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总结的更多相关文章

  1. 神经网络模型之AlexNet的一些总结

    说明: 这个属于个人的一些理解,有错误的地方,还希望给予教育哈- 此处以caffe官方提供的AlexNet为例. 目录: 1.背景 2.框架介绍 3.步骤详细说明 5.参考文献 背景: AlexNet ...

  2. #Deep Learning回顾#之LeNet、AlexNet、GoogLeNet、VGG、ResNet

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

  3. 【转】[caffe]深度学习之图像分类模型AlexNet解读

    [caffe]深度学习之图像分类模型AlexNet解读 原文地址:http://blog.csdn.net/sunbaigui/article/details/39938097   本文章已收录于: ...

  4. 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 ...

  5. [caffe]深度学习之图像分类模型AlexNet解读

    在imagenet上的图像分类challenge上Alex提出的alexnet网络结构模型赢得了2012届的冠军.要研究CNN类型DL网络模型在图像分类上的应用,就逃不开研究alexnet.这是CNN ...

  6. 学习笔记TF030:实现AlexNet

    ILSVRC(ImageNet Large Scale Visual Recognition Challenge)分类比赛.AlexNet 2012年冠军(top-5错误率16.4%,额外数据15.3 ...

  7. AlexNet 网络详解及Tensorflow实现源码

    版权声明:本文为博主原创文章,未经博主允许不得转载. 1. 图片数据处理 2. 卷积神经网络 2.1. 卷积层 2.2. 池化层 2.3. 全链层 3. AlexNet 4. 用Tensorflow搭 ...

  8. 学习笔记TF052:卷积网络,神经网络发展,AlexNet的TensorFlow实现

    卷积神经网络(convolutional neural network,CNN),权值共享(weight sharing)网络结构降低模型复杂度,减少权值数量,是语音分析.图像识别热点.无须人工特征提 ...

  9. 【深度学习系列】用PaddlePaddle和Tensorflow实现AlexNet

    上周我们用PaddlePaddle和Tensorflow实现了图像分类,分别用自己手写的一个简单的CNN网络simple_cnn和LeNet-5的CNN网络识别cifar-10数据集.在上周的实验表现 ...

  10. TensorFlow实战之实现AlexNet经典卷积神经网络

    本文根据最近学习TensorFlow书籍网络文章的情况,特将一些学习心得做了总结,详情如下.如有不当之处,请各位大拿多多指点,在此谢过. 一.AlexNet模型及其基本原理阐述 1.关于AlexNet ...

随机推荐

  1. 带你了解zabbix如何监控mysql主从到报警触发

    本章博客我们一起来聊一聊如何监控mysql数据库主从状态? 思路梳理: 1)首先我们都知道,判断Mysql主从是否正常,是通过主从上面的SQL和IO线程都为yes状态判断(通过awk取值,grep过滤 ...

  2. 关于mac的一些常用操作记录

    之前记录过一个关于mac远程连接window机,实现共享文件的记录,今天记录一些常用的操作,会持续更新. 1.谷歌浏览器 f12的操作 command+option+i 打开调试面板 2.打开指定位置 ...

  3. windows配置tomcat https访问

    主要参考两篇: http://blog.csdn.net/minute_man/article/details/53787682 http://blog.csdn.net/chow__zh/artic ...

  4. /bin/sh ./xxxxx.sh出现:“Syntax error: “(” unexpected”

    Ubuntu/Debian为了加快开机速度,用dash代替了bash. dpkg-reconfigure dash 选择 No,取消dash即可,要重新开启dpkg-reconfigure dash选 ...

  5. day28 面向对象:反射,内置函数,类的内置方法

    面向对象进阶博客地址链接: http://www.cnblogs.com/Eva-J/articles/7351812.html 复习昨日内容: # 包 # 开发规范 # # hashlib # 登录 ...

  6. 正则表达式在python中的简单使用

    正则表达式独立与编程语言,基本上所有的编程语言都实现了正则表达式的相关操作.在Python中正则表达式的表现为re模块: import re 其操作有三个方法: my_string = "h ...

  7. Leading and Trailing(巧妙利用log解决次方问题)

    Sample Input 5 123456 1 123456 2 2 31 2 32 29 8751919 Sample Output Case 1: 123 456 Case 2: 152 936 ...

  8. HDU-1170的解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1170 题意:要求输入几个案例,每个案例包含操作符(+,-,*,/),操作数(两个整数).现在要求分别输 ...

  9. POJ 3159 Candies 【差分约束+Dijkstra】

    <题目链接> 题目大意: 给n个人派糖果,给出m组数据,每组数据包含A,B,c 三个数,意思是A的糖果数比B少的个数不多于c,即B的糖果数 - A的糖果数<= c .最后求n 比 1 ...

  10. C++雾中风景13:volatile解惑

    笔者入职百度时,二面面试官的让我聊聊C++之中的volatile关键词.volatile在Java和C++之中的差别可谓是天差地别,我只是简单聊了聊Java之中的volatile,面试官对我的回答并不 ...