一、卷积神经网络的概述

卷积神经网络(ConvolutionalNeural Network,CNN)最初是为解决图像识别等问题设计的,CNN现在的应用已经不限于图像和视频,也可用于时间序列信号,比如音频信号和文本数据等。CNN作为一个深度学习架构被提出的最初诉求是降低对图像数据预处理的要求,避免复杂的特征工程。在卷积神经网络中,第一个卷积层会直接接受图像像素级的输入,每一层卷积(滤波器)都会提取数据中最有效的特征,这种方法可以提取到图像中最基础的特征,而后再进行组合和抽象形成更高阶的特征,因此CNN在理论上具有对图像缩放、平移和旋转的不变性。

卷积神经网络CNN的要点就是局部连接(LocalConnection)、权值共享(Weights Sharing)和池化层(Pooling)中的降采样(Down-Sampling)。其中,局部连接和权值共享降低了参数量,使训练复杂度大大下降并减轻了过拟合。同时权值共享还赋予了卷积网络对平移的容忍性,池化层降采样则进一步降低了输出参数量并赋予模型对轻度形变的容忍性,提高了模型的泛化能力。可以把卷积层卷积操作理解为用少量参数在图像的多个位置上提取相似特征的过程。

卷积层的空间排列:上文讲解了卷积层中每个神经元与输入数据体之间的连接方式,但是尚未讨论输出数据体中神经元的数量,以及它们的排列方式。3个超参数控制着输出数据体的尺寸:深度(depth),步长(stride)和零填充(zero-padding)。首先,输出数据体的深度是一个超参数:它和使用的滤波器的数量一致,而每个滤波器在输入数据中寻找一些不同的东西。其次,在滑动滤波器的时候,必须指定步长。有时候将输入数据体用0在边缘处进行填充是很方便的。这个零填充(zero-padding)的尺寸是一个超参数。零填充有一个良好性质,即可以控制输出数据体的空间尺寸(最常用的是用来保持输入数据体在空间上的尺寸,这样输入和输出的宽高都相等)。输出数据体在空间上的尺寸可以通过输入数据体尺寸(W),卷积层中神经元的感受野尺寸(F),步长(S)和零填充的数量(P)的函数来计算。(这里假设输入数组的空间形状是正方形,即高度和宽度相等)输出数据体的空间尺寸为(W-F +2P)/S+1,在计算上,输入数据体的长和宽按照该公式计算,深度依赖于滤波器的数量。步长的限制:注意这些空间排列的超参数之间是相互限制的。举例说来,当输入尺寸W=10,不使用零填充则P=0,滤波器尺寸F=3,这样步长S=2就行不通,结果4.5不是整数,这就是说神经元不能整齐对称地滑过输入数据体。

汇聚层使用MAX操作,对输入数据体的每一个深度切片独立进行操作,改变它的空间尺寸。最常见的形式是汇聚层使用尺寸2x2的滤波器,以步长为2来对每个深度切片进行降采样,将其中75%的激活信息都丢掉。每个MAX操作是从4个数字中取最大值(也就是在深度切片中某个2x2的区域)。深度保持不变。

二、卷积神经网络的结构

卷积神经网络通常是由三种层构成:卷积层,汇聚层(除非特别说明,一般就是最大值汇聚)和全连接层(fully-connected简称FC)。ReLU激活函数也应该算是是一层,它逐元素地进行激活函数操作。

TensorFlow深度学习之卷积神经网络CNN

卷积神经网络最常见的形式就是将一些卷积层和ReLU层放在一起,其后紧跟汇聚层,然后重复如此直到图像在空间上被缩小到一个足够小的尺寸,在某个地方过渡成成全连接层也较为常见。最后的全连接层得到输出,比如分类评分等。

最常见的卷积神经网络结构如下:

INPUT -> [[CONV -> RELU]*N ->POOL"text-align: center">TensorFlow深度学习之卷积神经网络CNN

三、CNN最大的特点在于卷积的权值共享(参数共享),可以大幅度减少神经网络的参数数量,防止过拟合的同时又降低了神经网络模型的复杂度。如何理解?

假设输入图像尺寸是1000*1000并且假定是灰度图像,即只有一个颜色通道。那么一张图片就有100万个像素点,输入维度就是100万。如果采用全连接层(Fully Connected Layer,FCL)的话,隐含层与输入层相同大小(100万个隐含层节点),那么将产生100万*100万=1万亿个连接,仅此就有1万亿个参数需要去训练,这是不可想象的。考虑到人的视觉感受野的概念,每一个感受野只接受一小块区域的信号,每一个神经元不需要接收全部像素点的信息,只需要接收局部像素点作为输入,而将所有这些神经元接收的局部信息综合起来就可以得到全局的信息。于是将之前的全连接模式修改为局部连接,假设局部感受野大小是10*10,即每个隐含节点只与10*10个像素点相连,那么现在只需要10*10*100万=1亿个连接了,相比之前的1万亿已经缩小了10000倍。假设我们的局部连接方式是卷积操作,即默认每一个隐含节点的参数都完全一样,那么我们的参数将会是10*10=100个。不论图像尺寸有多大,都是这100个参数,即卷积核的尺寸,这就是卷积对减小参数量的贡献。这也就是所谓的权值共享。我们采取增加卷积核的数量来多提取一些特征,每一个卷积核滤波得到的图像就是一类特征的映射,即一个Feature Map。一般来说,我们使用100个卷积核在第一个卷积层就足够了,这样我们有100*100=10000个参数相比之前的1亿又缩小了10000倍。卷积的好处是,不管图片尺寸如何,需要训练的参数数量只跟卷积核大小和数量有关,并且需要注意的是,尽管参数的数量大大下降了,但是我们的隐含节点的数量并没有下降,隐含节点的数量只跟卷积的步长有关系。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

标签:
TensorFlow,卷积神经网络,CNN

免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
评论“TensorFlow深度学习之卷积神经网络CNN”
暂无“TensorFlow深度学习之卷积神经网络CNN”评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?