点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

LeNet是一种经典的图像分类深度学习卷积神经网络,已有大量的文献综述讨论。但大多数人只是回顾其中一个版本,即LeNet-5。LeNet-1、LeNet-4和boost LeNet-4通常被忽略。在这个故事中,我将对以下网络架构做一个简短的回顾:

  1. Baseline Linear Classifier

  2. One-Hidden-Layer Fully Connected Multilayer NN

  3. Two-Hidden-Layer Fully Connected Multilayer NN

  4. LeNet-1

  5. LeNet-4

  6. LeNet-5

  7. Boosted LeNet-4

本文将讲述了架构和性能。

**这是IEEE杂志1998年的一篇文章在我写这篇文章的时候有14000个引用。**虽然是从1998年开始的,但它是神经网络基础的开始,这是一篇为学习深度学习开了个好头的论文。通过观察神经网络架构的发展和错误率的降低,我们可以很容易地知道在网络中添加深度学习组件的重要性或影响。

整理自:https://medium.com/@sh.tsang/paper-brief-review-of-lenet-1-lenet-4-lenet-5-boosted-lenet-4-image-classification-1f5f809dbf17

https://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=5

假设我们已经掌握了深度学习组件的基本知识,如卷积层、池化层、全连接层、激活函数等。

1.Baseline Liner Classifier

最简单的线性分类器。每个输入像素值构成每个输出单元的加权和。总和最高的输出单元表示输入字符的类别。因此,我们可以看到,图像被视为一维向量,并连接到一个10输出的向量。

也就是说,测试数据的错误率为8.4%。

2.One-Hidden-Layer Fully Connected Multilayer NN

One-Hidden-Layer Fully Connected Multilayer NN

在输入层和输出层之间增加一隐含层,隐含层神经元数量为300个,即20×20 - 300 - 10网络,测试数据的错误率为3.6%。隐含层有1000个神经元,即20×20 - 1000 - 10网络,测试数据的错误率为3.8%。

3.Two-Hidden-Layer Fully Connected Multilayer NN

在输入层和输出层之间增加两个隐藏层,28×28 - 300 - 100-10网络的,测试数据的错误率为3.05%。 28×28 - 1000 - 150 - 10网络,测试数据错误率为2.95%。

我们可以看到,通过添加隐藏层,错误率越来越小。但是,这种改善也在变得缓慢。

LeNet-1

在Lenet-1中, 28x28 的输入图像 --> 4个24×24 feature maps卷积层(5×5 size) -->平均池化层(2×2大小) -->8个12×12 feature maps 卷积层(5×5 size)--> 平均池化层(2×2大小)--> 直接全连接后输出

引入卷积和下采样/池化层后,LeNet-1对测试数据的错误率为1.7%

值得注意的是,在作者发明LeNet时,他们使用平均池化层,输出2×2特征图的平均值。目前很多LeNet实现使用max pooling只输出2×2 feature map的最大值,这有助于加快训练速度。当选择最强的特征时,反向传播可以得到较大的梯度。

LeNet-4

在 Lenet-4 中, **32×32 输入图片 ** -->4个 28×28 feature maps 卷积层 (5×5 size) --> Average Pooling layers (2×2 size) > 6个 10×10 feature maps卷积层r (5×5 size) --> Average Pooling layers (2×2 size) -->全连接到 120个神经元 -->全连接到 10 输出

有了更多的特征图和一个更完整的连接层,测试数据的错误率为1.1%。

LeNet-5

LeNet-5是最受欢迎的LeNet-5,与LeNet-4相比只有细微差别

32x32的输入图像 => 6个28×28 feature maps 卷积层(5×5 size) => 平均池化层(2×2大小)=>16个10×10 feature maps 卷积层(5×5 size) => 平均池化层(2×2大小)=>全连接到120个神经元 => 全连接84个神经元 => 全连接到10个输出

有了更多的feature map和多一个全连接层,测试数据的错误率为0.95%。

Boosted LeNet-4

Boosting是一种将几个或多个弱分类器的结果进行组合以获得更精确结果的技术。在LeNet-4中,将三个LeNet-4的输出简单相加,其中值最大的就是预测的分类类。当第一个网有一个很高的置信度答案,将会提升,其他网络不会被调用。

使用boosting,测试数据的错误率为0.7%,甚至比LeNet-5的错误率还要低。

这种boosting 技术已经使用了很多年,直到现在。

Summary on Error Rate

  1. Baseline Linear Classifier: 8.4%

  2. One-Hidden-Layer Fully Connected Multilayer NN: 3.6% to 3.8%

  3. Two-Hidden-Layer Fully Connected Multilayer NN: 2.95% to 3.05%

  4. LeNet-1: 1.7%

  5. LeNet-4: 1.1%

  6. LeNet-5: 0.95%

  7. Boosted LeNet-4: 0.7%

我们可以看到,在增加深度学习组件或一些机器学习技术的同时,错误率正在降低。

Discussions

在这几篇文章[1-3]中,实际上有很多关于深度学习的基本技术都有详细的描述。此外,不同版本的LeNet甚至还与其他传统方法如PCA、k-NN、SVM进行了比较。

我们需要注意的是:

9.1. Activation Function

Tanh 用作激活函数,但输出部分除外。 Sigmoid作为在输出端的激活函数。 ReLU在那些年没有使用。

[如今]以及后来的研究发现,ReLU是一个在训练过程中加速收敛的较好的激活函数。

9.2. Pooling Layer

如前所述,LeNet使用平均池化而不是最大池化。

[现在]最大池化非常常见,甚至没有池化层。

9.3. Hidden Layers

在过去,隐藏层的数量很少,性能不可能通过增加更多的层来提高太多。

[现在]它可以是成百上千的隐藏层。

9.4. Training Time

在过去,训练需要几天时间。

[现在]但现在,它只是一个小的网络GPU加速。

10.Conclusions

总之,LeNet的论文确实值得一读,尤其是对于深度学习的初学者。

https://medium.com/@sh.tsang/very-quick-setup-for-style-recognition-using-pretrained-caffenet-alexnet-using-nvidia-docker-2-0-927a42634bb0

References

  1. [1989 NIPS] [LeNet-1] Handwritten Digit Recognition with a Back-Propagation Network

    http://yann.lecun.com/exdb/publis/pdf/lecun-90c.pdf

  2. [1995 ICANN] [LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4] Comparison of Learning Algorithms for Handwritten Digit Recognition

    http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

  3. [1998 Proc. IEEE] [LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4] Gradient-Based Learning Applied to Document Recognition

    http://yann.lecun.com/exdb/publis/pdf/lecun-01a.pdf

  4. VERY QUICK SETUP of LeNet-5 for Handwritten Digit Classification Using Nvidia-Docker

    https://medium.com/@sh.tsang/very-quick-setup-of-lenet-5-for-written-digit-classification-using-nvidia-docker-2-0-a4e7ba76c68a

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

细品经典:LeNet-1, LeNet-4, LeNet-5, Boosted LeNet-4相关推荐

  1. 【CNN】卷积神经网络(LeNet)是什么?如何实现LeNet?

    系列文章目录 第一章 深度学习 CNN中的卷积神经网络(LeNet) 目录 系列文章目录 文章目录 前言 一.卷积神经网络(LeNet)是什么? 二.LeNet的网络结构 三.实现LeNet模型 ​​ ...

  2. 原生 遍历_细品原生JS从初级到高级知识点汇总(三)

    作者:火狼1 转发链接:https://juejin.im/post/5daeefc8e51d4524f007fb15 目录 细品原生JS从初级到高级知识点汇总(一) 细品原生JS从初级到高级知识点汇 ...

  3. 细品java封装继承多态

    目录: 1.封装 2.继承 3.多态 1.封装 封装的作用:封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法,如果属性不想被外界访问,我们大可不必提供方法给外界访问.但是如果一个类没 ...

  4. 不允许使用java方式启动_细品 Java 中启动线程的正确和错误方式

    细品 Java 中启动线程的正确和错误方式 前文回顾详细分析 Java 中实现多线程的方法有几种?(从本质上出发) start 方法和 run 方法的比较 代码演示:/** * * start() 和 ...

  5. css就近原则_细品100道CSS知识点(上)「干货满满」

    作者:hh_phoebe 转发链接:https://juejin.im/post/5ee0cf335188254ec9505381 目录 细品100道CSS知识点(上)[干货满满]本篇 细品100道C ...

  6. URP SMAA 细品

    URP SMAA 细品 目录 URP SMAA 细品 1 SMAA 大致思路 2 SMAA 具体实现流程 2.1 边缘检测 2.1.1 顶点着色器 SMAAEdgeDetectionVS 2.1.2 ...

  7. android平板接口,初学者必读 细品平板接口的百般滋味

    1历史悠久 原来接口学问多 1831年法拉第发现当磁铁穿过一个闭合电路便会有电流产生.这项伟大的发现使人类制造出世界上第一台能产生连续电流的发电机.有了持续电能供应,从此人类进入电器应用时代,电器的接 ...

  8. 沈询 java进阶,7细品这杯香浓的咖啡 阿里中间件高级专家沈询的JAVA之旅

    细品这杯香浓的咖啡--阿里中间件高级专家沈询的Java之旅 发表于2015-05-1915:38|5850次阅读|来源CSDN|13条评论|作者王晶昱 Java20周年特别策划Java<程序员& ...

  9. 细品RibbonX(25):使用自定义图片和库

    细品RibbonX(25):使用自定义图片和库 资料整理来自于论坛 完整版下载地址:http://download.csdn.net/download/nodeman/10264659 Loading ...

最新文章

  1. 【转】对random_state参数的理解
  2. 前嗅ForeSpider教程:网站登录配置
  3. javascript 分时函数 分批次添加DOM节点 timeChunk
  4. 软考网络工程师笔记-综合知识2
  5. DataWindow修改的单元格文字颜色改变
  6. 图片渲染延迟_Qt入门DirectX11学习之旅(六)DirectX11 GBuffer Deffered延迟渲染
  7. pytorch可视化实例:gradcam在resnet18上的应用(快餐式代码教程)
  8. STVD环境下开发STM8,如何查看工程占用的Flash、EEPROM、RAM的情况
  9. 惠普的软件定义IT和芯片级安全
  10. 台式计算机如何取消屏幕密码,台式电脑怎么取消锁屏?
  11. 洋流[Theocean flow]介绍----科普知识
  12. 天马杯-NLP赛道(科技新闻分类与摘要)赛后总结
  13. 如何批量一键下单寄快递
  14. 计算机毕设-学籍管理系统
  15. Boomzap一个虚拟游戏开发工作室的成功经验
  16. Asp.Net Ajax (1)---入门篇
  17. 网易云音乐ios停更_20(更多)网站下载免费的创用CC音乐
  18. win10 网络突然连不上,解决办法
  19. [重学Java基础][Java IO流][Exter.1]Apache Commonms Compress压缩工具包
  20. 惠普M329打印机更换副厂硒鼓后提示墨粉不足并无法打印

热门文章

  1. Go开发者路线图2019,请收下这份指南
  2. 程序员单身比例有多高?【2019开发者图鉴】告诉你
  3. 开发者转型AI看过来,这是一场汇聚中美顶尖专家的AI盛会
  4. AI一分钟 | 小米公布Q2财报,上市以来股价振幅高达30%;俄制造商推出步行杀手机器人...
  5. 公司新来的同事一顿操作把大家整懵了,问了他的经历细思极恐。。。
  6. MyBatis-Plus,搭配 Spring Boot 使用,一篇就够了
  7. 为什么不建议你用a.equals(b)判断对象相等
  8. 推荐一款 Java 对象映射神器
  9. 面试官:Java 到底是值传递还是引用传递?
  10. 恕我直言,HttpClient 你不一定会用