神经网络系列(一)--LeNet5解析

一、简介

LeNet是卷积神经网络的祖师爷LeCun在1998年提出,用于解决手写数字识别的视觉任务。当年美国大多数银行就是用它来识别支票上面的手写数字的,它是早期卷积神经网络中最有代表性的实验系统之一,是一种用于手写体字符识别的非常高效的卷积神经网络。 自那时起,CNN的最基本的架构就定下来了:卷积层、池化层、全连接层。

LeNet-5 中的5代表卷积核的尺寸。

二、网络架构

1. 组成部分

在这里插入图片描述

可以看到LeNet-5结构 共有7层,其中包括3层卷积层,2层池化层,2层全连接层。

2. 各层详解

1、 INPUT-输入层

接收数据32 * 32 大小的图像数据,此层传统上不算LeNet-5的网络层次结构

2、 C1 卷积层

输入: 32 * 32

卷积核大小: 5 * 5

卷积核个数: 6

输出featuremap大小:28 * 28 (32-5+1)=28

输出数量为:6

连接数:(5 * 5 + 1)* 6 * 28 * 28

对输入图像进行第一次卷积运算(使用 6 个大小为 55 的卷积核),得到6个C1特征图(6个大小为2828的 feature maps, 32-5+1=28)。我们再来看看需要多少个参数,卷积核的大小为55,总共就有6(55+1)=156个参数,其中+1是表示一个核有一个bias。对于卷积层C1,C1内的每个像素都与输入图像中的55个像素和1个bias有连接,所以总共有1562828=122304个连接(connection)。有122304个连接,但是我们只需要学习156个参数,主要是通过权值共享实现的。

C1层共有26x6=156个训练参数,有(5x5+1)x28x28x6=122304个连接

3、 S2 池化层(下采样层)

输入: 28 * 28

采样区域 : 2 * 2

采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置,得到结果通过sigmoid 函数

采样种类:6

输出featuremap大小: 14 * 14 (28/2)

输出数量为:6

连接数:(2 * 2 + 1)* 6 * 14 * 14

S2层共有5x6=30个训练参数,有5x14x14x6=5880个连接个连接

4、 C3 卷积层
输入: 14 * 14

卷积核大小: 5 * 5

卷积核个数: 16

输出featuremap大小:10 * 10 ( 14 - 5 + 1)= 10

输出数量为:16

训练参数:6 * ( 3 * 5 * 5 + 1) + 6 * ( 4 * 5 * 5 + 1) + 3 * ( 4 * 5 * 5 + 1 ) + 1 * ( 6 * 5 * 5 + 1)=1516

为什么从6个特征图得到16个特征图?如何理解!
首先从 6 * ( 3 * 5 * 5 + 1) 看

卷积核个数为16, 前6个卷积核分别跟S2对应的相邻的3个特征图做运算

如 0号卷积核跟 0-1-2 特征图做运算 , 1号卷积核跟 1-2-3 特征图做运算,依次类推…

在这里插入图片描述
在这里插入图片描述
其次,在第二轮中,
6 * ( 4 * 5 * 5 + 1)

卷积核个数为16, 第二轮6个卷积核分别跟S2对应的相邻的4个特征图做运算

如 0号卷积核跟 0-1-2-3 特征图做运算 , 1号卷积核跟 1-2-3-4 特征图做运算,依次类推…
在这里插入图片描述

依次类推…

最后得到 151600个连接数

5、 S4 池化层(下采样层)

输入: 10 * 10

采样区域 : 2 * 2

采样方式:4个输入相加,乘以一个可训练参数,再加上一个可训练偏置,得到结果通过sigmoid 函数

采样种类:16

输出featuremap大小: 5 * 5 (10/2)

输出数量为:16

连接数:16 * 5 * 5

S2层共有5x16=90个训练参数,有5x14x14x6=5880个连接个连接

6、 C5 卷积层

输入: 5 * 5

卷积核大小: 5 * 5

卷积核个数: 120

输出featuremap大小:1 * 1 (5-5+1)=1

输出数量为:120

连接数:120 *(16 * 5 * 5 + 1)=48120

7、 F6 全连接层

输入:c5 120维向量

计算方式:计算输入向量和权重向量之间的点积,再加上一个偏置,结果通过sigmoid函数输出。

F6层是全连接层。F6层有84个节点,对应于一个7x12的比特图,该层的训练参数和连接数都是(120 + 1)x84=10164

8、 Output 层-全连接层

Output层也是全连接层,共有10个节点,分别代表数字0到9,如果节点i的输出值为0,则网络识别的结果是数字i。采用的是径向基函数(RBF)的网络连接方式。假设x是上一层的输入,y是RBF的输出,则RBF输出的计算方式是:

yi的值由i的比特图编码(即参数Wij)确定。yi越接近于0,则标明输入越接近于i的比特图编码,表示当前网络输入的识别结果是字符i。该层有84x10=840个设定的参数和连接。

在这里插入图片描述

以上是LeNet-5的卷积神经网络的完整结构,共约有60,840个训练参数,340,908个连接。一个数字识别的效果如图所示:
在这里插入图片描述

三、总结

  1. LeNet-5 输出了深度神经网络的标准样式(卷积层、池化层、全连接层)
  2. LeNet-5 是作为手写字符识别比较高效的神经网络

python实现mnist-LeNet5预测代码

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值