上一期,我们一起学习了深度学习卷积神经网络中的代码实现,内存计算以及池化层的原理等,

深度学习三人行(第9期)----卷积神经网络实战进阶(附代码)

接下来我们一起学习下关于CNN中比较经典的网络LeNet-5和AlexNet的相关知识,学习的路上我们多多交流,共同进步。本期主要内容如下:

  • CNN一般框架

  • LeNet-5网络

  • AlexNet网络

  • 小结


一. CNN一般框架

卷积神经网络的典型框架就是由几个卷积层(卷积层后面一般紧跟着ReLU激活层),然后接着是一个池化层,再几个卷积层,再一个池化层等等,随着网络的传输,图像的尺寸越来越小,但是特征图越来越多。在卷积层的结尾往往会跟几个全连接层(+ReLU激活),最后跟一个输出层(比如softmax输出层)。如下图:

这里留一个问题,关于卷积层卷积核的问题,一个9x9的卷积核和两个3x3的卷积核效果是否一样?原因是什么?欢迎留言讨论。

经过这几年的发展,卷积神经网络出现了多种经典的网络,一个很好的衡量方法就是在一些大赛中模型的错误率,比方说ILSVRC ImageNet比赛。这个比赛在最近五年类,从26%的错误率降低到3%。CNN独领风骚!这其中第一个网络就是1998年的LeNet-5网络,接下来就是2012年的AlexNet,2014年的GoogLeNet和2015年的ResNet。


二. LeNet-5网络

LeNet-5网络是比较出名的经典的CNN网络,该网络在1998年被Yann LeCun创建,广泛用于手写字体识别(MNIST),我们一起看一下它的结构:

这里有一些细节值得注意:

  • MNIST数据的图像是28x28尺寸的,但是在输入网络之前,图像被0扩充到了32x32,并且被归一化,而后面的网络并没有用padding,所以图像的size会随着网络的加深而不断变小。

  • 平均值的池化层比通常用的稍微复杂一些:每一个神经元计算输入的平均值,然后每张特征图再乘以一个可学习的系数,之后再加上一个可以学习的偏置项,最后在激活。

  • C3卷积层中的大部分神经元并不是与S2层的6张图都相连,而是只与其中的三张或四张特征图相连。

  • 输出层也是有一些特别,一般的输出层都是计算输入和权重的相乘,而该网络的输出却是输入和权重之间欧式距离的平方,每一个输出衡量了图像属于某一类具体数字的程度。


三. AlexNet网络

该网络以大优势赢得2012年的ImageNet ISLVRC大赛,由Alex Krizhevsky发现,跟LeNet-5网络有些相似,但是更大更深一些。该网络的一大特色就是直接的将卷积层堆叠到一起,而不是卷积层之后跟着池化层。如下:

为了降低过拟合的风险,Alex用了之前讨论的两种正则化技术

深度学习三人行(第7期)----深度学习之避免过拟合(正则化)

首先在training的时候对F8和F9运用了dropout(50% dropout 率),其次通过随机平移,翻转以及改变光照等技术进行数据增强。

AlexNet在C1和C3的ReLU层后面用了一个比较具有竞争性的正则化技术,称作局部响应正则化。这种正则化技术使得那些最强激活的神经元去抑制那些相邻特征图中相同位置的神经元。这就使得不同的特征图更加的特别化,推动它们去寻找更加广泛的特征,最终增加了模型的泛化能力。下面的公式显示了如何应用局部响应正则化:

其中bi在特征图i上面某个位置上的正则化输出结果,ai为ReLU激活函数之后的那个激活的神经元,但是还没有正则化,k, α,β和r都是超参数,k叫做偏置,r是深度半径,fn为特征图的个数。

举个例子,如果r=2并且某个特征图上某个位置有一个强激活的神经元,那么它将抑制该特征图上下两张特征图的该位置的神经元激活。

在AlexNet中,超参数一般设置如下:r=2, α=0.00002,β=0.75和k=1,这个在TensorFlow中可以用函数

local_response_normalization()实现。


四. 小结

今天,我们一起学习了卷积神经网络的经典框架,以及常用在手写字符识别的经典网络LeNet-5,还有运用局部响应正则化技术的AlexNet,在学习的路上,我们共同进步,多谢有你。

(如需更好的了解相关知识,欢迎加入智能算法社区,在“智能算法”公众号发送“社区”,即可加入算法微信群和QQ群)

深度学习三人行(第10期)----CNN经典网络之LeNet-5和AlexNet相关推荐

  1. 深度学习三人行(第8期)----卷积神经网络通俗原理

    上一期,我们一起学习了深度学习中如何避免过拟合, 深度学习三人行(第7期)----深度学习之避免过拟合(正则化) 接下来我们一起学习下网红网络之卷积神经网络(CNN),我们多多交流,共同进步.本期主要 ...

  2. 深度学习三人行(第5期)----深度学习中的优化器选择

    上一期,我们一起学习了TensorFlow在训练深度网络的时候怎么解决梯度消失或梯度爆炸的问题,以及怎么尽可能的减少训练时间. 深度学习三人行(第4期)---- TF训练DNN之进阶 这期我们继续学习 ...

  3. CNN经典网络:LeNet、AlexNet、NIN、VGG

    LeNet CNN的开山之作,是LeCun在98年解决手写是数字识别任务时提出的,从那时起CNN的基本架构就定下来了:卷积.池化.全连接层. 网络结构 如图 3.1 所示,最早的 LeNet 有 7 ...

  4. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-04-基于Python的LeNet之MLP

    原文地址可以查看更多信息 本文主要参考于:Multilayer Perceptron  python源代码(github下载 CSDN免费下载) 本文主要介绍含有单隐层的MLP的建模及实现.建议在阅读 ...

  5. 深度学习(DL)与卷积神经网络(CNN)学习笔记随笔-03-基于Python的LeNet之LR

    原地址可以查看更多信息 本文主要参考于:Classifying MNIST digits using Logistic Regression  python源代码(GitHub下载 CSDN免费下载) ...

  6. MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)...

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com 在前两篇文章MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网 ...

  7. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  8. 深度学习算法(第37期)----如何用强化学习玩游戏?

    上期我们一起学习了强化学习中的时间差分学习和近似Q学习的相关知识, 今天我们一起用毕生所学来训练一个玩游戏的AI智能体. 由于我们将使用 Atari 环境,我们必须首先安装 OpenAI gym 的 ...

  9. [人工智能-深度学习-33]:卷积神经网络CNN - 常见分类网络- LeNet网络结构分析与详解

    作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...

最新文章

  1. 解决sublime text无法安装插件问题
  2. Python获取电脑硬件信息及状态的实现方法
  3. 理论基础 —— 索引 —— 稠密索引
  4. 无需写代码!谷歌推出机器学习模型分析神器,代号What-If
  5. ELK官方文档:在Kibana加密通讯
  6. 缺少训练样本怎么做实体识别?小样本下的NER解决方法汇总
  7. iphone11返回上一级手势怎么设置_iPhone11怎么返回手势操作
  8. 如何降低疾病监测的漏诊比率?一种新的分类学习算法
  9. 用Java判断ab大小_比例类数据的差异性检验与AB测试的终止点
  10. Google 谷歌创业训练营2021展示日回顾
  11. excel表格怎么调整行高和列宽_WPS图文教程:表格使用小技巧
  12. ubuntu 18.04 安装 搜狗拼音输入法只有中文标点,没有文字
  13. Apex开发人员指南
  14. 不用U盘安装win10系统
  15. ubantu与CentOS虚拟机之间搭建GRE隧道
  16. php账号登录验证手机号码,最完整的php验证手机号码
  17. 浅谈触摸屏技术以及未来的发展趋势
  18. Win10,Win11系统安全中心提醒“找到可能不需要的应用”弹窗,如何关闭?
  19. java动态分配空间吗,当执行new为一个对象分配内存时,Java()A、自动初始化所分配的内存空间B、只分配内存,初始化要...
  20. 这年头,你还能不懂点IP地址吗?

热门文章

  1. 【模板】用HTML编写邮件正文 | 各大邮箱几乎都会过滤css样式、js脚本等效果,如何用基础HTML编写?
  2. input 实时监听输入框,判断最小值只能为1或其他数
  3. 巨蟒python全栈开发flask10 项目开始2
  4. 计算机名、主机名、用户账户名与NetBIOS名有什么区别
  5. 互联网从业者高频单词 300个
  6. 关于路由跟踪指令---traceroute
  7. gnome linux 重装_如何安装 gnome 3
  8. python中except用法_Python中except用法和作用
  9. java 电子秤_java做成windows服务,电子秤例子,开机自动启动
  10. 1553B通信项目开发笔记(二)bu61580芯片介绍