高考考试网
当前位置: 首页 高考资讯

卷积神经网络的核心结构(卷积神经网络CNN的相关概念)

时间:2023-07-19 作者: 小编 阅读量: 12 栏目名: 高考资讯

多个滤波器叠加便成了卷积层。但是卷积神经网络默认输入是图像,可以让我们把特定的性质编码入网络结构,使是我们的前馈函数更加有效率,并减少了大量参数。同时代表滤波器个数。其中黄色部分的矩阵为滤波器,深度为1,步长为1,填充值为0。很明显我们可以看出,每次滤波器都是针对某一局部的数据窗口进行卷积,这就是所谓的CNN中的局部感知机制。池化池化,简言之,即取区域平均或最大,其目的是为了减少特征图。

传统神经网络存在的问题

说卷积神经网络前,我们要先说一下传统神经网络存在的一些问题,上图是一个典型的传统神经网络的示例图。设想一个场景,假设我们要训练的的样本图片是100x100(像素)的,那么整张图片总共就是有10000个像素,那么在定义一个 传统神经网络的时候,输入层(input layer)就需要有1w个神经元,那么如果我们的中间的隐藏层(hidden layer)也需要有1w个神经元,那么总共需要的参数(权值)就高达1亿个(1w*1w),试想一下,这还只是一张100x100的图片就需要这么多的参数,如果图片更大之后呢,可想而知整个神经网络的计算量有多恐怖。当然,一旦权重多了之后,则必须要有足够量的样本进行训练,否则就会出现 的现象。因此我们可以知道,传统神经网络有以下两个问题:

  • 权值太多,计算量太大
  • 权值太多,如果没有大量样本支撑则会出现过拟合现象
卷积神经网络

卷积

什么是卷积?

在了解卷积神经网络之前我们需要知道什么是卷积。对图像(不同的数据窗口数据)和滤波矩阵(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。非严格意义上来讲,下图中红框框起来的部分便可以理解为一个滤波器(filter),即带着一组固定权重的神经元。多个滤波器叠加便成了卷积层。

举个具体的例子。比如下图中,图中左边部分是原始输入数据,图中中间部分是滤波器filter,图中右边是输出的新的二维数据。

分解下上图

对应位置上是数字先相乘后相加

=

中间滤波器filter与数据窗口做内积,其具体计算过程则是:4x00x00x00x00x10x10x00x1-4x2 = -8

图像上的卷积

在下图对应的计算过程中,输入是一定区域大小(width*height)的数据,和滤波器filter(带着一组固定权重的神经元)做内积后等到新的二维数据。

如下图所示:

具体来说,左边是图像输入,中间部分就是滤波器filter(带着一组固定权重的神经元),不同的滤波器filter会得到不同的输出数据,比如颜色深浅、轮廓。相当于如果想提取图像的不同特征,则用不同的滤波器filter,提取想要的关于图像的特定信息:颜色深浅或轮廓。用一句话解释不同滤波器之间的差异就是:一千个读者就有一千个哈姆雷特

什么是卷积神经网络?

卷积神经网络(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网络与普通神经网络非常相似,它们都由具有可学习的权重和偏置常量(biases)的神经元组成。每个神经元都接收一些输入,并做一些点积计算,输出是每个分类的分数,普通神经网络里的一些计算技巧到这里依旧适用。但是卷积神经网络默认输入是图像,可以让我们把特定的性质编码入网络结构,使是我们的前馈函数更加有效率,并减少了大量参数。

具有三维体积的神经元(3D volumes of neurons)

卷积神经网络利用输入是图片的特点,把神经元设计成三个维度 : width, height, depth(注意这个depth不是神经网络的深度,而是用来描述神经元的) 。比如输入的图片大小是 32 × 32 × 3 (rgb),那么输入神经元就也具有 32×32×3 的维度。下面是图解:

一个卷积神经网络各层应用实例

上图中CNN要做的事情是:给定一张图片,是车还是马未知,是什么车也未知,现在需要模型判断这张图片里具体是一个什么东西,总之输出一个结果:如果是车 那是什么车。

我们按照从左到右的方向来理一下:

左边:

  • 最左边是数据输入层,对数据做一些处理,比如去均值(把输入数据各个维度都中心化为0,避免数据过多偏差,影响训练效果)、归一化(把所有的数据都归一到同样的范围)、PCA/白化等等。CNN只对训练集做“去均值”这一步。

中间:

  • CONV:卷积计算层,线性乘积求和。
  • RELU:激励层,ReLU是激活函数的一种。
  • POOL:池化层,简言之,即取区域平均或最大。

右边:

  • FC:全连接层
卷积神经网络(CNN)中的局部感知和权重共享

CNN中的局部感知

在CNN中,滤波器filter(带着一组固定权重的神经元)对局部输入数据进行卷积计算。每计算完一个数据窗口内的局部数据后,数据窗口不断平移滑动,直到计算完所有数据。这个过程中,有这么几个参数:

  • 深度depth:神经元个数,决定输出的depth厚度。同时代表滤波器个数。
  • 步长stride:决定滑动多少步可以到边缘。
  • 填充值zero-padding:在外围边缘补充若干圈0,方便从初始位置以步长为单位可以刚好滑倒末尾位置,通俗地讲就是为了总长能被步长整除。

上图就是一个典型的局部感知的示例图。其中黄色部分的矩阵为滤波器,深度为1,步长为1,填充值为0。很明显我们可以看出,每次滤波器都是针对某一局部的数据窗口进行卷积,这就是所谓的CNN中的局部感知机制。

那为什么要局部感知呢?

打个比方,滤波器就像一双眼睛,人类视角有限,一眼望去,只能看到这世界的局部。如果一眼就看到全世界,你会累死,而且一下子接受全世界所有信息,你大脑接收不过来。当然,即便是看局部,针对局部里的信息人类双眼也是有偏重、偏好的。比如看美女,对脸、胸、腿是重点关注,所以这3个输入的权重相对较大。

CNN中的权重共享

那么权重共享又是什么呢?还是拿上图举例,滤波器在滑动的过程中,输入在变化,但中间滤波器(filter)的权重(即每个神经元连接数据窗口的权重)是固定不变的,这个权重不变即所谓的CNN中的权重(参数)共享机制。

再打个比方,某人环游全世界,所看到的信息在变,但采集信息的双眼不变。btw,不同人的双眼看同一个局部信息所感受到的不同,即一千个读者有一千个哈姆雷特,所以不同的滤波器就像不同的双眼,不同的人有着不同的反馈结果。

用一张动图诠释局部感知和权重共享

我在搜集资料的过程中发现了这张图,第一感觉非常的酷,如果理解了局部感知和权重共享那这张图就不难看懂了。

相信你也会有一个疑问,上图中的输出结果1具体是怎么计算得到的呢?接下来我们来分解下上述动图,详细解释下计算过程。

首先是第一张:

其实,计算过程类似wxb,w对应滤波器Filter w0,x对应不同的数据窗口,b对应Bias b0,相当于滤波器Filter w0与一个个数据窗口相乘再求和后,最后加上Bias b0得到输出结果1,如下过程所示:

1x01x0-1x0-1x00x01x1 -1x0-1x00x1

-1x00x0-1x00x00x1-1x11x0-1x00x2

0x01x00x01x00x21x00x0-1x01x0

1(这里的1就是Bias b0)

=

1

然后滤波器Filter w0固定不变,数据窗口向右移动2步,继续做内积计算,得到0的输出结果

最后,换做另外一个不同的滤波器Filter w1、不同的偏置Bias b1,再跟图中最左边的数据窗口做卷积,可得到另外一个不同的输出。

池化

池化,简言之,即取区域平均或最大,其目的是为了减少特征图。池化操作对每个深度切片独立,规模一般为 2*2,相对于卷积层进行卷积运算,池化层进行的运算一般有以下几种:

  • 最大池化(Max Pooling)。取4个点的最大值。这是最常用的池化方法。
  • 均值池化(Mean Pooling)。取4个点的均值。
  • 高斯池化。借鉴高斯模糊的方法。不常用。
  • 可训练池化。训练函数 ff ,接受4个点为输入,出入1个点。不常用。

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

上图所展示的是取区域最大,即上图左边部分中 左上角2x2的矩阵中6最大,右上角2x2的矩阵中8最大,左下角2x2的矩阵中3最大,右下角2x2的矩阵中4最大,所以得到上图右边部分的结果:6 8 3 4。均值池化类似。

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

全连接层和卷积层可以相互转换:

  • 对于任意一个卷积层,要把它变成全连接层只需要把权重变成一个巨大的矩阵,其中大部分都是0 除了一些特定区块(因为局部感知),而且好多区块的权值还相同(由于权重共享)。
  • 相反地,对于任何一个全连接层也可以变为卷积层。比如,一个$K=4096$ 的全连接层,输入层大小为 $7∗7∗512$,它可以等效为一个$ F=7, P=0, S=1, K=4096$的卷积层。换言之,我们把 filter size 正好设置为整个输入层大小。
,
    推荐阅读
  • 如何选到心满意足的金鱼?

    因为中国是金鱼的故乡,所以在大中城市的观赏鱼市场之中都能看到金鱼的踪影。目前主要分类包括:龙种鱼,以龙睛、蝶尾为代表。不过由于气温较高,不利于金鱼的长距离运输,因此供应量较少。尽管中国金鱼已经过千百年的选育,但对于一个物种而言还是太短。日本称龙睛鱼为出目金,有红色的称赤出目金,黑色的称黑出目金,花斑的称杂斑出目金。

  • 怎样和女朋友聊喜欢的宠物(情侣聊天实录这个)

    本人女24岁,独生,颜值妆前4妆后5分。男朋友21岁,有一个姐姐,颜值6分。当然,对方的情绪也许很复杂,比如他的攻击可能来自于愤怒,或者是悲伤。这样回应,是接住对方悲伤的部分。2第二,觉察对方的需要。3第三点,表达自己的诉求。而正确的做法是,女主可以挑一个恰当的聊天场景,以及恰当时刻表达自己的恐惧。重点是表达自己的情绪。本文插画,任何组织及个人未经许可,不得部分或全部使用

  • Baking是什么意思(Baking的解释)

    Baking的解释baking,英语单词,主要用作动词、名词、形容词,作动词时译为“(在烤炉里)烘烤;烘焙;(将某物)烤硬;(变得)灼热;(非正式)(在太阳下)晒(bake的现在分词)”,作名词时译为“烘焙,烘烤”,作。

  • v v访问限制(二十八种未授权访问漏洞合集)

    恶意人员可以利用默认配置弱点发动远程命令执行攻击,获取服务器权限,从而导致数据泄露。该系统为多用户、网络应用程序和目录服务器提供验证、授权等功能。AtlassianCrowd和CrowdDataCenter在其某些发行版本中错误地启用了pdkinstall开发插件,使其存在安全漏洞。其HTTPServer默认开启时没有进行验证,而且绑定在0.0.0.0,所有用户均可通过API访问导致未授权访问。设置WWW-Authenticate,强制认证。dubbo因配置不当导致未授权访问漏洞。

  • 九月九重阳节可以回娘家吗(九月九重阳节)

    重阳节今天是10月14日,农历辛丑年九月初九,重阳节。九是数字中的最大数,有健康长寿之寓意。唐朝时,重阳节被定为正式节日。明清两代,重阳节风俗盛行。所以,重阳节这天有求寿的习俗,寄托着人们对老人健康长寿的祝福。三国魏晋以来,重阳聚会饮酒、赏菊赋诗已成时尚。菊花酒,在古代被看作是祛灾祈福的“吉祥酒”,是重阳节必饮之酒。重阳敬老重阳节这天,除了谨遵习俗注意养生,更是尽孝的好时节。

  • 二次元少女一般喜欢什么(二次元的妹子性格属性)

    比如眼镜娘特质或者女仆特质可以在各个年龄阶层的女性身上适用。有萌呆着一说,知识或举止多少偏离一般常识的范围,但本人对此毫无自觉或没有察觉。相对来说,天然呆属性的角色大都具备一定的治愈系能力。作为一种性格而言,其是相对外显的性格。指呆里呆气,面无表情,孤言寡语,有着十分大的治愈力的角色。也有说法是,书中或剧中人物过于完美,无可挑剔,一出场就使其他角色暗淡无光。

  • 望洞庭唐刘禹锡的资料(第32期望洞庭-)

    遥望洞庭山水色:山:指洞庭湖中的君山。远远眺望洞庭湖,山水苍翠如墨,好似白银盘里托着一枚青螺。第四句“白银盘里一青螺”,是用一个比喻,将浮在水中的君山比作搁在白银盘子里的青螺。刘禹锡诗文俱佳,涉猎题材广泛,与柳宗元并称“刘柳”,与白居易合称“刘白”。并留有《陋室铭》《竹枝词》《杨柳枝词》《乌衣巷》等名篇。

  • 丝瓜催芽方法(丝瓜怎么浸种催芽)

    保持50度温度15分钟,当温度降低到20多度时候则将种子继续浸泡8-10小时即可。每天摆放在向阳的位置上,在催芽期间可要经常翻动种子。

  • 急病乱投医是什么意思(急病乱投医意思)

    下面希望有你要的答案,我们一起来看看吧!急病乱投医是什么意思病急乱投医是一个汉语词语,拼音是bìngjíluàntóuyī,意思是指病势沉重,到处乱请医生。先生身上也产生了对前一阶段我们革命方略的怀疑,有一种病急乱投医的情绪。★鲁彦周《廖仲恺》肺炎跑精神医院(打一俗语——病急乱投医

  • 孙红雷沙溢被人说油腻(孙红雷隔空霸气喊话沙溢)

    今日,孙红雷在微博发文隔空呼叫沙溢并配上一张蘑菇头照片,并且只说了一个字,念······许多网友无法理解孙红雷和沙溢是在唱哪一出剧情,并且沙溢也没有很快回应这个消息,这让一众网友更加云里雾里了。不过孙红雷这样霸气的隔空喊话,着实吓到了我们小沙溢,上来就喊亲哥,感觉有点像是犯错的弟弟。