LeNet论文学习与理解

一. 模型介绍

LeNet-5出自1998年YE Cun的论文《Gradient-Based Learning Applied to Document Recognition》,在上篇blog中有网盘链接可以下载~这篇文章指出LeNet-5对于手写数字识别是一个非常高效的网络。下图是该网络的结构:
图1
可以看到:

  • 除了输入层之外,LeNet-5一共含有7层;
  • 每层都包含可训练参数;
  • 每层包括多个feature map。

二. 各层详解

1. 输入层-INPUT

从上图中可以看到,输入是二维图像,大小为 32 ∗ 32 32*32 3232,它要比数据库中最大的还要大一点,这是因为我们希望潜在的不同的特征(例如终点或角点)能出现在更深层的特征检测子的接收区域的中心。

2. 卷积层-C1

C1层是对输入图像进行第一次卷积运算,它采用了6个 5 ∗ 5 5*5 55的卷积核,得到的是6个 28 ∗ 28 28*28 2828的feature map(32-5+1=28)。
由于卷积核的大小为 5 ∗ 5 5*5 55,需要学习的weight和bias总共就有 6 ∗ ( 5 ∗ 5 + 1 ) = 156 6*(5*5+1)=156 6(55+1)=156个参数,+1即表示一个核有一个bias。
对于卷积层C1,由于feature map的每个像素都与卷积核中的5*5个像素和1个bias有连接,所以总共有 156 ∗ 28 ∗ 28 = 122304 156*28*28=122304 1562828=122304个连接(connection)。
然而我们只需要学习156个参数,这是因为CNN的主要特点之一权值共享
总结:

参数说明
input size 32 ∗ 32 32*32 3232
filter size 5 ∗ 5 5*5 55
filter num6
feature map size 28 ∗ 28 28*28 2828
params ( 5 ∗ 5 + 1 ) ∗ 6 = 156 (5*5+1)*6=156 (55+1)6=156
connections122304

3. 池化层-S2

池化即下采样,LeNet-5使用了 2 ∗ 2 2*2 22的filter,对C1中的每个feature map接受到的2*2区域内的像素求和,再乘以一个可训练参数weight,再加上一个可训练参数偏置bias,最后这个结果还会通过sigmoid激活函数,从而获得S2层的6个feature map。
需要学习的参数为 ( 1 + 1 ) ∗ 6 = 12 (1+1)*6=12 (1+1)6=12个,连接数为 ( 2 ∗ 2 + 1 ) ∗ 6 ∗ 14 ∗ 14 = 5880 (2*2+1)*6*14*14=5880 (22+1)61414=5880
总结:

参数说明
input size 28 ∗ 28 28*28 2828
filter size 2 ∗ 2 2*2 22
filter num6
feature map size 14 ∗ 14 14*14 1414
params12
connections5880

4. 卷积层-C3

该卷积层采用了16个大小为 5 ∗ 5 5*5 55的filter,得到的C3中的feature map大小为 14 − 5 + 1 = 10 14-5+1=10 145+1=10,这些feature map是由S2中所得特征通过不同的组合方式产生的。

总结为:

参数说明
input size 14 ∗ 14 14*14 1414
filter size 5 ∗ 5 5*5 55
filter num16
feature map size 10 ∗ 10 10*10 1010
params1516
connections151600

说明:
C3层中的feature map是与S2中的某几个feature map相连接的,也就是说C3层的feature map是S2层提取到的feature map的不同组合。文章中指出,这些组合方式包括:

  • C3层的前6个feature map是以S2层中3个相邻的feature map子集作为输入;

  • 接下来6个feature map以S2层中4个相邻的feature map子集为输入;

  • 接下来3个feature map以S2层中不相邻的4个feature map子集作为输入;

  • 最后一个feature map以S2层的所有feature map作为输入。
    如下图所示:
    图2
    为什么要采取这种方式而不是将S2层的每个feature map与C3层的每个feature map相连接呢?原文中给出了两个原因:

  • 有效的减少参数量;

  • 有利于提取多种不同的特征;

    那么需要训练的参数为: 6 ∗ ( 3 ∗ 5 ∗ 5 + 1 ) + 6 ∗ ( 4 ∗ 5 ∗ 5 + 1 ) + 3 ∗ ( 4 ∗ 5 ∗ 5 + 1 ) + 1 ∗ ( 6 ∗ 5 ∗ 5 + 1 ) = 1516 6*(3*5*5+1)+6*(4*5*5+1)+3*(4*5*5+1)+1*(6*5*5+1)=1516 6(355+1)+6(455+1)+3(455+1)+1(655+1)=1516
    连接数为: 10 ∗ 10 ∗ 1516 = 151600 10*10*1516=151600 10101516=151600

5. 池化层-S4

这是第二个池化层,该层所使用的filter大小仍为 2 ∗ 2 2*2 22,以C3层中的16个大小为 10 ∗ 10 10*10 1010的feature map作为输入,得到的S4为16个大小为 5 ∗ 5 5*5 55的feature map。此处的连接方式与C1-S2的连接方式是相同的。
那么需要学习的参数为 ( 1 + 1 ) ∗ 16 = 32 (1+1)*16=32 (1+1)16=32个,连接数为 ( 2 ∗ 2 + 1 ) ∗ 16 ∗ 5 ∗ 5 = 2000 (2*2+1)*16*5*5=2000 (22+1)1655=2000
总结:

参数说明
input size 10 ∗ 10 10*10 1010
filter size 2 ∗ 2 2*2 22
filter num16
feature map size5*5
params32
connections2000

6. 卷积层-C5

C5是第三个卷积层,该层的输入是16个大小为 5 ∗ 5 5*5 55的feature map,使用的filter大小也是 5 ∗ 5 5*5 55,因此C5中的feature map大小为 1 ∗ 1 1*1 11。C5共有120个feature map,每一个都和上一层的16个feature map相连,因此可训练参数为: ( 16 ∗ 5 ∗ 5 + 1 ) ∗ 120 = 48120 (16*5*5+1)*120=48120 (1655+1)120=48120,连接数也是48120。之所以称该层为卷积层而不是全连接层是因为,如果LeNet-5的输入在其他设置都保持不变的情况下变大,feature map的维数将大于 1 ∗ 1 1*1 11
总结:

参数说明
input size 5 ∗ 5 5*5 55
filter size 5 ∗ 5 5*5 55
filter num120
feature map size 1 ∗ 1 1*1 11
params48120
connections48120

7. 全连接层-F6

第6层是全连接层,该层有84个unit,这里的84是由输出决定的,它对应于一个7x12的比特图。
以C5的120个 1 ∗ 1 1*1 11的vector作为输入,该层会计算输入vector与权重vector的点积,再加上偏置后通过sigmoid函数输出结果,因此该层的训练参数和连接数为: 84 ∗ ( 120 + 1 ) = 10164 84*(120 + 1)=10164 84(120+1)=10164

8. 输出层-F7

输出层也是一个全连接层,该层有10个unit,分别代表了数字0-9,若第i个unit的值为0,就说明网络识别结果为数字i。
该层采用的连接方式为RBF(径向基函数), x i x_i xi是F6的输出(即F7的输入),记 a i a_i ai为F6中 输 入 ∗ 权 重 + 偏 置 输入*权重+偏置 +,那么: x i = f ( a i ) x_i=f(a_i) xi=f(ai),其中
在这里插入图片描述 y i y_i yi为F7的输出, i = 0 , ⋯   , 9 i=0,\cdots,9 i=0,,9,那么计算方式为:
在这里插入图片描述其中 w i j w_{ij} wij的值由数字 i i i的比特图编码确定, i = 0 , ⋯   , 9 i=0,\cdots,9 i=0,,9 j = 0 , ⋯   , 7 ∗ 12 − 1 j=0,\cdots,7*12-1 j=0,,7121。RBF输出的值越接近于0,则识别结果越接近于字符 i i i,即越接近于数字 i i i的ASCII编码图,也就是说表示当前网络输入的识别结果是字符 i i i
在这里插入图片描述
对于该层的每个unit,都有84个input,因此可训练参数为: 84 ∗ 10 = 840 84*10=840 8410=840,同样连接数也是840个。

9. 损失函数

LeNet-5采用的Loss Function是MSE(the Minimum Mean Squared Error),即:
在这里插入图片描述
其中 Z p Z_p Zp是整个网络的输入, y D p y_{D_p} yDp是RBF中第 D p D_p Dp个单元的输出。

三. 小结

原文并没有完整的读下来,粗略的看了一下网络结构,如有不足请批评指正~

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值