卷积神经网络详述

卷积神经网络详述
卷积神经网络详述

卷积神经网络 论文版

卷积神经网络 摘要:卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简单、训练参数少和适应性强等特点。本文从卷积神经网络的发展历史开始,详细阐述了卷积神经网络的网络结构、神经元模型和训练算法。在此基础上以卷积神经网络在人脸检测和形状识别方面的应用为例,简单介绍了卷积神经网络在工程上的应用,并给出了设计思路和网络结构。 关键字:模型;结构;训练算法;人脸检测;形状识别 Convolution Neural Network Abstract:Convolution neural network is an efficient recognition algorithm which is widely used in pattern recognition, image processing and other fields recent years.It has a simple structure, few training parameters and good adaptability and other advantages. In this paper, begin with the history of convolutional neural networks,describes the structure of convolutional neural network,neuron models and training algorithms in detail. On this basis,uses the applications of convolutional neural network in face detection and shape recognition as examples, introduces the applications of convolution neural network in engineering, and gives design ideas and network structure. Keywords:Model; Training Algorithm; Advantage; Face detection; Shape recognition 0 引言 卷积神经网络是人工神经网络的一种已成为当前语音分析和图像识别领域的研究热点,它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放、倾斜或者共他形式的变形具有高度不变性。 1 卷积神经网络的发展历史 1962年Hubel和Wiesel通过对猫视觉皮层细胞的研究,提出了感受野(receptive field)的概念,1984年日本学者Fukushima基于感受野概念提出的神经认知机(neocognitron)可以看作是卷积神经网络的第一个实现网络,也是感受野概念在人工神经网络领域的首次应用。神经认知机将一个视觉模式分解成许多子模式(特征),然后进入分层递阶式相连的特征平面进行处理,它试图将视觉系统模型化,使其能够在即使物体有位移或轻微变形的时候,也能完成识别。神经认知机能够利用位移恒定能力从激励模式中学习,并且可识别这些模式的变化形,在其后的应用研究中,Fukushima将神经认知机主要用于手写数字的识别。随后,国内外的研究人员提出多种卷积神经网络形式,在邮政编码识别和人脸识别方面得到了大规模的应用。 通常神经认知机包含两类神经元,即承担特征抽取的S-元和抗变形的C-元。S-元中涉及两个重要参数,即感受野与阈值参数,前者确定输入连接的数目,后者则控制对特征子模式的反应程度。许多学者一直致力于提高神经认知机的性能的研究:在传统的神经认知机中,每个S-元的感光区中由C-元带来的视觉模糊量呈正态分布。如果感光区的边缘所产生的模糊效果要比中央来得大,S-元将会接受这种非正态模糊所导致的更大的变形容忍性。我们希望得到的是,训练模式与变形刺激模式在感受野的边缘与其中心所产生的效果之间的差异变得越来越大。为了有效地形成这种非正态模糊,Fukushima提出了带双C-元层的改进型神经

(完整版)卷积神经网络CNN原理、改进及应用

卷积神经网络(CNN) 一、简介 卷积神经网络(Convolutional Neural Networks,简称CNN)是近年发展起来,并引起广泛重视的一种高效的识别方法。 1962年,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的局部互连网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络[1](Convolutional Neural Networks-简称CNN)7863。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。 Fukushima在1980年基于神经元间的局部连通性和图像的层次组织转换,为解决模式识别问题,提出的新识别机(Neocognitron)是卷积神经网络的第一个实现网络[2]。他指出,当在不同位置应用具有相同参数的神经元作为前一层的patches时,能够实现平移不变性1296。随着1986年BP算法以及T-C问题[3](即权值共享和池化)9508的提出,LeCun和其合作者遵循这一想法,使用误差梯度(the error gradient)设计和训练卷积神经网络,在一些模式识别任务中获得了最先进的性能[4][5]。在1998年,他们建立了一个多层人工神经网络,被称为LeNet-5[5],用于手写数字分类,这是第一个正式的卷积神经网

络模型3579。类似于一般的神经网络,LeNet-5有多层,利用BP算法来训练参数。它可以获得原始图像的有效表示,使得直接从原始像素(几乎不经过预处理)中识别视觉模式成为可能。然而,由于当时大型训练数据和计算能力的缺乏,使得LeNet-5在面对更复杂的问题时,如大规模图像和视频分类,不能表现出良好的性能。 因此,在接下来近十年的时间里,卷积神经网络的相关研究趋于停滞,原因有两个:一是研究人员意识到多层神经网络在进行BP训练时的计算量极其之大,当时的硬件计算能力完全不可能实现;二是包括SVM在内的浅层机器学习算法也渐渐开始暂露头脚。直到2006年,Hinton终于一鸣惊人,在《科学》上发表文章,使得CNN再度觉醒,并取得长足发展。随后,更多的科研工作者对该网络进行了改进。其中,值得注意的是Krizhevsky等人提出的一个经典的CNN架构,相对于图像分类任务之前的方法,在性能方面表现出了显著的改善2674。他们方法的整体架构,即AlexNet[9](也叫ImageNet),与LeNet-5相似,但具有更深的结构。它包括8个学习层(5个卷积与池化层和3个全连接层),前边的几层划分到2个GPU上,(和ImageNet 是同一个)并且它在卷积层使用ReLU作为非线性激活函数,在全连接层使用Dropout减少过拟合。该深度网络在ImageNet大赛上夺冠,进一步掀起了CNN学习热潮。 一般地,CNN包括两种基本的计算,其一为特征提取,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该

趋势分析之卷积神经网络

趋势分析之卷积神经网络 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks),是深度学习(deep learning)的代表算法之一。由于卷积神经网络能够进行平移不变分类(shift-invariant classification),因此也被称为“平移不变人工神经网络(Shift-Invariant Artificial Neural Networks, SIANN)”。 对卷积神经网络的研究始于二十世纪80至90年代,时间延迟网络和LeNet-5是最早出现的卷积神经网络;在二十一世纪后,随着深度学习理论的提出和数值计算设备的改进,卷积神经网络得到了快速发展,并被大量应用于计算机视觉、自然语言处理等领域。 第一个卷积神经网络是1987年由Alexander Waibel等提出的时间延迟网络(Time Delay Neural Network, TDNN)。TDNN是一个应用于语音识别问题的卷积神经网络,使用FFT预处理的语音信号作为输入,其隐含层由2个一维卷积核组成,以提取频率域上的平移不变特征。 卷积神经网络热度变化图 下面我们将用Trend analysis分析卷积神经网络领域内的研究热点。(点击链接即可进入Convolutional Neural Networks Trend Analysis: https://https://www.360docs.net/doc/847220006.html,/topic/trend?query=Convolutional%20Neural%20Networks)

卷积神经网络CNN从入门到精通

卷积神经网络CNN从入门到精通 卷积神经网络算法的一个实现 前言 从理解卷积神经到实现它,前后花了一个月时间,现在也还有一些地方没有理解透彻,CNN还是有一定难度的,不是看哪个的博客和一两篇论文就明白了,主要还是靠自己去专研,阅读推荐列表在末尾的参考文献。目前实现的CNN在MINIT数据集上效果还不错,但是还有一些bug,因为最近比较忙,先把之前做的总结一下,以后再继续优化。 卷积神经网络CNN是Deep Learning的一个重要算法,在很多应用上表现出卓越的效果,[1]中对比多重算法在文档字符识别的效果,结论是CNN优于其他所有的算法。CNN在手写体识别取得最好的效果,[2]将CNN应用在基于人脸的性别识别,效果也非常不错。前段时间我用BP神经网络对手机拍照图片的数字进行识别,效果还算不错,接近98%,但在汉字识别上表现不佳,于是想试试卷积神经网络。 1、CNN的整体网络结构 卷积神经网络是在BP神经网络的改进,与BP类似,都采用了前向传播计算输出值,反向传播调整权重和偏置;CNN与标准的BP最大的不同是:CNN中相邻层之间的神经单元并不是全连接,而是部分连接,也就是某个神经单元的感知区域来自于上层的部分神经单元,而不是像BP那样与所有的神经单元相连接。CNN的有三个重要的思想架构: 局部区域感知 权重共享 空间或时间上的采样 局部区域感知能够发现数据的一些局部特征,比如图片上的一个角,一段弧,这些基本特征是构成动物视觉的基础[3];而BP中,所有的像素点是一堆混乱的点,相互之间的关系没有被挖掘。 CNN中每一层的由多个map组成,每个map由多个神经单元组成,同一个map 的所有神经单元共用一个卷积核(即权重),卷积核往往代表一个特征,比如某个卷积和代表一段弧,那么把这个卷积核在整个图片上滚一下,卷积值较大的区域就很有可能是一段弧。注意卷积核其实就是权重,我们并不需要单独去计算一个卷积,而是一个固定大小的权重矩阵去图像上匹配时,这个操作与卷积类似,因此我们称为卷积神经网络,实际上,BP也可以看做一种特殊的卷积神经网络,只是这个卷积核就是某层的所有权重,即感知区域是整个图像。权重共享策略减少了需要训练的参数,使得训练出来的模型的泛华能力更强。 采样的目的主要是混淆特征的具体位置,因为某个特征找出来后,它的具体位置已经不重要了,我们只需要这个特征与其他的相对位置,比如一个“8”,当我们得到了上面一个"o"时,我们不需要知道它在图像的具体位置,只需要知道它下面又是一个“o”我们就可以知道是一个'8'了,因为图片中"8"在图片中偏左或者偏右都不影响我们认识它,这种混淆具体位置的策略能对变形和扭曲的图片进行识别。 CNN的这三个特点是其对输入数据在空间(主要针对图像数据)上和时间(主要针对时间序列数据,参考TDNN)上的扭曲有很强的鲁棒性。CNN一般采用卷积层与

卷积神经网络总结

卷积神经网络总结-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

1 卷积神经网络 卷积神经网络是深度学习的一种,已成为当前图像理解领域的研究热点它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。这个优点在网络的输入是多维图像时表现得更为明显, 图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程. 卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放以及其他形式的变形具有一定不变性. 在典型的CNN 中,开始几层通常是卷积层和下采样层的交替, 在靠近输出层的最后几层网络通常是全连接网络。卷积神经网络的训练过程主要是学习卷积层的卷积核参数和层间连接权重等网络参数, 预测过程主要是基于输入图像和网络参数计算类别标签。卷积神经网络的关键是:网络结构(含卷积层、下采样层、全连接层等) 和反向传播算法等。在本节中, 我们先介绍典型CNN 的网络结构和反向传播算法, 然后概述常用的其他CNN 网络结构和方法。神经网络参数的中文名称主要参考文献[18] 卷积神经网络的结构和反向传播算法主要参考文献[17] 。 1.1 网络结构 1.1.1 卷积层 在卷积层, 上一层的特征图(Feature map) 被一个可学习的卷积核进行卷积, 然后通过一个激活函数(Activation function), 就可以得到输出特征图. 每个输出特征图可以组合卷积多个特征图的值[17] : ()l l j j x f u = 1j l l l l j j ij j i M u x k b -∈= *+∑ 其中, l j u 称为卷积层l 的第j 个通道的净激活(Netactivation), 它通过对前一层 输出特征图1l j x -进行卷积求和与偏置后得到的, l j x 是卷积层l 的第j 个通道的输 出。()f 称为激活函数, 通常可使用sigmoid 和tanh 等函数。j M 表示用于计算l j u 的输入特征图子集, l ij k 是卷积核矩阵, l j b 是对卷积后特征图的偏置。对于一个输 出特征图l j x ,每个输入特征图1l j x -对应的卷积核l ij k 可能不同,“*”是卷积符号。 1.1.2 下采样层 下采样层将每个输入特征图通过下面的公式下采样输出特征图[17]: ()l l j j x f u = 1()l l l l j j j j u down x b β-=+ 其中, l j u 称为下采样层l 的第j 通道的净激活, 它由前一层输出特征图1l j x -进行 下采样加权、偏置后得到, β是下采样层的权重系数, l j b 是下采样层的偏置项. 符

卷积神经网络总结

1 卷积神经网络 卷积神经网络是深度学习的一种,已成为当前图像理解领域的研究热点它的权值共享网络结构使之更类似于生物神经网络,降低了网络模型的复杂度,减少了权值的数量。这个优点在网络的输入是多维图像时表现得更为明显, 图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程. 卷积网络是为识别二维形状而特殊设计的一个多层感知器,这种网络结构对平移、比例缩放以及其他形式的变形具有一定不变性. 在典型的CNN 中,开始几层通常是卷积层和下采样层的交替, 在靠近输出层的最后几层网络通常是全连接网络。卷积神经网络的训练过程主要是学习卷积层的卷积核参数和层间连接权重等网络参数, 预测过程主要是基于输入图像和网络参数计算类别标签。卷积神经网络的关键是:网络结构(含卷积层、下采样层、全连接层等) 和反向传播算法等。在本节中, 我们先介绍典型CNN 的网络结构和反向传播算法, 然后概述常用的其他CNN 网络结构和方法。神经网络参数的中文名称主要参考文献 [18] 卷积神经网络的结构和反向传播算法主要参考文献[17] 。 网络结构 卷积层 在卷积层, 上一层的特征图(Feature map) 被一个可学习的卷积核进行卷积, 然后通过一个激活函数(Activation function), 就可以得到输出特征图. 每个输出特征图可以组 合卷积多个特征图的值[17] : ()l l j j x f u = 1j l l l l j j ij j i M u x k b -∈= *+∑ 其中, l j u 称为卷积层l 的第j 个通道的净激活(Netactivation), 它通过对前一层输出 特征图1l j x -进行卷积求和与偏置后得到的, l j x 是卷积层l 的第j 个通道的输出。()f 称为激活函数, 通常可使用sigmoid 和tanh 等函数。j M 表示用于计算l j u 的输入特征图子集, l ij k 是卷积核矩阵, l j b 是对卷积后特征图的偏置。对于一个输出特征图l j x ,每个输入特征图1l j x -对应的卷积核l ij k 可能不同,“*”是卷积符号。 ; 下采样层 下采样层将每个输入特征图通过下面的公式下采样输出特征图[17]: ()l l j j x f u = 1()l l l l j j j j u down x b β-=+ 其中, l j u 称为下采样层l 的第j 通道的净激活, 它由前一层输出特征图1 l j x -进行下采样

卷积神经网络CNN代码解析-matlab

卷积神经网络CNN代码解析 deepLearnToolbox-master是一个深度学习matlab包,里面含有很多机器学习算法,如卷积神经网络CNN,深度信念网络DBN,自动编码AutoEncoder(堆栈SAE,卷积CAE)的作者是Rasmus Berg Palm (rasmusbergpalm@https://www.360docs.net/doc/847220006.html,) 代码下载:https://https://www.360docs.net/doc/847220006.html,/rasmusbergpalm/DeepLearnToolbox 这里我们介绍deepLearnToolbox-master中的CNN部分。 DeepLearnToolbox-master中CNN内的函数: 调用关系为: 该模型使用了mnist的数字mnist_uint8.mat作为训练样本,作为cnn的一个使用样例, 每个样本特征为一个28*28=的向量。

网络结构为: 让我们来看看各个函数: 一、Test_example_CNN: (2) 三、cnntrain.m (5) 四、cnnff.m (6) 五、cnnbp.m (7) 五、cnnapplygrads.m (10) 六、cnntest.m (11) 一、Test_example_CNN: Test_example_CNN: 1设置CNN的基本参数规格,如卷积、降采样层的数量,卷积核的大小、降采样的降幅 2 cnnsetup函数初始化卷积核、偏置等 3 cnntrain函数训练cnn,把训练数据分成batch,然后调用 3.1 cnnff 完成训练的前向过程,

3.2 cnnbp计算并传递神经网络的error,并计算梯度(权重的修改量) 3.3 cnnapplygrads 把计算出来的梯度加到原始模型上去 4 cnntest 函数,测试当前模型的准确率 该模型采用的数据为mnist_uint8.mat, 含有70000个手写数字样本其中60000作为训练样本,10000作为测试样本。把数据转成相应的格式,并归一化。 设置网络结构及训练参数 初始化网络,对数据进行批训练,验证模型准确率 绘制均方误差曲线 二、Cnnsetup.m 该函数你用于初始化CNN的参数。 设置各层的mapsize大小, 初始化卷积层的卷积核、bias 尾部单层感知机的参数设置 * bias统一设置为0

基于卷积神经网络的简单背景手势识别方法概述

基于卷积神经网络的简单背景手势识别方法概述 摘要在手勢识别研究方法日益成熟的今天,研究人员把主要精力放在新算法的研究以及旧方法的改进上,均取得了很好的成果。本文利用时下流行的卷积神经网络训练方法,避开大量的算法研究工作,把主要工作放在手势数据的获取以及处理上,在一定的数据范围内取得了很好的结果。在一定程度上给手势识别工作提供了新的思路。 关键词手势识别;手势数据;卷积神经网络 Abstract Today,as gesture recognition research methods become more and more mature,researchers have made great efforts to focus on the research of new algorithms and the improvement of old methods. In this paper,we use the popular Convolutional Neural Network (CNN)training method to avoid a lot of algorithm research work. The main work is on the acquisition and processing of gesture data,and it has achieved good results in a certain data range. To a certain extent,it provides a new idea for gesture recognition. Keywords Gesture recognition;Gesture data;Convolutional neural network 前言 以输入数据来区分,手势识别可以分为静态手势识别和动态手势识别。动态手势识别是基于视频流数据,实现手势动作捕捉,本质上是把视频流分为每一帧图像数据,处理每一帧图像之间的关系,从而识别出动态手势的含义。静态手势识别也称为手型识别,其输入数据是一副静态的手势图像,计算机系统通过前期对大量手势图像的训练学习,熟知手势图像的特征,从而识别出这一副静态手势图像的含义。本文的主要工作是通过卷积神经网络方法对简单背景的手势图像进行训练,得到训练模型,利用该训练模型对新采集的手势图像数据进行识别,达到预期的识别率。 1 研究方法 手势识别的研究方法有很多种,例如利用SIFT特征提取配合SVM训练的方法[1],利用HOG特征提取的研究方法[2]等。但这些研究方法对于图像质量太多依赖,如SIFT方法太过依赖局部梯度主方向,而获取局部梯度主方向往往都会有偏差,因此图像质量不佳容易导致特征提取的错误。且SIFT是一种只利用到灰度性质的算法,忽略了色彩信息,对于彩色图像的识别无能为力。 而本文采用的卷积神经网络方法则不存在该问题,卷积神经网络对于图像的容错性较强,可以不考虑图像质量、色彩等影响,关键是训练的样本量足够大,就可以得到相对理想的结果。且卷积神经网络的算法通用性强,对于识别任何类型的静态图像,都可以用几乎相同的训练模型进行,区别仅仅在于某些参数的调

卷积神经网络全面解析之代码详解复习进程

卷积神经网络全面解析之代码详解

卷积神经网络全面解析之代码详解 本文介绍多层感知机算法,特别是详细解读其代码实现,基于python theano,代码来自:Convolutional Neural Networks (LeNet)。 一、CNN卷积神经网络原理简介 要讲明白卷积神经网络,估计得长篇大论,网上有很多博文已经写得很好了,所以本文就不重复了,如果你了解CNN,那可以往下看,本文主要是详细地解读CNN的实现代码。 CNN的最大特点就是稀疏连接(局部感受)和权值共享,如下面两图所示,左为稀疏连接,右为权值共享。稀疏连接和权值共享可以减少所要训练的参数,减少计算复杂度。 至于CNN的结构,以经典的LeNet5来说明:

这个图真是无处不在,一谈CNN,必说LeNet5,这图来自于这篇论文:Gradient-Based Learning Applied to Document Recognition,论文很长,第7页那里开始讲LeNet5这个结构,建议看看那部分。 我这里简单说一下,LeNet5这张图从左到右,先是input,这是输入层,即输入的图片。input-layer到C1这部分就是一个卷积层(convolution运算),C1到S2是一个子采样层(pooling运算),关于卷积和子采样的具体过程可以参考下图: 然后,S2到C3又是卷积,C3到S4又是子采样,可以发现,卷积和子采样都是成对出现的,卷积后面一般跟着子采样。S4到C5之间是全连接的,这就相当于一个MLP的隐含层了(如果你不清楚MLP,参考《DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解》)。C5到F6同样是全连接,也是相当于一个MLP的隐含层。最后从F6到输出output,其实就是一个分类器,这一层就叫分类层。ok,CNN的基本结构大概就是这样,由输入、卷积层、子采样层、全连接层、分类层、输出这些基本“构件”组成,一般根据具体的应用或

卷积神经网络全面解析之代码详解

卷积神经网络全面解析之代码详解 本文介绍多层感知机算法,特别是详细解读其代码实现,基于python theano,代码来自:Convolutional Neural Networks (LeNet)。 一、CNN卷积神经网络原理简介 要讲明白卷积神经网络,估计得长篇大论,网上有很多博文已经写得很好了,所以本文就不重复了,如果你了解CNN,那可以往下看,本文主要是详细地解读CNN的实现代码。 CNN的最大特点就是稀疏连接(局部感受)和权值共享,如下面两图所示,左为稀疏连接,右为权值共享。稀疏连接和权值共享可以减少所要训练的参数,减少计算复杂度。 至于CNN的结构,以经典的LeNet5来说明:

这个图真是无处不在,一谈CNN,必说LeNet5,这图来自于这篇论文:Gradient-Based Learning Applied to Document Recognition,论文很长,第7页那里开始讲LeNet5这个结构,建议看看那部分。 我这里简单说一下,LeNet5这张图从左到右,先是input,这是输入层,即输入的图片。input-layer到C1这部分就是一个卷积层(convolution运算),C1到S2是一个子采样层(pooling运算),关于卷积和子采样的具体过程可以参考下图: 然后,S2到C3又是卷积,C3到S4又是子采样,可以发现,卷积和子采样都是成对出现的,卷积后面一般跟着子采样。S4到C5之间是全连接的,这就相当于一个MLP的隐含层了(如果你不清楚MLP,参考《DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解》)。C5到F6同样是全连接,也是相当于一个MLP的隐含层。最后从F6到输出output,其实就是一个分类器,这一层就叫分类层。 ok,CNN的基本结构大概就是这样,由输入、卷积层、子采样层、全连接层、分类层、输出这些基本“构件”组成,一般根据具体的应用或者

完整版一文读懂卷积神经网络CNN

一文读懂卷积神经网络CNN 第一点,在学习Deep learning和CNN之前,总以为它们是很了不得的知识,总以为它们能解决很多问题,学习了之后,才知道它们不过与其他机器学习算法如SVM等相似,仍然可以把它当作一个分类器,仍然可以像使用一个黑盒子那样使用它。 第二点,Deep Learning强大的地方就是可以利用网络中间某一层的输出当作是数据的另一种表达,从而可以将其认为是经过网络学习到的特征。基于该特征,可以进行进一步的相似度比较等。 第三点,Deep Learning算法能够有效的关键其实是大规模的数据,这一点原因在于每个DL都有众多的参数,少量数据无法将参数训练充分。 接下来话不多说,直接奔入主题开始CNN之旅。 卷积神经网络简介(Convolutional Neural Networks,简称CNN),卷积神经网络是近年发展起来,并引起广泛重视的一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络(Convolutional Neural Networks-简称CNN )。现在,CNN已经成为众多科学领域的研究热点之一,特别是在模式分类领域,由于该网络避免了对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。K.Fukushima 在1980年提出的新识别机是卷积神经网络的第一个实现网络。随后,更多的科研工作者对该网络进行了改进。其中,具有代表性的研究成果是Alexander和Taylor提出的改进认知机”该方法综合了各种改进方法的优点并避免了耗时的误差反向传播。

卷积神经网络CNN介绍:结构框架,源码理解 - CSDN博客

yangyzz01 首页专栏专家热文whiteinblue的专栏 [原]卷积神经网络CNN介绍:结构框架,源码理解 2014-5-8阅读2239评论0 1. 卷积神经网络结构 卷积神经网络是一个多层的神经网络,每层都是一个变换(映射),常用卷积convention变换和pooling池化变换,每种变换都是对输入数据的一种处理,是输入特征的另一种特征表达;每层由多个二维平面组成,每个平面为各层处理后的特征图(feature map)。 常见结构: 输入层为训练数据,即原始数据,网络中的每一个特征提取层(C-层)都紧跟着一个二次提取的计算层(S-层),这种特有的两次特征提取结构使网络在识别时对输入样本有较高的畸变容忍能力。具体C层和S层的个数不确定,依据具体案例而定;最后一个S,即完成了对原始数据的特征提取后,把S层的特征数据进行向量化(vector),然后连接到相应分类器。 一个具有7(输入层+c1+s2+c3+s4+c5+v)层网络结构的字母识别的CNN网络 2 卷积层Convolution作用: 卷积操作:用一个滤波器(就是一个小特征矩阵,也称卷积核)在图像矩阵上游走,在对应位置元素相乘,再把相乘的结果相加,最后相加的结果形成新的图像矩阵,游走完成后即完成了对原始图像的卷积变换(映射变换),形成此滤波器下的特征提取。 C层是一个特征提取层,为什么用卷积运算;卷积运算一个重要的特点就是,通过卷积运算,可以使原信号特征增强,并且降低噪音;例如用增强边缘的卷积去处理图像,处理后的图像边缘特征增强。 3 S层作用:

S-层可看作是模糊滤波器,起到二次特征提取的作用。S层又叫做subsample层,子采样层或者pooling(池化)层 在通过卷积获得了特征 (features)之后,下一步我们希望利用这些特征去做分类。理论上讲,人们可以用所有提取得到的特征去训练分类器,例如 softmax分类器,但这样做面临计算量的挑战。例如:对于一个 96X96像素的图像,假设我们已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个 (96 ? 8 + 1) * (96 ? 8 + 1) = 7921 维的卷积特征,由于有 400个特征,所以每个样例 (example)都会得到一个 892 *400 = 3,168,400维的卷积特征向量。学习一 个拥有超过 3百万特征输入的分类器十分不便,并且容易出现过拟合 (over-fitting)。 为了解决这个问题,首先回忆一下,我们之所以决定使用卷积后的特征是因为图像具有一 种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值 (或最大值)。这些概要统计特征不仅具有低得多的维度 (相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化 (pooling),有时也称为平均池化或者最大池化 (取决于计算池化的方法)。 4 网络的前馈计算: 4.1C层卷积计算: 用一个可训练的滤波器k ij去卷积一个输入的图像(第一阶段是输入的图像,后面的阶段就是S 层的结果特征map了),然后加一个偏置b x,得到卷积层C x。 假设层为s层特征图像X i l-1(pooling层),l层为卷积C层,卷积结果为X j l 参数kij为两层间卷积核(滤波器,kernals),由于s层有m个特征,c层有n个特征,所以一共有m*n个卷积核。bj为卷基层每个结果特征对应的一个偏置项bias,f为非线性变换函 数sigmoid函数;Mj为选择s层特征输入的个数,即选择多少个s层的图像特征作为输入;由于选择s层的特征个数方法不同,主要分为三种卷积选择方式 1、全部选择: s层的全部特征都作为输入, Mj=m。如上图所示。 2、自动稀疏选择: 在卷积计算前加入稀疏稀疏aij,通过稀疏规则限制(论文后面),使算法自动选取部分s层特

相关文档
最新文档