卷积神经网络

卷积神经网络
卷积神经网络

技术向:一文读懂卷积神经网络

?雪姬

?2015-03-06 4:53:55

?机器学习

?评论(23)

?

自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet、cuda-convnet2。为了增进CNN 的理解和使用,特写此博文,以其与人交流,互有增益。正文之前,先说几点自己对于CNN 的感触。先明确一点就是,Deep Learning是全部深度学习算法的总称,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的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少了网络自由参数的个数。卷积神经网络中的每一个卷积层都紧跟着一个用来求局部平均与二次提取的计算层,这种特有的两次特征提取结构减小了特征分辨率。

CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显示的特征抽取,而隐式地从训练数据中进行学习;再者由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网

络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。

1. 神经网络

首先介绍神经网络,这一步的详细可以参考资源1。简要介绍下。神经网络的每个单元如下:

其对应的公式如下:

其中,该单元也可以被称作是Logistic回归模型。当将多个单元组合起来并具有分层结构时,就形成了神经网络模型。下图展示了一个具有一个隐含层的神经网络。

其对应的公式如下:

比较类似的,可以拓展到有2,3,4,5,…个隐含层。

神经网络的训练方法也同Logistic类似,不过由于其多层性,还需要利用链式求导法则对隐含层的节点进行求导,即梯度下降+链式求导法则,专业名称为反向传播。关于训练算法,本文暂不涉及。

2 卷积神经网络

在图像处理中,往往把图像表示为像素的向量,比如一个1000×1000的图像,可以表示为一个1000000的向量。在上一节中提到的神经网络中,如果隐含层数目与输入层一样,即也是1000000时,那么输入层到隐含层的参数数据为1000000×1000000=10^12,这样就太多了,基本没法训练。所以图像处理要想练成神经网络大法,必先减少参数加快速度。就跟辟邪剑谱似的,普通人练得很挫,一旦自宫后内力变强剑法变快,就变的很牛了。

2.1 局部感知

卷积神经网络有两种神器可以降低参数数目,第一种神器叫做局部感知野。一般认为人对外界的认知是从局部到全局的,而图像的空间联系也是局部的像素联系较为紧密,而距离较远的像素相关性则较弱。因而,每个神经元其实没有必要对全局图像进行感知,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。网络部分连通的思想,也是受启发于生物学里面的视觉系统结构。视觉皮层的神经元就是局部接受信息的(即这些神经元只响应某些特定区域的刺激)。如下图所示:左图为全连接,右图为局部连接。

在上右图中,假如每个神经元只和10×10个像素值相连,那么权值数据为1000000×100个参数,减少为原来的千分之一。而那10×10个像素值对应的10×10个参数,其实就相当于卷积操作。

2.2 参数共享

但其实这样的话参数仍然过多,那么就启动第二级神器,即权值共享。在上面的局部连接中,每个神经元都对应100个参数,一共1000000个神经元,如果这1000000个神经元的100个参数都是相等的,那么参数数目就变为100了。

怎么理解权值共享呢?我们可以这100个参数(也就是卷积操作)看成是提取特征的方式,该方式与位置无关。这其中隐含的原理则是:图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。

更直观一些,当从一个大尺寸图像中随机选取一小块,比如说8×8 作为样本,并且从这个小块样本中学习到了一些特征,这时我们可以把从这个8×8 样本中学习到的特征作为探测器,应用到这个图像的任意地方中去。特别是,我们可以用从8×8 样本中所学习到的特征

跟原本的大尺寸图像作卷积,从而对这个大尺寸图像上的任一位置获得一个不同特征的激活值。

如下图所示,展示了一个33的卷积核在55的图像上做卷积的过程。每个卷积都是一种特征提取方式,就像一个筛子,将图像中符合条件(激活值越大越符合条件)的部分筛选出来。

2.3 多卷积核

上面所述只有100个参数时,表明只有1个100*100的卷积核,显然,特征提取是不充分的,我们可以添加多个卷积核,比如32个卷积核,可以学习32种特征。在有多个卷积核时,如下图所示:

上图右,不同颜色表明不同的卷积核。每个卷积核都会将图像生成为另一幅图像。比如两个卷积核就可以将生成两幅图像,这两幅图像可以看做是一张图像的不同的通道。如下图所示,下图有个小错误,即将w1改为w0,w2改为w1即可。下文中仍以w1和w2称呼它们。下图展示了在四个通道上的卷积操作,有两个卷积核,生成两个通道。其中需要注意的是,四个通道上每个通道对应一个卷积核,先将w2忽略,只看w1,那么在w1的某位置(i,j)处的值,是由四个通道上(i,j)处的卷积结果相加然后再取激活函数值得到的。

所以,在上图由4个通道卷积得到2个通道的过程中,参数的数目为4×2×2×2个,其中4表示4个通道,第一个2表示生成2个通道,最后的2×2表示卷积核大小。

2.4 Down-pooling

在通过卷积获得了特征(features) 之后,下一步我们希望利用这些特征去做分类。理论上讲,人们可以用所有提取得到的特征去训练分类器,例如softmax 分类器,但这样做面临计算量的挑战。例如:对于一个96X96 像素的图像,假设我们已经学习得到了400个定义在8X8输入上的特征,每一个特征和图像卷积都会得到一个(96 ? 8 + 1) × (96 ? 8 + 1) = 7921 维的卷积特征,由于有400 个特征,所以每个样例(example) 都会得到一个892 × 400 = 3,168,400 维的卷积特征向量。学习一个拥有超过3 百万特征输入的分类器十分不便,并且容易出现过拟合(over-fitting)。

为了解决这个问题,首先回忆一下,我们之所以决定使用卷积后的特征是因为图像具有一种“静态性”的属性,这也就意味着在一个图像区域有用的特征极有可能在另一个区域同样适

用。因此,为了描述大的图像,一个很自然的想法就是对不同位置的特征进行聚合统计,例如,人们可以计算图像一个区域上的某个特定特征的平均值(或最大值)。这些概要统计特征不仅具有低得多的维度(相比使用所有提取得到的特征),同时还会改善结果(不容易过拟合)。这种聚合的操作就叫做池化(pooling),有时也称为平均池化或者最大池化(取决于计算池化的方法)。

至此,卷积神经网络的基本结构和原理已经阐述完毕。

2.5 多层卷积

在实际应用中,往往使用多层卷积,然后再使用全连接层进行训练,多层卷积的目的是一层卷积学到的特征往往是局部的,层数越高,学到的特征就越全局化。

3 ImageNet-2010网络结构

ImageNet LSVRC是一个图片分类的比赛,其训练集包括127W+张图片,验证集有5W 张图片,测试集有15W张图片。本文截取2010年Alex Krizhevsky的CNN结构进行说明,该结构在2010年取得冠军,top-5错误率为15.3%。值得一提的是,在今年的ImageNet LSVRC比赛中,取得冠军的GoogNet已经达到了top-5错误率6.67%。可见,深度学习的提升空间还很巨大。

下图即为Alex的CNN结构图。需要注意的是,该模型采用了2-GPU并行结构,即第1、2、4、5卷积层都是将模型参数分为2部分进行训练的。在这里,更进一步,并行结构分为数据并行与模型并行。数据并行是指在不同的GPU上,模型结构相同,但将训练数据进行切分,分别训练得到不同的模型,然后再将模型进行融合。而模型并行则是,将若干层的模型参数进行切分,不同的GPU上使用相同的数据进行训练,得到的结果直接连接作为下一层的输入。

上图模型的基本参数为:

输入:224×224大小的图片,3通道

第一层卷积:5×5大小的卷积核96个,每个GPU上48个。

第一层max-pooling:2×2的核。

第二层卷积:3×3卷积核256个,每个GPU上128个。

第二层max-pooling:2×2的核。

第三层卷积:与上一层是全连接,3*3的卷积核384个。分到两个GPU上个192个。

第四层卷积:3×3的卷积核384个,两个GPU各192个。该层与上一层连接没有经过pooling层。

第五层卷积:3×3的卷积核256个,两个GPU上个128个。

第五层max-pooling:2×2的核。

第一层全连接:4096维,将第五层max-pooling的输出连接成为一个一维向量,作为该层的输入。

第二层全连接:4096维

Softmax层:输出为1000,输出的每一维都是图片属于该类别的概率。

4 DeepID网络结构

DeepID网络结构是香港中文大学的Sun Yi开发出来用来学习人脸特征的卷积神经网络。每张输入的人脸被表示为160维的向量,学习到的向量经过其他模型进行分类,在人脸验证试验上得到了97.45%的正确率,更进一步的,原作者改进了CNN,又得到了99.15%的正确率。

如下图所示,该结构与ImageNet的具体参数类似,所以只解释一下不同的部分吧。

上图中的结构,在最后只有一层全连接层,然后就是softmax层了。论文中就是以该全连接层作为图像的表示。在全连接层,以第四层卷积和第三层max-pooling的输出作为全连接层的输入,这样可以学习到局部的和全局的特征。

作者:张雨石原文地址>>

End.

卷积神经网络Convolutional Neural Networks(CNN)

卷积神经网络Convolutional Neural Networks(CNN)一、什么是卷积 首先回顾一下,数字图像处理中我们用卷积模板和原始图像的像素卷积。过程如下:Step 1、先将模板旋转180度(又称折叠) Step 2、然后让模板依次和原始图像重叠,并且计算重叠部分的数值乘积之和 以2D为例 先对模板K做折叠,然后依次覆盖图像I,并且计算重叠部分的数值乘积之和 依次进行到最后,会多出一圈,得到最后的卷积结果

卷积的意义(图像处理而言);对图像使用不同的卷积模板,对图像做不同的处理。比如平滑模板可以使图像模糊,并且可以减少噪声、锐化模板可以使图像的轮廓变得清晰。 二、卷积网络的结构 2.1 从BP网络到卷积网络 回想一下BP神经网络。BP网络每一层节点是一个线性的一维排列状态,层与层的网络节点之间是全连接的。这样设想一下,如果BP网络中层与层之间的节点连接不再是全连接,而是局部连接的。这样,就是一种最简单的一维卷积网络。如果我们把上述这个思路扩展到二维,这就是我们在大多数参考资料上看到的卷积神经网络。具体参看下图: 图1:全连接的2D 网络(BP网络)图2:局部连接的2D网络(卷积网络) 现在我们考虑单隐层结构, 上图左:全连接网络。如果我们有1000x1000像素的图像,有1百万个隐层神经元,每个隐层神经元都连接图像的每一个像素点,就有1000x1000x1000000=10^12个连接,也就是10^12个权值参数。上图右:局部连接网络,每一个节点与上层节点同位置附近10x10的窗口相连接,则1百万个隐层神经元就只有100w乘以100,即10^8个参数。其权值连接个数比原来减少了四个数量级。 因此,卷积网络降低了网络模型的复杂度,减少了权值的数量。该优点在网络的输入是多维图像时表现的更为明显,使图像可以直接作为网络的输入,避免了传统识别算法中复杂的特征提取和数据重建过程。

神经网络最新发展综述

神经网络最新发展综述 学校:上海海事大学 专业:物流工程 姓名:周巧珍 学号:201530210155

神经网络最新发展综述 摘要:作为联接主义智能实现的典范,神经网络采用广泛互联的结构与有效的学习机制来模拟人脑信息处理的过程,是人工智能发展中的重要方法,也是当前类脑智能研究中的有效工具。目前,模拟人脑复杂的层次化认知特点的深度学习成为类脑智能中的一个重要研究方向。通过增加网络层数所构造的“深层神经网络”使机器能够获得“抽象概念”能力,在诸多领域都取得了巨大的成功,又掀起了神经网络研究的一个新高潮。本文分8个方面综述了其当前研究进展以及存在的问题,展望了未来神经网络的发展方向。 关键词: 类脑智能;神经网络;深度学习;大数据 Abstract: As a typical realization of connectionism intelligence, neural network, which tries to mimic the information processing patterns in the human brain by adopting broadly interconnected structures and effective learning mechanisms, is an important branch of artificial intelligence and also a useful tool in the research on brain-like intelligence at present. Currently, as a way to imitate the complex hierarchical cognition characteristic of human brain, deep learning brings an important trend for brain-like intelligence. With the increasing number of layers, deep neural network entitles machines the capability to capture “abstract concepts” and it has achieved great success in various fields, leading a new and advanced trend in neural network research. This paper summarizes the latest progress in eight applications and existing problems considering neural network and points out its possible future directions. Key words : artificial intelligence; neural network; deep learning; big data 1 引言 实现人工智能是人类长期以来一直追求的梦想。虽然计算机技术在过去几十年里取得了长足的发展,但是实现真正意义上的机器智能至今仍然困难重重。伴随着神经解剖学的发展,观测大脑微观结构的技术手段日益丰富,人类对大脑组织的形态、结构与活动的认识越来越深入,人脑信息处理的奥秘也正在被逐步揭示。如何借助神经科学、脑科学与认知科学的研究成果,研究大脑信息表征、转换机理和学习规则,建立模拟大脑信息处理过程的智能计算模型,最终使机器掌握人类的认知规律,是“类脑智能”的研究目标。 类脑智能是涉及计算科学、认知科学、神经科学与脑科学的交叉前沿方向。类脑智能的

卷积神经网络 论文版

卷积神经网络 摘要:卷积神经网络是近年来广泛应用于模式识别、图像处理等领域的一种高效识别算法,它具有结构简单、训练参数少和适应性强等特点。本文从卷积神经网络的发展历史开始,详细阐述了卷积神经网络的网络结构、神经元模型和训练算法。在此基础上以卷积神经网络在人脸检测和形状识别方面的应用为例,简单介绍了卷积神经网络在工程上的应用,并给出了设计思路和网络结构。 关键字:模型;结构;训练算法;人脸检测;形状识别 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包括两种基本的计算,其一为特征提取,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该

基于卷积神经网络的文本分类研究综述

第34卷第3期2019年5月 内蒙古民族大学学报(自然科学版) Journal of Inner Mongolia University for Nationalities Vol.34No.3 May2019 基于卷积神经网络的文本分类研究综述 裴志利1,阿茹娜2,姜明洋2,卢奕南3 (1.内蒙古民族大学计算机科学与技术学院,内蒙古通辽028043;2.内蒙古民族大学数学学院,内蒙古通辽028000;3.吉林大学计算机科学与技术学院,吉林长春130012) [摘要]随着互联网及其相关技术的高速发展,网络数据呈现出井喷式的增长,其中主要以文本的形式大量 存在,数据在这种增长趋势下,文本分类已经成为越来越重要的研究课题.如今,采用深度学习技术对文本进 行表示受到研究者的极大关注.如采用卷积神经网络对文档进行表示和分类等自然语言处理.本文主要对基 于卷积神经网络的文本分类方法进行了研究,介绍了几个具有代表性的卷积神经网络模型结构.最后提出了 对基于该方法文本分类的展望. [关键词]卷积神经网络;文本分类;深度学习 [中图分类号]TP393[文献标识码]A[文章编号]1671-0815(2019)03-0206-05 Survey of Text Classification Research Based on Convolutional Neural Networks PEI Zhi-li1,Aruna2,JIANG Ming-yang2,LU Yi-nan3 (1.College of Computer Science and Technology,Inner Mongolia University for Nationalities,Tongliao028043,China; 2.College of Mathematics,Inner Mongolia University for Nationalities,Tongliao028000,China; 3.College of Computer Science and Technology,Jilin University,Changchun130012,China) Abstract:With the rapid development of the Internet and related technologies,network data has shown a spurt growth trend,which mainly exists in the form of text.Under this growth trend,text classification has become an increasingly important research topic.The use of deep learning technology to express the text has received great attention.For example, natural language processing such as convolutional neural network is used to represent and classify documents.The text classification method based on convolutional neural network is investigated.Several representative convolutional neural network model structures are introduced.Finally,the prospect of text classification based on this method is proposed. Key wrrds:Convolutional neural network;Text classification;Deep learning 0引言 随着网络媒体的出现,用户生成的内容以飞快的速度填充数据资源,这些数据的自动处理引起了研究者的巨大关注.文本分类是自然语言处理领域的重要任务,包括情感分析、对话分析、文献综述、机器翻译等[1].文本分类具有多种方法,传统的机器学习分类算法有支持向量机算法(Support Vector Machine,SVM)[2]、朴素贝叶斯算法(Naive Bayesian Classifier,NBC)[3]、决策树算法(Decision Tree,DT)[4]、K-最近邻算法(K-Nearest Neighbor,KNN)[5]等,采用传统算法文本分类时需要人工进行特征提取,耗费时间和精 基金项目:国家自然科学基金项目(61672301);内蒙古自治区“草原英才”工程产业创新人才团队(2017);内蒙古自治区科技创新引导奖励资金项目(2016);内蒙古民族大学特色交叉学科群建设项目(MDXK004);2019年度内蒙古自治区高等学校“青年科技英才支持计划”(NJYT-19-B18) 作者简介:裴志利,内蒙古民族大学计算机科学与技术学院教授,博士. DOI:10.14045/https://www.360docs.net/doc/b9481895.html,ki.15-1220.2019.03.005

基于深度卷积神经网络的图像分类

SHANGHAI JIAO TONG UNIVERSITY 论文题目:基于卷积神经网络的自然图像分类技术研究 姓名: 高小宁 专业:控制科学与工程

基于卷积神经网络的自然图像分类技术研究 摘要:卷积神经网络已在图像分类领域取得了很好的效果,但其网络结构及参数的选择对图像分类的效果和效率有较大的影响。为改善卷积网络的图像分类性能,本文对卷积神经网络模型进行了详细的理论分析,并通过大量的对比实验,得出了影响卷积网络性能的因素。结合理论分析及对比实验,本文设计了一个卷积层数为8层的深度卷积网络,并结合Batch Normalization、dropout等方法,在CIFAR-10数据集上取得了88.1%的分类精度,有效地提高了卷积神经网络的分类效果。 关键词:卷积神经网络,图像分类,Batch Normalization,Dropout Research on Natural Image Classification Based on Convolution Neural Network Abstract: Convolution neural network has achieved very good results in image classification, but its network structure and the choice of parameters have a greater impact on image classification efficiency and efficiency. In order to improve the image classification performance of the convolution network, a convolutional neural network model is analyzed in detail, and a large number of contrastive experiments are conducted to get the factors that influence the performance of the convolution network. Combining the theory analysis and contrast experiment, a convolution layer depth convolution network with 8 layers is designed. Combined with Batch Normalization and dropout, 88.1% classification accuracy is achieved on CIFAR-10 dataset. Which improves the classification effect of convolution neural network. Key Words:Convolution neural network(CNN), image classification, Batch Normalization,Dropout

趋势分析之卷积神经网络

趋势分析之卷积神经网络 卷积神经网络(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/b9481895.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一般采用卷积层与

综述卷积神经网络:从基础技术到

1 引言 1.1 动机 过去几年来,计算机视觉研究主要集中在卷积神经网络(常简称为ConvNet 或CNN)上。这些工作已经在广泛的分类和回归任务上实现了新的当前最佳表现。相对而言,尽管这些方法的历史可以追溯到多年前,但对这些系统得到出色结果的方式的理论理解还很滞后。事实上,当前计算机视觉领域的很多成果都是将CNN 当作黑箱使用,这种做法是有效的,但其有效的原因却非常模糊不清,这严重满足不了科学研究的要求。尤其是这两个可以互补的问题:(1)在被学习的方面(比如卷积核),究竟被学习的是什么?(2)在架构设计方面(比如层的数量、核的数量、池化策略、非线性的选择),为什么某些选择优于另一些选择?这些问题的答案不仅有利于提升我们对 CNN 的科学理解,而且还能提升它们的实用性。 此外,目前实现CNN 的方法需要大量训练数据,而且设计决策对结果表现有很大的影响。更深度的理论理解应该能减轻对数据驱动的设计的依赖。尽管已有实证研究调查了所实现的网络的运行方式,但到目前为止,这些结果很大程度上还局限在内部处理过程的可视化上,目的是为了理解 CNN 中不同层中发生的情况。 1.2 目标 针对上述情况,本报告将概述研究者提出的最突出的使用多层卷积架构的方法。要重点指出的是,本报告将通过概述不同的方法来讨论典型卷积网络的各种组件,并将介绍它们的设计决策所基于的生物学发现和/或合理的理论基础。此外,本报告还将概述通过可视化和实证研究来理解 CNN 的不同尝试。本报告的最终目标是阐释 CNN 架构中涉及的每一个处理层的作用,汇集我们当前对CNN 的理解以及说明仍待解决的问题。

1.3 报告提纲 本报告的结构如下:本章给出了回顾我们对卷积网络的理解的动机。第2 章将描述各种多层网络并给出计算机视觉应用中使用的最成功的架构。第3 章将更具体地关注典型卷积网络的每种构造模块,并将从生物学和理论两个角度讨论不同组件的设计。最后,第4 章将会讨论CNN 设计的当前趋势以及理解CNN 的工作,并且还将重点说明仍然存在的一些关键短板。 2 多层网络 总的来说,本章将简要概述计算机视觉领域中所用的最突出的多层架构。需要指出,尽管本章涵盖了文献中最重要的贡献,但却不会对这些架构进行全面概述,因为其它地方已经存在这样的概述了(比如 [17, 56, 90])。相反,本章的目的是为本报告的剩余部分设定讨论基础,以便我们详细展示和讨论当前对用于视觉信息处理的卷积网络的理解。 2.1 多层架构 在近来基于深度学习的网络取得成功之前,最先进的用于识别的计算机视觉系统依赖于两个分离但又互补步骤。第一步是通过一组人工设计的操作(比如与基本集的卷积、局部或全局编码方法)将输入数据变换成合适的形式。对输入的变换通常需要找到输入数据的一种紧凑和/或抽象的表征,同时还要根据当前任务注入一些不变量。这种变换的目标是以一种更容易被分类器分离的方式改变数据。其次,被变换的数据通常用于训练某些类型的分类器(比如支持向量机)来识别输入信号的内容。通常而言,任何分类器的表现都会受到所使用的变换方法的严重影响。 多层学习架构为这一问题带来了不同的前景,这种架构提出不仅要学习分类器,而且要从数据中直接学习所需的变换操作。这种形式的学习通常被称为「表征学习」,当应用在深度多层架构中时即被称为「深度学习」。

卷积神经网络总结

卷积神经网络总结-标准化文件发布号:(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 是下采样层的偏置项. 符

一文读懂卷积神经网络CNN

一文读懂卷积神经网络CNN ★据说阿尔法狗战胜李世乭靠的是卷积神经网络算法,所以小编找到了一篇介绍该算法的文章,大家可以看一看。★ 自去年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural Network,CNN),期间配置和使用过theano和cuda-convnet、cuda-convnet2。为了增进CNN的理解和使用,特写此博文,以其与人交流,互有增益。正文之前,先说几点自己对于CNN的感触。先明确一点就是,Deep Learning是全部深度学习算法的总称,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的基本结构包括两层,其一为特征提取层,每个神经元的输入与前一层的局部接受域相连,并提取该局部的特征。一旦该局部特征被提取后,它与其它特征间的位置关系也随之确定下来;其二是特征映射层,网络的每个计算层由多个特征映射组成,每个特征映射是一个平面,平面上所有神经元的权值相等。特征映射结构采用影响函数核小的sigmoid 函数作为卷积网络的激活函数,使得特征映射具有位移不变性。此外,由于一个映射面上的神经元共享权值,因而减少

深度神经网络全面概述

深度神经网络全面概述从基本概念到实际模型和硬件基础 深度神经网络(DNN)所代表的人工智能技术被认为是这一次技术变革的基石(之一)。近日,由IEEE Fellow Joel Emer 领导的一个团队发布了一篇题为《深度神经网络的有效处理:教程和调研(Efficient Processing of Deep Neural Networks: A Tutorial and Survey)》的综述论文,从算法、模型、硬件和架构等多个角度对深度神经网络进行了较为全面的梳理和总结。鉴于该论文的篇幅较长,机器之心在此文中提炼了原论文的主干和部分重要内容。 目前,包括计算机视觉、语音识别和机器人在内的诸多人工智能应用已广泛使用了深度神经网络(deep neural networks,DNN)。DNN 在很多人工智能任务之中表现出了当前最佳的准确度,但同时也存在着计算复杂度高的问题。因此,那些能帮助DNN 高效处理并提升效率和吞吐量,同时又无损于表现准确度或不会增加硬件成本的技术是在人工智能系统之中广泛部署DNN 的关键。 论文地址:https://https://www.360docs.net/doc/b9481895.html,/pdf/1703.09039.pdf 本文旨在提供一个关于实现DNN 的有效处理(efficient processing)的目标的最新进展的全面性教程和调查。特别地,本 文还给出了一个DNN 综述——讨论了支持DNN 的多种平台和架构,并强调了最新的有效处理的技术的关键趋势,这些技术或者只是通过改善硬件设计或者同时改善硬件设计和网络算法以降低DNN 计算成本。本文也会对帮助研究者和从业者快速上手DNN 设计的开发资源做一个总结,并凸显重要的基准指标和设计考量以评估数量快速增长的DNN 硬件设计,还包括学界和产业界共同推荐的算法联合设计。 读者将从本文中了解到以下概念:理解DNN 的关键设计考量;通过基准和对比指标评估不同的DNN 硬件实现;理解不同架构和平台之间的权衡;评估不同DNN 有效处理技术的设计有效性;理解最新的实现趋势和机遇。 一、导语 深度神经网络(DNN)目前是许多人工智能应用的基础[1]。由于DNN 在语音识别[2] 和图像识别[3] 上的突破性应用,使用DNN 的应用量有了爆炸性的增长。这些DNN 被部署到了从自动驾驶汽车[4]、癌症检测[5] 到复杂游戏[6] 等各种应用中。在这许多领域中,DNN 能够超越人类的准确率。而DNN 的出众表现源于它能使用统计学习方法从原始感官数据中提取高层特征,在大量的数据中获得输入空间的有效表征。这与之前使用手动提取特征或专家设计规则的方法不同。 然而DNN 获得出众准确率的代价是高计算复杂性成本。虽然通用计算引擎(尤其是GPU),已经成为许多DNN 处理的砥柱,但提供对DNN 计算更专门化的加速方法也越来越热门。本文的目标是提供对DNN、理解DNN 行为的各种工具、有效加速计算的各项技术的概述。 该论文的结构如下:

卷积神经网络总结

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/b9481895.html,) 代码下载:https://https://www.360docs.net/doc/b9481895.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

相关文档
最新文档