深度学习:LeNet-5学习
来源:互联网 发布:2017 淘宝 我的空间 编辑:程序博客网 时间:2024/06/05 17:02
本人CV小硕一枚,近期开始写博客记录自己的机器视觉学习之路,一来对自己所学加以纪录做到温故而知新,二来也能为初学者提供学习的一些资源。所写内容若有不妥之处,还请各位看官指正~
最近阅读了Yann LeCun的论文‘Gradient-Based Learning Applied to Document Recognition‘,文章中描述到传统的对于手写字体的识别主要分为两大模块:一、特征提取模块,需要设计特征提取器,来进行特征的提取;二、使用提取的结果进行分类,针对每一个类别产生score,选取score高的分类结果作为最后输出;流程如下:
而Yann LeCun在文中提出使用7层(不包含输入)卷机神经网络来进行手写字母的识别(单独的字母),feature由网络自身自学习得到,不再手工设计,体现了深度学习的自学习性,以下为网络的结构图:
接下来依次对每一层进行学习:
C1层:C1层为卷积层,由6个feature map构成,会自学习得到六种不同的卷积核。C1层通过对输入图像进行卷积操作得到(6个卷积核故得到6幅图像),卷积操作(不了解卷积操作可以参考http://www.36dsj.com/archives/24006),可以有效的使原信号特征增强,并降低噪音。输入为32*32大小的手写字体图像,特征图中每个神经元和输入5*5区域相连,因此特征图大小为28*28(32-5+1=28),训练的参数总数为156个((5*5+1)*6=156,每个feature map有5*5的卷积核参数以及一个bias参数),总连接数为122304个(156*28*28=122304)。
S2层:是一个sub-sampling层,可译为下采样层,共有6个feature map,每个map中的神经元和对应C1层特征图中相应位置的2*2的区域相连接(注意这里不再是领域),因此经过下采样操作S2层中的feature map大小为14*14(28/2=14),对于每个神经元2*2的输入,首先对这四个输入进行累加,然后乘以可训练参数,最后加上一个bias参数,通过sigmoid激活函数得到对应神经元的结果,在此层,训练参数为12个(2*6=12),总连接数为5880个((2*2+1)*14*14*6=5880)。
C3层:C3层也为卷积层,共有16个10*10大小的feature map,通过对6个14*14feature map卷积操作得到,在文中,作者通过对S2层中6个特征图的不同组合来进行卷积操作,组合情况如下:
横向编号表示生成的C3层特征图编号,纵向表示S2层特征突编号,以第一列为例,C3层0号特征图的生成是通过对S2层0、1以及2号特征图做卷积操作得到的,具体的计算没看到论文中有给出,我的理解如下(还请知道的同学指正哈):还以第一列为例,分别为S2层0,1,2图相应的5*5区域进行卷积操作,得到的结果再累加,最后加上bias参数,使用sigmoid激活函数得到相应C3层神经元。因此,总训练参数为1516个(6*(5*5*3+1)+9*(5*5*4+1)+(5*5*6+1)=1516),总连接数为151600个(1516*10*10);
S4层是一个下采样层,具体操作与S2层类似,16个5*5的feature map组成,总训练参数为32个(2*16=32),总连接数为2000个((2*2+1)*5*5*16=2000);
C5层为卷积层,共有120个1*1的特征图,每个特征图与S4层中16个特征图全连),由于S4层特征图大小5*5,滤波器大小也为5*5,故产生的特征图大小为1*1,共有120个(若卷积核大小不为5*5,则此层不再是全连接,故在文中仍将此层称为卷积层),训练参数总数为48120个((5*5*16+1)*120=48120),总连接数也为48120个(因为feature map大小1*1);
F6层为全连接层,与C5层全连接,共有84个单元(论文中提到选择84个单元主要为对于输出层的考虑),训练参数为10164个(84*(120+1)),连接也为10164个;
最后是output层,共有10个单元,刚好对应了0-9十个数字,由欧式径向基函数(RBF)构成,具体的计算公式为:
输入离参数越远,RBF函数输出越大。
网络参数拟合通过backpropogation进行,训练过程为先对初始网络参数赋值,然后对训练图片进行输入,依次由C1至output layer得到输出,与标准输出进行比较,计算差值,通过BP更新公式由后至前进行参数更新。若为累积BP方式,则每一轮后进行参数更新,并计算误差,若误差满足,则完成训练,否则继续训练;若为标准BP方式,则每一个样本过后均进行参数更新,并进行误差计算,若满足则停止训练。
- 深度学习:LeNet-5学习
- 深度学习: LeNet 网络
- 深度学习之LeNet模型
- 深度学习(四)卷积神经网络Lenet-5实现
- 深度学习 CNN卷积神经网络 LeNet-5详解
- [深度学习之CNN]CNN卷积神经网络LeNet-5
- 深度学习介绍(三)LeNet
- 【深度学习】经典网络结构-LeNet
- 深度学习入门篇(一) Lenet深度神经网络
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- Deep Learning(深度学习)学习笔记整理系列之LeNet-5卷积参数个人理解
- Deep Learning(深度学习)之LeNet-5卷积参数个人理解
- 深度学习之一:卷积神经网络CNN经典模型整理(Lenet-5)
- 深度学习(二).Caffe之使用LeNet-5模型识别手写体数字
- 深度学习网络Lenet Alexnet VGG GoogleNet 总结笔记
- oclint规则 Unused(无用)
- CMakeCache.txt is different 错误
- JAVA001对象导论06
- ld: library not found for -lAFNetworking
- c++深拷贝和浅拷贝
- 深度学习:LeNet-5学习
- 代码混淆与反编译
- 【nowcoder】9.5 阿里巴巴2017实习生笔试题(一)
- Linux系统下如何修改主机名
- 闭环管理--循环往复的闭环系统
- JSP 的responsed对象的增加cookie
- 反射中getMethods 与 getDeclaredMethods 的区别
- SpringMVC 史上最全最强详细示例实战教程
- css画一个三角形