深度学习 — 卷积神经网络CNN(LeNet-5网络详解)

深度学习 — 卷积神经网络CNN(LeNet-5网络详解)卷积神经网络 Convolutiona CNN 是一种前馈型的神经网络 其在大型图像处理方面有出色的表现 目前已经被大范围使用到图像分类 定位等领域中 相比于其他神经网络结构 卷积神经网络需要的参数相对较少 使的其能够广泛应用 本节打算先介绍背景和简单的基本概念术语 然后详细介绍 LeNet 5 网络 其工作流程大家需要先搞清楚 学习原理其实是基于 BP 学习原理的 只

卷积神经网络(Convolutional Neural Network,CNN)是一种前馈型的神经网络,其在大型图像处理方面有出色的表现,目前已经被大范围使用到图像分类、定位等领域中。相比于其他神经网络结构,卷积神经网络需要的参数相对较少,使的其能够广泛应用。

本节打算先介绍背景和简单的基本概念术语,然后详细介绍LeNet-5网络,其工作流程大家需要先搞清楚,学习原理其实是基于BP学习原理的,只是稍微有点麻烦点,这个在后面会单独讲,希望先从定性的角度去学习他,然后在定量的分析其学习过程,这样更容易接受,掌握这些以后再看hintion的学生的一篇论文深度卷积神经网络《ImageNet Classification with Deep Convolutional  Neural Networks》,在后面会详细探讨这个神经网络优化方面的思想和手段,因此这将是一个很长的学习过程,要研究咱就把他研究透,只有这样你才有可能具有创造性解决问题的能力。当然,有前面的那么多的知识的铺垫,理解这里的就不会太困难了,好,废话不多说,下面开始:

发展背景和基本概念

基本概念

LeNet-5网络

本网络的的讲解主要参考1998年计算机科学家Yann LeCun发布的一篇论文《Gradient based learning applied to document-recognition》大家可以找到这篇论文结合学习,针对该网络,首先大家需要了解一下图像中的常用操作卷积,卷积这个词是信号处理领域的词,表示一个系统多数据处理的过程,在图像处理中的卷积,其实就是滤波器。下面先简要介绍一下卷积核的概念,这个不能细说,因为想要深入理解卷积需要很多知识,这里只给大家一个直观的概念,随着我们后面的不断深入,在优化时在讨论卷积核如何设置。

开始前先普及一下基础知识,我们所知说的图片是通过像素来定义的,即每个像素点的颜色不同,其对应的颜色值不同,例如黑白图片的颜色值为0到255,手写体字符,白色的地方为0,黑色为1,如下图,也就是说我们平常说的像素其实就是图片的最小组成,黑白只是0-255,彩色其实就是RGB即三层基色合成的,就可以通过三层下图数值代表即可。

image

卷积核

大家可以简单理解,卷积核的的目的就是提取特征,那什么是特征呢?这篇文章我讲解了什么是特征。如果大家对卷积核感兴趣可以搜索一下看看,本人本科是电子信息工程的,所有这些概念我都已经深入理解了。下面看看卷积对图像到底做了哪些事:

å¾1    æµ®é

如何达到上面的效果呢?我们看看下图:

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

 中间那个就是卷积核了,其实就是3×3的方格,里面填一些数字,然后和原始图像进行相乘求和,这样就可以达到上面的效果。

通过卷积核就可以提取图片的特征和压缩图片了,其实卷积核就是一个二维的滤波器,下面再给一个大家到处能看到的动态卷积图:

å·ç§¯ç¥ç»ç½ç»

大家先感性的这里理解,等深入知道CNN后再仔细研究也不迟,下面我们就正式开始讲解 LeNet5网络。

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

 

因为我们应对的领域是图像识别的领域同时网络的类型是基于BP的,因此针对这个领域先看看BP的缺点,我们知道BP网络是全连接的,对于图片的识别,我们不用提取特征,一般一层提取特征的效果并不是很好,因此我们需要很多层,如果按照BP进行全连接,会使得权值数量急剧增加,想要训练这么多的权值,样本必须足够的才行,即使样本数量够,但是计算量也会急剧增加,而且还有面临梯度消失的情况,因此需要改进连接的方式即采用局部连接和权值共享,如下图:

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

假如一张图片的像素点为4×4的,上图的左边图W为全连接,一个神经元就有16个连接 ,每个连接的权值不同,因此如果有n个神经元则有16n个权值,左图就是局部连接,此时加入四个像素点连接一个神经元,则需要四个,但是如果像素很多的情况下,权值还是很多,此时是按照每个神经元的连接权值如上图的w_1,w_2,w_3,w_4是其中一个神经元的是4个权值,所谓权值共享,就是其他神经元的权值也使用这四个值,此时的位置和数值都是这样对应的,这里大家需要理解。即四个神经元只有四个不同的权值,现在我们来算算,按照右边的计算:

 全连接的权值数:4x4x4=64(前面两是像素点,后面的4是神经元,这里先不考虑偏置值) ,

局部连接的权值:4×4=16(4个神经元,每个神经元4个权值)

局部连接和权值共享: 4

 因此权值的数量就降低了,这就是通过局部连接和权值共享来解决BP的存在的问题,这里的理论依据就是根据上面说的感受野进行简化的,但是按照上图的局部连接存在一个问题就是边缘过度不平滑,会出现边缘效应,为了解决这个问题引入了采样窗口法使其彼此重叠,因为这样做和卷积很类似,因此采样窗口就称为卷积核了,我们看这个窗口是怎么重叠的;

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

 

 假如采样窗口为2×2,所谓重叠,我们每次左移一个像素点送给神经元,往下移动时也是这样的,这样就避免了边缘效应了

到这里基本上知道由来了,下面我们就正式介绍 LeNet5网络

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

我们就按照这个图详细介绍CNN,首先需要说明的是,这里先不介绍该网络的学习过程,先介绍网络的整体架构,解释每层的作用,后面再单独介绍CNN的学习算法和学习过程。

 上图包含输入层总共8层网络,分别为:

输入层(INPUT)、卷积层(Convolutions,C1)、池化层(Subsampling,S2)、卷积层(C3)、池化层(Subsampling,S4)、卷积层(C5)、全连接层(F6)、输出层(径向基层)

输入层(INPUT):

输入的手写体是32×32像素的图片,在论文里说输入像素的值背景层(白色)的corresp值为-0.1,前景层(黑色)的corresp值              为 1.175。这使得平均输入大约为0,而方差大约为1,从而加速了学习,要求手写体应该在中心,即20×20以内。

卷积层(Convolutions,C1): 提取特征

我们从上图可以看到这里有6个特征平面(这里不应该称为卷积核,卷积核是滑动窗口,通过卷积核提取特征的结果叫特            征平面),得到的每个特征平面使用的一个5×5的卷积核(这里说明窗口滑动的权值就是卷积核的内容,这里需要注意的是特征平面有6个说明有6个不同的卷积核,因此每个特征平面所使用的权值都是一样的,这样就得到了特征平面。那么特征平面有多少神经元呢?如下图,32×32通过一个5×5的卷积核运算,根据局部连接和平滑,需要每次移动1,因此从左移动到右时是28,因此特征平面是28×28的,即每个特征平面有28×28个神经元。如下图,权值共享就是右边的神经元的权值都是w,这里大家需要好好理解,还是在解释一下,6个特征平面对应6个不同的卷积核或者6个滤波器,每个滤波器的参数值也就是权值都是一样的,下图就是卷积对应的一个特征平面,这样的平面有6个,即卷积层有6个特征平面。

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

现在我们计算一下该层总共有多少个连接,有多少个待训练的权值呢?

连接数,首先每个卷积核是5×5的,每个特征平面有28×28的神经元(每个神经元对应一个偏置值),总共有6个特征平                面,因此连接数为:(5×5+1)x28x28x6 = 。

权值数,首先每个特征平面神经元共用一套权值,而每套权值取决于卷积核的大小,因此权值数为:(5×5+1)x6 = 156个

池化层(Subsampling,S2): 降低数据维度

池化层又叫下采样层,目的是压缩数据,降低数据维度,如下图所示,他和卷积有明显的区别,这里采样2×2的选择框进 行压缩,如何压缩呢,通过选择框的数据求和再取平均值然后在乘上一个权值和加上一个偏置值,组成一个新的图片,每个特征平面采样的权值和偏置值都是一样的,因此每个特征平面对应的采样层只两个待训练的参数。如下图4×4的图片经过采样后还剩2×2,直接压缩了4倍。本层具有激活函数,为sigmod函数,而卷积层没有激活函数。

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

那我们看看S2层,他是使用2×2进行采样,原来是28×28的,采样后就是14×14,总共有6张采样平面,即每个特征平面对           应一个采样层的一个平面,总共的待训练的权值为:2×6=12

卷积层(C3):

这一层也是卷积层,和C2不同的是这一层有16个特征平面,那么16个特征平面是如何和上一层池化层是如何对应的呢?这里的16个特征平面是这样对应的,每个特征平面对应的卷积核,和池化层的多个平面进行卷积。这里把C3的卷积层特征平面编号即0,1,2,…,15,把池化层S2也编号为0,1,2,3,4,5.这两层具体如何对应呢?如下图

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

上面说了,C3层和S2的对应关系和前面不一样,主要体现在C3的每一个特征平面是对应多个池化层的采样数据,如上图,横向的数表示卷积层C3的特征平面,纵向表示池化层的6个采样平面,我们以卷积层C3的第0号特征平面为例,它对应了池化层的前三个采样平面即0,1,2,三个平面使用的是三个卷积核(每个采样平面是卷积核相同,权值相等,大小为5×5),既然对应三个池化层平面,那么也就是说有5x5x3个连接到卷积层特征平面的一个神经元,因为池化层所有的样本均为14×14的,而卷积窗口为5×5的,因此卷积特征平面为10×10(大家可按照第一个卷积计算求的)。只是这里的卷积操作要更复杂,他不是所有的都是特征平面对应三个池化层平面,而是变化的,从上图我们可以清楚的看到前6个特征平面对应池化层的三个平面即0,1,2,3,4,5 , 而6~14每张特征平面对应4个卷积层,此时每个特征平面的一个神经元的连接数为5x5x4,最后一个特征平面是对应池化层所有的样本平面,这里大家好好理解。我们来计算一下连接数和待训练权值个数:

连接数: (5x5x3+1)x10x10x6+(5x5x4+1)x10x10x9+(5x5x6+1)x10x10 = 45600+90900+15100=

权值数: (5x5x3+1)x6 + (5x5x4+1)x9 + 5x5x6+1  = 456 + 909+151 = 1516

这一层为什么要这样做呢?为什么不和前面的一样进行卷积呢?Lecon的论文说,主要是为了打破对称性,提取深层特征,因为特征不是对称的,因此需要打破这种对称,以提取到更重要的特征,这样设计的目的就是这个原因,大家好好体会,我们继续往下看。

池化层(S4):

这一层采样和前面的采样是一样的,使用的采样窗口为2×2的,对C3层进行采样,得到16个采样平面,此时的采样平面为5×5的,这里不细讲了,另外本层存在激活函数,为sigmod函数。大家上面理解的话,这里还是很简单的。我们继续看下一层:

卷积层(C5):

这一层还是卷积层,且这一层的特征平面有120个,每个特征平面是5×5的,而上一层的池化层S2只有16个平面且每个平面为5×5,本层使用的卷积核为5×5,因此和池化层正好匹配,那么怎么连接呢?很简单就是这里每个特征平面连接池化层的所有的采样层。这里称呼特征平面已经不合适了,因为每个卷积核只对应一个神经元了,因此本层只有120个神经元并列排列,每个神经元连接池化层的所有层。C5层的每个神经元的连接数为5x5x16+1,因此总共的连接数为:(5x5x16+1)x120=48120,而这一层的权值和连接数一样,因此也有48120个待训练权值。结合下面的图看:

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

全连接层(F6):

这一层其实就是BP网络的隐层,且为全连接层,即这一层有84个神经元,每一个神经元都和上一次的120个神经元相连接,那么连接数为(120+1)x84 = 10164,因为权值不共享,隐层权值数也是10164,至于为什么隐层是84个神经元稍后解释,本层的输出有激活函数,激活函数为双曲正切函数:                           

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

 根据论文解释:A的幅值,S是原点处的倾斜率,A的经验值是1.7159,原因没说。

输出层:该层有十个神经元,可以理解这是对于手写体10个数,那个输出的数大,那个神经元代表的数字就是输出,下面我们看看他是和F6层是如何连接的,他不在是BP的神经输出层,而是基于径向基神经网络的输出层,径向基神经网络在上一节我们详细探讨了,上一节我们主要说了是关于高斯径向基,这里使用的是更简单的欧几里得径向基函数,如下:

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

这公式是什么意思呢?

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

首先大家应该明白什么是径向基神经网络,他基于距离进行衡量两个数据的相近程度的,RBF网最显著的特点是隐节点采用输人模式与中心向量的距离(如欧氏距离)作为函数的自变量,并使用径向基函数(如函数)作为激活函数。径向基函数关于N维空间的一个中心点具有径向对称性,而且神经元的输人离该中心点越远,神经元的激活程度就越低。上式是基于欧几里得距离,怎么理解那个式子呢?就是说F6层为84个输入用x_j表示,而输出有10个用y_i表示,而权值 使用w_{ji},上式说明所有输入和权值的距离平方和为依据判断,如果越相近距离越小,输出越小则去哪个,如果我们存储的到w_{ji}的值为标准的输出,如标准的手写体0,1,2,3等,那么最后一层就说明。F6层和标准的作比较,和标准的那个图形越相似就说明就越是那个字符的可能性更大。我们看看标准的是什么样的:

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

 这里标准的每个字符都是像素都是12×7=84.这就是解释了为什么F6层的神经元为84个,因为他要把所有像素点和标准的比较在进行判断,因此从这里也可以看出,这里不仅仅可以训练手写体数字,也可以识别其他字符,取决于w_{ji}和网络的设计,这些可以认为修改的。例如我们让他识别可打印的ASCII码,把小图片添加到这里就可以了,同时增加输出的神经元个数就可以完成了。再给出另外一个详细的图:

深度学习 --- 卷积神经网络CNN(LeNet-5网络详解)

到这里本节就结束了,下一节我们将解释该网络的学习过程和权值更新是如何进行的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/227202.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午9:42
下一篇 2026年3月16日 下午9:43


相关推荐

  • Matlab机器人工具箱

    Matlab机器人工具箱因为需要用到和机器人相关的东西,就用到了这个工具箱,作者官网http://www.petercorke.com/Robotics_Toolbox.html文章开头有我上传的机器人工具箱链接,有需要的同学可以自行下载。CSDN下载积分不能设置为0,抱歉~没有积分的同学可以去官网下载搞定。老爷子很厉害,那本《Robotics,Vision&Control》就是他本人写的,可…

    2022年4月30日
    58
  • 线性代数攻略(适合复习考试,零基础不挂科秘籍)「建议收藏」

    线性代数攻略(适合复习考试,零基础不挂科秘籍)「建议收藏」前言1、考试保过,最低在70分以上,零基础,只要看了复习攻略或者答题模板,一定能过。前提是真的认真看了,也练习了。2、多看,把这上面的例题多练,要不考试的时候会忘了哪个题用哪个方法。一定一定要牢记,多看,有的题不要问原因,直接记过程即可。3、要抽出至少两天的时间认真看这套答题模板,否则挂科了补考可真的是会浪费时间,线代这么简单,一定不要挂!4、出题的顺序会变,但是类型基本不会变,掌握做题技巧就行。5、如果是学知识,建议别看了,还是认真去看书,本攻略只适合高效率的让你不挂科,只是提高分数,

    2025年6月13日
    5
  • 版权文字:Power by DedeCms 如何去除?[通俗易懂]

    版权文字:Power by DedeCms 如何去除?[通俗易懂]dedeCMS系统中的版权声明信息中含有“PowerbyDedeCms”字样,如何去除?dedeCMS近期的新版本至2013-6-7更新包以来,不管新版还是旧版更新补丁包,更新后网站页底都会出现powerbydedecms。*一、powerbydedecms什么意思?在我们上网的时候,会见到页面页底很多带powerbydedecms的网站,powerbydede…

    2022年7月13日
    19
  • 图解Kafka中的数据采集和统计机制 | 文末送30本书任你选[通俗易懂]

    图解Kafka中的数据采集和统计机制 | 文末送30本书任你选[通俗易懂]在讲解kafka限流机制之前,我想先讲解一下Kafka中的数据采集和统计机制你会不会好奇,kafka监控中,那些数据都是怎么计算出来的比如下图这些指标这些数据都是通过Jmx获取的kafka监控指标,那么我们今天老探讨一下,这些指标都是怎么被计算出来的在开始分析之前,我们可以自己思考一下如果让你统计前一分钟内的流速,你会怎么统计才能够让数字更加精确呢?我相信你脑海中肯定出现了一个词:滑动窗口在kafka的数据采样和统计中,也是用了这个方法,通过多个样本Sample进行采样,并合并统计当然

    2022年5月12日
    40
  • 【C语言】输入两个正整数m和n,求其最大公约数和最小公倍数。(要求用while语句实现)[通俗易懂]

    【C语言】输入两个正整数m和n,求其最大公约数和最小公倍数。(要求用while语句实现)[通俗易懂]输入两个正整数m和n,求其最大公约数和最小公倍数。(要求用while语句实现)一、最大公约数求法(1)辗转相除法(2)相减法二、求最小公倍数算法一、最大公约数求法(1)辗转相除法设有两整数a和b:①a%b得余数c②若c==0,则b即为两数的最大公约数③若c!=0,则a=b,b=c,再回去执行①。例如求27和15的最大公约数过程为:27÷15余1215÷12余312÷3余0因此,3即为最大公约数。(2)相减法设有两整数a和b:①若a>b,则a=a-b②.

    2022年5月16日
    52
  • 运用平面向量的坐标求内积_向量数量积推导过程

    运用平面向量的坐标求内积_向量数量积推导过程Forpersonaluseonlyinstudyandresearch;notforcommercialuse平面向量内积的坐标运算与距离公式德清乾元职高朱见锋【教材分析】:本课是在平面向量坐标运算、内积定义基础上学习的,主要知识是平面向量内积的坐标运算与平面内两点间的距离公式,是后面学习曲线方程的重要公式和推导依据,是进一步学习相关数学知识的重要基础。【教学目标】1.掌握平面向量内积的坐标表示…

    2026年3月4日
    9

发表回复

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

关注全栈程序员社区公众号