文章目录
LeNet5原版论文已经放到了GitHub上: 点我下载
前言
大致看了一下文章,一共45页,属实是有点长啊。
我们只看基础概念和文本识别的介绍,以及LeNet5网络的部分就行了。
- 1-5 介绍背景和文本识别的概念以及机器学习的各种概念
- 5-9 介绍基本的LeNet5的网络
- 9-11 训练结果分析
第1-3页
前两页都是一些历史背景和文章结构的介绍,大概看一下有个印象。
第三页开始介绍了一些概念:
-
梯度下降与随机梯度下降:
是一种一阶优化方法,实际上就是通过迭代不断的靠近最优解,详细解读可以看我的另一篇文章,这里就不展开说了。 -
反向传播
前向传播通过训练数据和权重参数计算输出结果;反向传播通过导数链式法则计算损失函数对各参数的梯度,并根据梯度进行参数的更新。具体的实现移步 反向传播详解
第4页
第四页开始提出CNN卷积神经网络的一些概念,并提到将反向传播和基于梯度的学习方式相结合,将整个系统变成一个有联级的模块,每一个模块都实现一个函数。
第5-6页
第5-6页 为了体现CNN网络的优越性,说了一下全连接网络的存在的问题:
-
第一点就是数据量庞大的问题。
- 毕竟有很多隐层,每一个节点都对应后面整个层的所有节点 都有一个数据集。
-
第二点就是论文中提到的移动不变性和旋转不变性问题。
- 全链接网络是不具备 移动不变性 和 旋转不变性的(作者侧面反映CNN是具有一定的移动不变性和可能存在的旋转不变性)。俩这不变性简单的说就是: 假如给你只狗,我让这只狗倒立之后再给你,你依旧可以识别出来这是只狗,这就叫旋转不变性,平移不变性同理。
关于移动不变性和旋转不变性的原理详细解释移步 CNN的移动不变性和旋转不变性详解
- 全链接网络是不具备 移动不变性 和 旋转不变性的(作者侧面反映CNN是具有一定的移动不变性和可能存在的旋转不变性)。俩这不变性简单的说就是: 假如给你只狗,我让这只狗倒立之后再给你,你依旧可以识别出来这是只狗,这就叫旋转不变性,平移不变性同理。
-
第三点就是全连接神经网络破坏了原图的拓扑结构。
- 对于输入的图片,他周围的像素或者他和其他图片之间的空间位置有很强的关系,而全链接网络吧图片展开变成了一行/列向量来处理,显然破坏了图像原有的位置结构。
在第六页的末尾正式引入卷积网络,并且给出了几点卷积网络的好处。
1.在一定程度上有移动、缩放、旋转不变性。
2.local receptive fields:感受视野域(局部感受野)
3.shared weights : 权重共享
4.spatial or temporal subsampling :空间或时间子采样
关于上面三个概念这里就不展开说了,可以看我的另一篇文章,移步 基础概念详解
然后引入了经典的 LeNet-5 神经网络结构图,长下面这样:
简单说一下这个网络图的结构。
输入为 (32 * 32) -> 卷积层 (6 * 28 * 28) -> 池化层 (6 * 14 * 14) -> 卷积层( 16 * 10 * 10) -> 池化层(16 * 5 * 5) -> 线性层(120 -> 84 -> 10) 。
括号里面的数字就是 (通道数,长,宽) 这里的基础概念就不多说了 详解移步:卷积神经网络 CNN --基础部分
所以一共就是 7层网络 最后的线性层算三层。
第7-9页
第7页开始又引入了一些概念:
-
鲁棒性:
简单来说就是模型对于干扰的容忍能力。若模型出现微小偏差,也只能对模型结果造成微小影响(主要指噪声)。若模型出现较大偏差,则不会对算法性能产生灾难性影响(主要指离群点),就叫做鲁棒性较好,指模型抗干扰能力较强。 -
sigmoid函数
sigmod函数也叫激活函数或者饱和函数,目的是给模型网络加入了非线性能力(增强模型表达能力 比如多分类),在我之前的文章里有介绍过 详情移步 sigmoid激活函数详解 -
RBF神经网络
与常见的BP神经网络不同,BP神经网络采用如sigmoid作为激活函数,达到对非线性映射的全局逼近。
而RBF神经网络采用径向基函数作为激活函数,达到局部逼近。 -
过拟合 与 耦合度
简单来说就是在神经网络训练中,模型过分符合训练集,导致训练集中的噪声也被训练上了,最后验证的时候出现较大变差。
耦合举个例子,假如使用脸进行识别训练,如果模型耦合度过高,可能只给左脸或者右脸将无法正确识别。 -
最大似然估计
通俗理解,就是已知实验结果,反推最可能的样本,在网络训练里,反推最可能导致这种结果的样本或者反推一些可能的参数。
作者使用了池化层进一步模糊了输入的特征位置,这就使得卷积网络有了一定程度上的不变性,且可以看到使用的是平均池化层(看到后面才发现不是一般的平均池化层,就无语)。
使用池化层模糊输入的这个方法,原理是通过降低图像几何的空间分辨率来提高其不变性(即降低了特征图中显著特征的位置编码精度),后期再通过增加特征映射来补偿降低的分辨率。
7页末8页开头作者说了一下他这里用的平均池化层,要注意这里使用的平均池化层和我们平常用的平均池化不一样,并不是相加然后取平均值,作者这里的平均池化是乘了一个可训练系数然后再加上了一个可训练偏置值(大坑,后面细说)。
第八页中间段提到卷积层没有提取图像的全部特征,而不像我们现在做卷积是对整个图片做整体卷积。作者文中提到的目的是为了 打破对称性和让他们在不同的特征图中*提取尽量互补的特征。这可能类似于 dropout 算法?目的是为了防止过拟合降低模型的耦合提高鲁棒性?
关于 dropout算法 移步 什么是dropout?
9页最后说了一下损失函数相关的东西,介绍了一些RBF的问题,然后说了说权重共享和sigmoid的初始化设置。。。感觉无关紧要,没咋看,,跳过跳过了。。。。。。。
第一部分就先到这里了,后面开始就是具体的复现过程了。