才子佳人博客

我的故事我讲述

卷积神经网络简介
 
来源:www.cnblogs.com  编辑:xjh  2020-01-03

卷积神经网络(CNN),这是深度学习算法应用最成功的领域之一,卷积神经网络包括一维卷积神经网络,二维卷积神经网络以及三维卷积神经网络。一维卷积神经网络主要用于序列类的数据处理,二维卷积神经网络常应用于图像类文本的识别,三维卷积神经网络主要应用于医学图像以及视频类数据识别。

卷积神经网络与普通神经网络的区别在于,卷积神经网络包含了一个由卷积层和子采样层(池化层)构成的特征抽取器。在卷积神经网络的卷积层中,一个神经元只与部分邻层神经元连接。在CNN的一个卷积层中,通常包含若干个特征图(featureMap),每个特征图由一些矩形排列的的神经元组成,同一特征图的神经元共享权值,这里共享的权值就是卷积核。卷积核一般以随机小数矩阵的形式初始化,在网络的训练过程中卷积核将学习得到合理的权值。共享权值(卷积核)带来的直接好处是减少网络各层之间的连接,同时又降低了过拟合的风险。

子采样也叫做池化(pooling),通常有均值子采样(mean pooling)和最大值子采样(max pooling)两种形式。子采样可以看作一种特殊的卷积过程。卷积和子采样大大简化了模型复杂度,减少了模型的参数。

我们先获取一个感性认识,下图是一个卷积神经网络的实例:



在前向传播过程中,输入的图形数据经过多层卷积层的卷积和池化处理,提取出特征向量,将特征向量传入全连接层中,得出分类识别的结果。当输出的结果与我们的期望值相符时,输出结果。

卷积神经网络通常包含以下几种层:

•卷积层(Convolutional layer),卷积神经网路中每层卷积层由若干卷积单元组成,每个卷积单元的参数都是通过反向传播算法优化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网络能从低级特征中迭代提取更复杂的特征。

•线性整流层(Rectified Linear Units layer, ReLU layer),这一层神经的活性化函数(Activation function)使用线性整流(Rectified Linear Units, ReLU)f(x)=max(0,x)。

•池化层(Pooling layer),通常在卷积层之后会得到维度很大的特征,将特征切成几个区域,取其最大值或平均值,得到新的、维度较小的特征。

•全连接层( Fully-Connected layer), 把所有局部特征结合变成全局特征,用来计算最后每一类的得分。

卷积层(Convolutional layer)

卷积层是卷积神经网络的核心基石。在图像识别里我们提到的卷积是二维卷积,即离散二维滤波器(也称作卷积核)与二维图像做卷积操作,简单的讲是二维滤波器滑动到二维图像上所有位置,并在每个位置上与该像素点及其领域像素点做内积。卷积操作被广泛应用与图像处理领域,不同卷积核可以提取不同的特征,例如边沿、线性、角等特征。在深层卷积神经网络中,通过卷积操作可以提取出图像低级到复杂的特征。

在卷积操作中卷积核是可学习的参数,卷积层的参数较少,这也是由卷积层的主要特性即局部连接和共享权重所决定。

•局部连接:每个神经元仅与输入神经元的一块区域连接,这块局部区域称作感受野(receptive field)。在图像卷积操作中,即神经元在空间维度上是局部连接,但在深度上是全部连接。对于二维图像本身而言,也是局部像素关联较强。这种局部连接保证了学习后的过滤器能够对于局部的输入特征有最强的响应。局部连接的思想,也是受启发于生物学里面的视觉系统结构,视觉皮层的神经元就是局部接受信息的。

•权重共享:计算同一个深度切片的神经元时采用的滤波器是共享的。即计算每个神经元的滤波器均相同,都为W0,这样可以很大程度上减少参数。共享权重在一定程度上讲是有意义的,例如图片的底层边缘特征与特征在图中的具体位置无关。但是在一些场景中是无意的,比如输入的图片是人脸,眼睛和头发位于不同的位置,希望在不同的位置学到不同的特征 。请注意权重只是对于同一深度切片的神经元是共享的,在卷积层,通常采用多组卷积核提取不同特征,即对应不同深度切片的特征,不同深度切片的神经元权重是不共享。另外,偏重(偏置)对同一深度切片的所有神经元都是共享的。

本文不再详细介绍卷积计算过程及其特性,前文已详细介绍,可以看出卷积是线性操作,并具有平移不变性(shift-invariant),平移不变性即在图像每个位置执行相同的操作。卷积层的局部连接和权重共享使得需要学习的参数大大减小,这样也有利于训练较大卷积神经网络。

池化层(Pooling layer)

池化(pool)即下采样(downsamples),目的是为了减少特征图,主要作用是通过减少网络的参数来减小计算量,并且能够在一定程度上控制过拟合。通常在卷积层的后面会加上一个池化层。池化操作对每个深度切片独立,规模一般为 2*2,相对于卷积层进行卷积运算,池化层进行的运算一般有以下几种:

* 最大池化(Max Pooling)。取4个点的最大值。这是最常用的池化方法。

* 均值池化(Mean Pooling)。取4个点的均值。

最常见的池化层是规模为2*2,步幅为2,对输入的每个深度切片进行下采样。每个MAX操作对四个数进行,如下图所示:


池化操作将保持深度大小不变。如果池化层的输入单元大小不是二的整数倍,一般采取边缘补零(zero-padding)的方式补成2的倍数,然后再池化。

卷积神经网络之典型CNN

• LeNet-5,文字识别系统所用的LeNet-5模型是非常经典的模型,它是第一个成功大规模应用在手写数字识别问题的卷积神经网络。

• AlexNet,2012年Imagenet图像识别大赛中,Alext提出的Alexnet网络模型一鸣惊人,引爆了神经网络的应用热潮,并且赢得了2012届图像识别大赛的冠军,这也使得卷积神经网络真正意义上成为图像处理上的核心算法。AlexNet模型提出了ReLU函数,用ReLU代替了Sigmoid,发现使用 ReLU 得到的SGD的收敛速度会比 sigmoid快很多,这成了AlexNet模型的优势之一。

• ZF Net,2013 ILSVRC比赛冠军

• GoogLeNet,2014 ILSVRC比赛冠军

• VGGNet,2014 ILSVRC比赛中的模型,图像识别略差于GoogLeNet,但是在很多图像转化学习问题(比如object detection)上效果奇好

• ResNet,2015年ImageNet大赛中,MSRA何凯明团队的ResidualNetworks力压群雄,在ImageNet的诸多领域的比赛中上均获得了第一名的好成绩

来源:
https://www.cnblogs.com/duanhx/p/9655223.html


分类:网络日志| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: