深度学习(卷积神经网络LENET)

Lenet 是一系列网络的合称,包括 Lenet1 – Lenet5,由 Yann LeCun 等人在 1990 年《Handwritten Digit Recognition with a Back-Propagation Network》中提出,是卷积神经网络的 HelloWorld。

在这一讲中我们将讲解目前深度学习领域最常用的一个模型
卷积神经网络
convolutional neural networks
简称cnn
cn的历史可以追溯到1980年福库西马发明的神经认知基
你要考个内存
这是第一个通过自动学习卷积核的人工神经网络系统
具备了cnn最基础的性质
在1998年
在贝尔实验室工作的the queen开发了一套能够识别手写数字的系统
即识别一张二级图片是0~9数字当中的哪一个
那可以自己的名字命名的这个cnn为l1 let
这是cnn第一次走入实际的应用领域
那quin的工作基本上定义了目前cnn当中常用的技术
包括自动学习
卷积核
多层结构
降采样
全连接等等组成的部分
以下是经典的net的结构
它包含了七成
首先是一个输入层
输入一张32×32的二值图像
lu net有两个卷积层
分别用c一和c3 表示
同时它有两个降采样成s2 和s4
最后它有两个全连接层
c5 f6 和一个输出成
首先我们说一下卷积的概念
如这张图上
这张图片有rgb 3个颜色的分量
在图中我们可以把这张图片表示成一个长height和宽wise都是32
而通道数channel数是三的一个张量
tens我们将图像与一个卷积核convolution curl进行卷积运算
假设这个卷积核是另一个5x5x3的张量
如图所示
这个卷积核从左上到右下
以步长stride等于一进行滑动
每划到一个位置
我们把卷积和与该位置图像重合的像素值相乘
然后再相加得到一个数
将每次滑动的数排列起来
可以得到一个28x28x1的张量
我们把获得的这个28x28x1的张量叫做特征图
feature map
如图的右边所示
这就是一幅图像经过卷积和卷积运算的全过程
在这个例子中
为什么获得的特征图长和宽都是28呢
我们简要的说一下其中的道理
我们先看特征图的长
特征图的第一个数是卷积核在最左上端的时候
与图像相加和相乘的结果
由于卷积核的长是五
因此这个时候它覆盖的图像长这个方向第一到第五个像素
接下来特征图以步长stride等于一向右移动的一个像素
那么此时卷积和覆盖的图像长这个方向
第二到第六个像素
以此类推
卷积核不断向右移动
直到移动了28次过后
覆盖的图像长这个方向第28到第32个像素
此时卷积核的最右边已经到达了图像的最右边
及图像的第32个像素
因此特征图长就是28
同样的道理可以推出特征图的宽也是28
在l indet当中
第一层卷积成c1
我们用了六个卷积和卷积原来的图像
因此我们获得了六个28×28的特征图
用简化的画法可以看到
我们可以直接把这六个特征图并到一起
作为最终的这个显示结果
由于这六个卷积核的参数是待定的
所以我们需要在训练过程中
通过后向传播算法对他们进行更新
接下来我们简要的讲一下如何求解卷积核中参数的梯度
从而完成对卷积核参数的更新
例如这张图所示
假设我们计算一个3×3的图像与一个2×2的图像的卷积
stride等于一图像的像素值
分别用x一到x9 表示
卷积核的参数
分别用欧米伽一到欧米伽四表示
假设最终我们得到的特征图2×2的特征图
它的参数用p一到p4 表示
根据前面讲过的卷积操作的流程
我们可以把p一到p4 写成如下的形式
例如p一等于欧米伽1×1
欧米伽2×2
欧米伽3×4 加欧米伽4×5
p2 等于欧米伽1×2 加欧米伽2×3
加欧米伽3×5
加上欧米伽4×6
p3 等于欧米伽1×4
加上欧米伽2×5
加上我们3×7
加米4×8
p4 等于欧米伽ex 5
加上欧米伽2×6
加上欧米伽3×8
加上欧米伽4×9
写出来稍微有一点复杂
但是在图上利用卷积的性质
我们很容易获得这些式子
以上这四个市值等价于如下
全职共享网络
在这张图中
欧米伽
欧米伽
欧米伽三
欧米伽四各自被用了四次
因此我们假设整个l最终的目标函数为e那么通过链式求导法则
我们可以很方便地得到e对欧米伽一
欧米伽二
欧米伽三
欧米伽四的导数
如上面这张图所示
接下来我们讲解卷积神经网络中的教材养成
如图
经过卷积层c一过后
我们获得了六个28×28的特征图
接着我们把这些特征图通过教材养成s2
获得六个14×14的特征图
在lynet当中将采样成采用取平均值的方式
即把相邻四个像素的值取平均后获得这种方式叫做平均降采样
average subsi
这是降采样的示意图
左边所有红色区域内的像素值取平均过后获得右边一个蓝色像素的值
在l net当中
我们以步长二二对原来的特征图进行降采样
将相邻的四个像素值取平均
这样我们可以把一个28×28的特征图
变成14×14的特征图
我们简要介绍一下如何对降采样成进行梯度的后向传播
在这里我们是对相邻四个项数值x1 x2 x3 x4 取平均值
获得y等于x一到x4 加起来除以四
因此我们有偏e偏x一等于偏e偏x
二等于偏e偏x3 等于偏e偏x4 等于1/4偏一偏y
这就是降采样成的后向梯度传导
在l net当中
经过降采样成s2 后
我们来到卷积层c3
这里我们再次用16个5×5的卷积核对生成的14×10
4×6的特征图进行卷积运算
获得16个10×10的特征图
然后再次通过降采样成s4
仍然是步长stride等于二二的降采样
获得16个5×5的特征图
接下来是全连接层
首先全连接成c5
将16个5×5的特征图展开成400个像素
作为一个整体的向量输入进全连接层
c5 中有120个神经元
因此它的输出是一个120个维度的向量
接下来另一个全连接层f6 对c5 的输出进行操作
它有84个神经元
因此输出84个维度的向量
lt的任务是识别手写体数字0~9
因此总共有十个类别
所以最后输出层是十个维度
输出层也是全连接层
这十个维度的输出用soft max加crossrop的目标函数
这与前面讲过的完全一致了
当然需要强调的是
在re net当中
层与层之间都有非线性函数连接在图中
为了简略起见
没有画出
我们可以采用sigmoid和tn作为连接成语层之间的非线性函数
另一个方面
在the queen最初的论文当中
也不是完全采用这样的结构
由于当时的计算和存储资源有限
因此它使用了很多细节性的技巧来降低网络带估计的参数量
从而降低计算的复杂度
对于目前的计算资源来说
我们已经不需要讨论类似的技巧了
因此我们不在这里做详细的叙述
有兴趣的同学可以参阅了困的论文
为了加深大家对卷积神经网络的理解
我们下面计算一下一代估计的参数的个数
第一层c一卷积层
它是由六个5×5的卷积和构成
总共带估计的参数是150个
第二层s2 是降采样成
它没有带估计的参数
第三乘c3 又是卷积层
它是由16个5x5x6的卷积和构成
总共代估计参数2400个
第四层s4 降采样成没有带估计的参数
第五第六第七都是全连接层
我们首先来看第五乘以c5
它的输入的维度是5x5x16
总共400个维度
而它的输出是有120个神经元
对于每一个神经元
它都是有输入的
omega是400个维度
同时还有一个偏执b
所以说总共是401×120
等于48120个参数
用同样的道理
我们可以算出第六层和第七层的参数个数
将七成的参数个数相加可以得到
而net中总共有61684个代估计的参数
同时the queen制作了m i s t数据集
用来实现对这个卷积神经网络的训练
m n s数据集包含了6万个训练样本和1万个测试样本
在m这个数据集上获得了98.5%的识别率
在本讲中
我们基于net介绍了图像卷积的概念
卷积神经网络的结构
以及卷积神经网络中后向传播算法梯度的计算等等一系列问题
最后留两道思考题给大家
第一道思考题是关于卷积运算
如果一个大m乘以大n的图像和一个小m乘以小n的卷积核进行操作
移动的步长stride是p和q即在长这个方向上每步移动p个像素
在宽这个方向上每步移动q个像素
请问经过卷积操作后获得的特征图长和宽分别是多少呢
第二道思考题是关于补丁这样的知识
我们经常对图像进行补零pin的操作
例如如图所示
当pd等于一时
我们在图像上下左右加一圈零
当pd等于二时
在图像上下左右加两圈零
以此类推
请问对于一个32×32的图像拍ding等于二
我们用一个5×5的卷积核进行操作
同时规定stride是一一
基于以上的设置
请大家计算一下深层的特征

长和宽各是多少呢
本讲的内容就到这里
谢谢大家

发表评论

邮箱地址不会被公开。 必填项已用*标注