LeNet

模型特点

LeNet5诞生于1994年,由Yann LeCun提出,充分考虑图像的相关性。当时结构的特点如下:
1)每个卷积层包含三个部分:卷积(Conv)、池化(ave-pooling)、非线性激活函数(sigmoid)
2)MLP作为最终的分类器
3)层与层之间稀疏连接减少计算复杂度

结构模型

图1-1 LeNet结构示意

网络层介绍

Input Layer:1*32*32图像
Conv1 Layer:包含6个卷积核,kernal size:5*5,parameters:(5*5+1)*6=156个
Subsampling Layer:average pooling,size:2*2
                                  Activation Function:sigmoid
Conv3 Layer:包含16个卷积核,kernal size:5*5  ->16个Feature Map
Subsampling Layer:average pooling,size:2*2
Conv5 Layer:包含120个卷积核,kernal size:5*5
Fully Connected Layer:Activation Function:sigmoid
Output Layer:Gaussian connection

对于卷积层,其计算公式为

其中K表示由L层到L+1层要产生的feature的数量,表示“卷积核”,表示偏置,也就是bias,

令卷积核的大小为5*5,总共就有6*(5*5+1)=156个参数,

对于卷积层C1,每个像素都与前一层的5*5个像素和1个bias有连接,

所以总共有156*28*28=122304个连接(connection)。

对于LeNet5,S2这个pooling层是对C1中的2*2区域内的像素求和再加上一个偏置,

然后将这个结果再做一次映射(sigmoid等函数),所以相当于对S1做了降维,此处共有6*2=12个参数。

S2中的每个像素都与C1中的2*2个像素和1个偏置相连接,所以有6*5*14*14=5880个连接(connection)。

除此外,pooling层还有max-pooling和mean-pooling这两种实现,

max-pooling即取2*2区域内最大的像素,而mean-pooling即取2*2区域内像素的均值。

LeNet5最复杂的就是S2到C3层,其连接如下图所示。

前6个feature map与S2层相连的3个feature map相连接,

后面6个feature map与S2层相连的4个feature map相连接,

后面3个feature map与S2层部分不相连的4个feature map相连接,

最后一个与S2层的所有feature map相连。

卷积核大小依然为5*5,

所以总共有6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516个参数。

而图像大小为10*10,所以共有151600个连接。

S4是pooling层,窗口大小仍然是2*2,共计16个feature map,

所以32个参数,16*(25*4+25)=2000个连接。

C5是卷积层,总共120个feature map,每个feature map与S4层所有的feature map相连接,卷积核大小是5*5,

而S4层的feature map的大小也是5*5,所以C5的feature map就变成了1个点,共计有120(25*16+1)=48120个参数。

F6相当于MLP中的隐含层,有84个节点,所以有84*(120+1)=10164个参数。

F6层采用了正切函数,计算公式为,

输出层采用了RBF函数,即径向欧式距离函数,计算公式为,

以上就是LeNet5的结构。

表1 LeNet各层输入输出及资源使用

 

LeNet的更多相关文章

  1. 卷积神经网络(CNN)学习算法之----基于LeNet网络的中文验证码识别

    由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013+Python2.7.12环境下的C ...

  2. caffe_手写数字识别Lenet模型理解

    这两天看了Lenet的模型理解,很简单的手写数字CNN网络,90年代美国用它来识别钞票,准确率还是很高的,所以它也是一个很经典的模型.而且学习这个模型也有助于我们理解更大的网络比如Imagenet等等 ...

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

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

  4. 基于LeNet网络的中文验证码识别

    基于LeNet网络的中文验证码识别 由于公司需要进行了中文验证码的图片识别开发,最近一段时间刚忙完上线,好不容易闲下来就继上篇<基于Windows10 x64+visual Studio2013 ...

  5. 【Caffe 测试】Training LeNet on MNIST with Caffe

    Training LeNet on MNIST with Caffe We will assume that you have Caffe successfully compiled. If not, ...

  6. CNN网络架构演进:从LeNet到DenseNet

    卷积神经网络可谓是现在深度学习领域中大红大紫的网络框架,尤其在计算机视觉领域更是一枝独秀.CNN从90年代的LeNet开始,21世纪初沉寂了10年,直到12年AlexNet开始又再焕发第二春,从ZF ...

  7. 经典卷积神经网络(LeNet、AlexNet、VGG、GoogleNet、ResNet)的实现(MXNet版本)

    卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现. 其中 文章 详解卷 ...

  8. 卷积神经网络的一些经典网络(Lenet,AlexNet,VGG16,ResNet)

    LeNet – 5网络 网络结构为: 输入图像是:32x32x1的灰度图像 卷积核:5x5,stride=1 得到Conv1:28x28x6 池化层:2x2,stride=2 (池化之后再经过激活函数 ...

  9. 卷积神经网络之LeNet

    开局一张图,内容全靠编. 上图引用自 [卷积神经网络-进化史]从LeNet到AlexNet. 目前常用的卷积神经网络 深度学习现在是百花齐放,各种网络结构层出不穷,计划梳理下各个常用的卷积神经网络结构 ...

  10. 深度学习识别CIFAR10:pytorch训练LeNet、AlexNet、VGG19实现及比较(三)

    版权声明:本文为博主原创文章,欢迎转载,并请注明出处.联系方式:460356155@qq.com VGGNet在2014年ImageNet图像分类任务竞赛中有出色的表现.网络结构如下图所示: 同样的, ...

随机推荐

  1. 重新学习之spring第一个程序,配置IOC容器

    第一步:导入相关jar包(此范例导入的是spring3.2.4版本,spring2.5版本只需要导入spring核心包即可) 第二步:在项目的src下配置applicationContext.xml的 ...

  2. Vim: 有关空格和tab的设置,以及如何全文将空格转成tab

    这两行可以放在~/.vimrc: :set tabstop=8:set noexpandtab 这个可以每次手动运行,从而将所有的空格转成tab:%retab!

  3. POJ3662电缆

    题目:http://poj.org/problem?id=3662 二分答案.然后边权>mid的边的边权2记为1,否则记为0.找一个边权2的最短路,看dis[n]是否<=K. 别忘了不能到 ...

  4. C++等语言中整型int等的取值范围计算方式

    举short为例说明 如果以最高位为符号位,二进制原码最大为0111111111111111=2的15次方减1=32767.最小为1111111111111111=-2的15次方减1=-32767此时 ...

  5. LCD的接口类型详解

    LCD的接口有多种,分类很细.主要看LCD的驱动方式和控制方式,目前手机上的彩色LCD的连接方式一般有这么几种:MCU模式,RGB模式,SPI模式,VSYNC模式,MDDI模式,DSI模式.MCU模式 ...

  6. PowerDesigner如何将消失的工具栏显示出来

    工具Tool->自定义工具栏,在弹出窗口中选中Palette,并点击[Close]关闭窗口.  

  7. pyspark连接mysql

    from pyspark import SparkContext from pyspark.sql import SQLContext if __name__=="__main__" ...

  8. Java-Runoob-高级教程-实例-字符串:04. Java 实例 - 字符串替换

    ylbtech-Java-Runoob-高级教程-实例-字符串:04. Java 实例 - 字符串替换 1.返回顶部 1. Java 实例 - 字符串替换  Java 实例 如何使用java替换字符串 ...

  9. web前端知识体系大全【欢迎补充】

    大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的是想要颠覆人 ...

  10. OpenFeign使用笔记

    是什么 Feign是一个声明式Web Service客户端.使用Feign能让编写Web Service客户端更加简单, 它的使用方法是定义一个接口,然后在上面添加注解,同时也支持JAX-RS标准的注 ...