深度学习之卷积和池化

摘要:
//卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层和全连接层组成。通过将一个滤波器与输入图像卷积,可以获得28*28*1的特征图。上图显示,通过使用两个过滤器获得了两个特征图;我们通常使用多层卷积层来获得更深的特征图。将输入图像和滤波器的对应位置元素相乘并求和。

转载:http://www.cnblogs.com/zf-blog/p/6075286.html


卷积神经网络(CNN)由输入层、卷积层、激活函数、池化层、全连接层组成,即INPUT-CONV-RELU-POOL-FC

(1)卷积层:用它来进行特征提取,如下:

深度学习之卷积和池化第1张

输入图像是32*32*3,3是它的深度(即R、G、B),卷积层是一个5*5*3的filter(感受野),这里注意:感受野的深度必须和输入图像的深度相同。通过一个filter与输入图像的卷积可以得到一个28*28*1的特征图,上图是用了两个filter得到了两个特征图;

我们通常会使用多层卷积层来得到更深层次的特征图。如下:

深度学习之卷积和池化第2张

深度学习之卷积和池化第3张

关于卷积的过程图解如下:

深度学习之卷积和池化第4张

输入图像和filter的对应位置元素相乘再求和,最后再加上b,得到特征图。如图中所示,filter w0的第一层深度和输入图像的蓝色方框中对应元素相乘再求和得到0,其他两个深度得到2,0,则有0+2+0+1=3即图中右边特征图的第一个元素3.,卷积过后输入图像的蓝色方框再滑动,stride=2,如下:

深度学习之卷积和池化第5张

如上图,完成卷积,得到一个3*3*1的特征图;在这里还要注意一点,即zero pad项,即为图像加上一个边界,边界元素均为0.(对原输入无影响)一般有

F=3 => zero pad with 1

F=5 => zero pad with 2

F=7=> zero pad with 3,边界宽度是一个经验值,加上zero pad这一项是为了使输入图像和卷积后的特征图具有相同的维度,如:

输入为5*5*3,filter为3*3*3,在zero pad 为1,则加上zero pad后的输入图像为7*7*3,则卷积后的特征图大小为5*5*1((7-3)/1+1),与输入图像一样;

而关于特征图的大小计算方法具体如下:

深度学习之卷积和池化第6张

 卷积层还有一个特性就是“权值共享”原则。如下图:

深度学习之卷积和池化第7张

如没有这个原则,则特征图由10个32*32*1的特征图组成,即每个特征图上有1024个神经元,每个神经元对应输入图像上一块5*5*3的区域,即一个神经元和输入图像的这块区域有75个连接,即75个权值参数,则共有75*1024*10=768000个权值参数,这是非常复杂的,因此卷积神经网络引入“权值”共享原则,即一个特征图上每个神经元对应的75个权值参数被每个神经元共享,这样则只需75*10=750个权值参数,而每个特征图的阈值也共享,即需要10个阈值,则总共需要750+10=760个参数。

 

池化层:对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征,如下:

深度学习之卷积和池化第8张

池化操作一般有两种,一种是Avy Pooling,一种是max Pooling,如下:

深度学习之卷积和池化第9张

同样地采用一个2*2的filter,max pooling是在每一个区域中寻找最大值,这里的stride=2,最终在原特征图中提取主要特征得到右图。

(Avy pooling现在不怎么用了,方法是对每一个2*2的区域元素求和,再除以4,得到主要特征),而一般的filter取2*2,最大取3*3,stride取2,压缩为原来的1/4.

注意:这里的pooling操作是特征图缩小,有可能影响网络的准确度,因此可以通过增加特征图的深度来弥补(这里的深度变为原来的2倍)。

 

全连接层:连接所有的特征,将输出值送给分类器(如softmax分类器)。

总的一个结构大致如下:

深度学习之卷积和池化第10张

另外:CNN网络中前几层的卷积层参数量占比小,计算量占比大;而后面的全连接层正好相反,大部分CNN网络都具有这个特点。因此我们在进行计算加速优化时,重点放在卷积层;进行参数优化、权值裁剪时,重点放在全连接层。

免责声明:文章转载自《深度学习之卷积和池化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用c51命令行编译HEX单片机文件SSH命令行上传/下载文件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

R语言快速深度学习进行回归预测(转)

深度学习在过去几年,由于卷积神经网络的特征提取能力让这个算法又火了一下,其实在很多年以前早就有所出现,但是由于深度学习的计算复杂度问题,一直没有被广泛应用。 一般的,卷积层的计算形式为: 其中、x分别表示当前卷积层中第j个特征、前一层的第i个特征;k表示当前层的第j个特征与前一层的第i个特征之间的卷积核;M表示需要卷积的前一层的特征的集合,b表示当前卷积...

U_Net原理及tensorflow的实现

Unet——用于图像边缘检测,是FCN的改进 如上图是UNET的架构图,可以发现器输入图像和输出图像不一致,如果我们需要输入图像和输出图像一致时,在卷积时,使用padding=“SAME”即可,然后再边缘检测时,就相当与像素级别的二分类问题,用交叉熵做loss函数即可。但位置检测常用IOU作为loss函数。 个人觉得UNET的优点: 1.Unet的去除了...

TFS2008 基本安装

TFS2008基本安装 TFS(Team Foundation Server)2008的安装真的是比较麻烦,如果是第一次安装,基本上就会失败,下面将本人的安装经验总结一下,帮助后用的朋友少走些弯路。 如果大家有什么问题可以给我发Email:warensoft@163.com 1.        安装过程列表 预先准备: l         如果是Wind...

手把手教你搭建卷积神经网络(CNN)

本文是基于吴恩达老师的《深度学习》第四课第一周习题所做,如果本文在某些知识点上描述得不够透彻的可以参见相关章节的具体讲解,同时极力推荐各位有志从事计算机视觉的朋友观看一下吴恩达老师的《深度学习》课程。1.卷积神经网络构成总的来说,卷积神经网络与神经网络的区别是增加了若干个卷积层,而卷积层又可细分为卷积(CONV)和池化(POOL)两部分操作(这两个重要概念...

Web1.0、Web2.0、Web3.0的主要区别

Web1.0:以静态、单向阅读为主,网站内信息可以直接和其他网站信息进行交互,能通过第三方信息平台同时对多家网站信息进行整合使用。 Web2.0:以分享为特征的实时网络,用户在互联网上拥有自己的数据,并能在不同的网站上使用。 Web3.0:将以网络化和个性化为特征,提供更多人工智能服务,完全基于Web,用浏览器即可实现复杂的系统程序才具有的功能。 Web3...

卷积神经网络技巧总结

从变形卷积核、可分离卷积?卷积神经网络中十大拍案叫绝的操作。中梳理提取补充. 前提名词 feature map: 特征图, 卷积核的输入和输出都被称为feature map 卷积核技巧 0x01 多个小卷积核代替大卷积核 之前的观念是越大的卷积核感受野(receptive field)越大, 看到的信息越多, 提取的特征越好, 但存在问题: 参数剧增,...