快捷搜索: 王者荣耀 脱发

CNN样例—手写字母识别LeNet-5

最近心血来潮,想学习深度学习,读了的zouxy09的各篇博文,到了LeNet-5那里,突然戛然而止,难以理解,众多博主一致推荐研读Yann Lecun大牛的1998年的大作,于是听从嘱托,只看了其中的前十页。本文将是对Lecun Yann的Gradient-Based Learning Applied to Document Recognition中的LeNet-5手写数字系统的简要理解,由于个人英语水平有限,难免会有所疏漏和错误,希望大家能够不吝指点。

查看各位博主额评论,其中最难以理解的就是参数的个数。以下两个图是关键。

图1 LeNet-5架构

如上图所示,LeNet-5系统是一个深度卷积网络,除去输入层,共7个隐层。

下边逐层讲解。

输入层Input到C1之间:Input为32*32,通过5*5的卷积运算得到,卷积运算是重叠的,因此feature map每层为(32-5+1)*(32-5+1)=28*28,。由于feature map相同层共享权值,而不同层之间权值不同,因此,共有6*(5*5+1)=156个参数。

C1到S2之间:这个两层之间为亚采样过程(subsampling),可以使得分辨率降低,减少计算难度。亚采样过程是非重叠的,S2中的每个点对应C1中2*2的区域(也就叫感受野)。感受野中的四个元素首先相加,再乘以一个系数,再加上一个偏差。因此这层共有6*(1+1)=12个参数。

S2到C3之间:C3和S2之间的对应关系见表一。C3总共有16层,而每层中的每个点与S2的多个层相关,比如下表中的第4列(从0开始编号)表示:S2中的第0、4和5层有关,因此,这层共有1516=5*5*(6*3+9*4+1*6)+16,其中最后一项16代表16个偏差,而括号内的值正好是表中X的个数。之所以采用这样的表,Lecun给了两个理由:1、可以减少连接个数;2、可以打破网络的对称性,不同的feature maps可以组合得到不同feature map。

图2 表中的每一列表示在特定的S3特征映射的单元对应哪些C2特征映射被结合起来

C3到S4之间:又是一个亚采样过程。共有16*(1+1)=32个参数。

C5是一个卷积层,共有120个feature maps,每个map的尺寸是1*1,C5的每个unit与16个S4的feature maps相连,这层之所以叫做卷积层,而不叫全连接层,是因为,假如输入的图像尺寸更大,并且其他参数保持不变的话,那么C5的map维度将大于1。C5与S4之间含有(5*5*16+1)*120个参数。

F6有84个单元,与C5全连接,共有(120+1)*84=10164。

前六层的计算都是通过输入向量和权值向量相乘,并加偏置,最后通过一个sigmoid函数,如双曲函数tanh()。

最后的输出层由欧几里得RBF单元组成,每个单元代表一个类别,输出单元的计算公式如下:输入向量与权值向量相差越大,RBF输出越大。其中权值向量是7*12大小,这也是F6为84个元素的原因所在。

经验分享 程序员 微信小程序 职场和发展