当前位置: 首页 > news >正文

卷积神经网络(CNN)

卷积神经网络的结构由输入层、卷积神经层(Convolutional Layer)、下采样层(Pooling Layer)、全连接层(Fully Connected Network)及输出层构成[20]。其中卷积神经网络层、下采样层、全连接被合称为隐含层。
在卷积神经网络中,卷积神经层与下采样层的连接方式是局部连接的形式,即每层的神经元只连接输入层中的跟它相近的几个节点。而全连接层中采用的是全连接的方式,即每一个神经元与输入层中的所有节点连接。
 
1 卷积神经层(Convolutional Layer)
卷积神经层(Convolutional Layer)由多个特征面(Feature Map)构成,每一个特征面则是由很多个神经元构成的[22]。神经元包含两个计量单位,一个是输入x,一个是权值w。输入数据x与权值w相乘得到其加权和e,然后在通过激活函数f(e)获得该神经元的输出,也就是特征。如下图。
图1-1神经元
常见的激活函数有Rectified Linear Unit(ReLU)函数、Sigmoid函数以及Softmax函数。其中ReLU函数是一种常见的激活函数[22]。与传统的激活函数相比,ReLU函数能够在大量的数据的情况下,依然能够保持良好的效果。它的运算速度也比传统函数要快。它利用简单地阈值化就可以达到参数稀疏化的目的。但是,ReLU函数的一个缺点是它的神经元在训练的时候,可能会死亡,导致该单元无法激活数据点。ReLU函数的计算公式如下:ReLU:f(x)=max(0,x) 该公式表示,如果输入的数据大于0,那么就把输入的数据作为输出的数据输出,否则就输出0。通过使用ReLU函数,我们可以保证输出的数据不会因为输入数据的增加而接近饱和。另外一些常用的激活函数有Sigmoid函数、Tanh函数、以及以ReLU为基础改进而来的LRelu函数和Prelu函数。
在卷积神经网络层中,神经网络通过卷积核来获取提取特征。在每一层中可以使用多个卷积核进行特征提取,每一个卷积核提取一种特征。一般而言,卷积层的层次越高,提取的特征也越接近事物本身的特征。卷积核是一个n×n×r的权值矩阵。其中n为卷积核的大小,而r为卷积核的深度。如图1-2是一个深度为1,大小为2的卷积核,以及深度为2大小为2的卷积核。卷积核的深度与输入数据的深度保持一致。在第一层卷积层中,卷积核的深度应该与输入的图片的深度保持一致,图片如果为黑白的图片,那么他的深度为1,如果图片为彩色图片,深度则为3(RGB三个维度)。而网络中的其他卷积层(既不在输入层之后的卷积层)中卷积核的深度则与上一层卷积核的个数保持一致。
图1-2 卷积核
如图3-4,深度为1的卷积核卷积了输入矩阵中的红色得到了a0这一个神经元。而深度为2的卷积核的卷积过程是:由卷积核的灰色矩阵卷积输入层的灰色部分,同时由白色的卷积核卷积的输入层中的白色部分,这两部分的值相加进过激励函数得到输出。
卷积核,根据网络设置的步长数,对输入的特征图进行卷积操作,图1-3中,卷积核的步长为1,红色部分为一次卷积。图1-3中右边为步长为1的一个卷积过程,而右边是步长为2的一个卷积过程。步长为1的卷积在输入矩阵中每完成一次卷积之后,向右或向下移动一步,卷积下一个局部感受野。卷积核的步长为2时,则移动两步。
图1-3卷积核的移动过程
我们注意到,当步长设置为1的时候,输出的特征矩阵为3*3,而当步长设置为2的时候,输出的特征矩阵为2*2。这表明图像大小、步幅和卷积后的特征图的大小是有关系的。他们之间的关系为:
其中w2为卷积后的特征图的宽度,w1为卷积前的特征图的宽度,F为卷积核的宽度,P为全零填充的数量,全零填充是指在原始图像周围补几圈0,如果P的值是1,那么就在图片四周补1圈0。S为步长。H2是卷积后的特征图的高度。H1是卷积前图像的宽度。
在神经网络中,上一层网络的输出就是下一层网络的输入。在卷积层中,上下两层的神经元通过卷积核进行连接。在卷积神经网络中,上下两层的神经元的连接方式为局部连接,其连接方式如图1-4所示。在图中,输入的是一个2×2的图片,深度为1,而卷积核的大小为2×2,深度也为1。通过卷积核进行卷积操作,得到的特征图为a0到a8的一个输出矩阵。在图中的右边是根据卷积操作得出的网络的连接方式,蓝色的线表示的是w1,红色的线表示的是w2,绿色的线表示的是w3,而黄色的线表示的是w4。可以看出在卷积层中,下一层的神经元并没有与上一层的节点全部连接,而是与上一层中的部分神经元连接。在网络中一个卷积核连接到的部分被称为局部感受野,局部感受野的大小和卷积核的大小一致,图1-4的局部感受野大小为4。局部感受野的优点是它减少了训练时所需要的参数个数,降低了训练的复杂度。
图1-4卷积层的连接方式
神经网络的一个重要的概念就是权值共享,而实现权值共享这一特性,主要是由于卷积核的连接方式。如图1-4,颜色相同的连接线的权值是相同的。共享权值的优点是在图像进行特征提取的过程中,可以忽略局部特征所在的位置。相对于全连接方式,权值共享降低了网络模型参数的数量,减少了算法的复杂度。卷积层中参数的个数=卷积核的个数*卷积核的大小*卷积核的深度+卷积核的个数(偏置量的个数)。
 
2、下采样层(Pooling Layer)
下采样层,也可以叫做池化层。下采样层连接在卷积层之后,也是由多个特征面构成。采样层中的神经元连接了卷积神经层的局部感受野。下采样层把卷积神经层的输出数据作为输入的数据,通过去除输入数据中的无用信息,减少需要处理的数据量,从而提高训练的网络速度。这一层的主要功能是通过降低特征图的维度,来减少特征图的个数,达到减少计算的复杂度的目的。
采样层中,主要操作是池化。池化是一种非线性降采样方法。最大池化(max-pooling)、均值池化(mean pooling)、随机池化(stochastic pooling)等都是常用的池化方法。
一般我们把卷积神经层和下采样层合称为卷积层。卷积神经网络中的一个卷积过程包括了这两层的运算。在卷积神经网络中包含了多个卷积层。卷积层与采样层的连接,如图1-5所示,输入数据经过卷积层的卷积之后,得到卷积层的输出a0到a8的输出矩阵,然后传入下采样层,下采样层通过池化操作的到v、x、z、d这四个节点。
图1-5卷积层与下采样层的连接方式
3 全连接层
在卷积神经网络网络中,至少是有一个全连接层。全连接层位于所有的卷积层之后,层与层之间的神经元采用全连接的方式进行连接。全连接层是正规的神经网络。全连接层的主要作用是对卷积层提取出来的特征进一步提取出高层次的特征。它通过将卷积层的特征进行合并或者取样,提取出其中的具有区分性的特征,从而达到分类的目的。
全连接层与卷积层的区别第一个是连接方式的不同。卷积层中采用的是局部连接方式,即一个节点和上一层中的部分节点相连,而全连接层中,该层的每一个神经元与上一层的所有神经进行连接,如图1-6。全连接层中权值是不共享的,每一条线都代表了一个权值。而在左边卷积层的连接方式图中,颜色相同的连接,参数相同。我们可以看出相对于卷积层,全连接层的参数更多,所以其网络的复杂度也更大。
图1-6 卷积层与全连接层的连接方式
在全连接层中,常用softmax 逻辑回归来进行分类识别图像。softmax 逻辑回归分类方法主要用于多分类问题。在构建分类器的过程中,一般还采用正则化方法来防止训练过拟合,提高分类的性能。
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/hesi/p/9013205.html

相关文章:

  • 《循序渐进LINUX》笔记
  • 2030年5G有望带动经济产出6.3万亿
  • python 笔记 之 计算md5值
  • CCBN 2017:新华三融媒云展区上演“云”之旅!
  • windows系统中如何启动两个tomcat
  • 中国物联网在哪些方向具有无与伦比的发展优势?
  • 实现一个智能聊天机器人「图灵机器人,Java,recyclerView」
  • 开封:发展网络经济为智慧城市插上腾飞翅膀
  • 港大医院携手8Manage 实现一站式电子采购管理
  • Optional与Mybatis能否一起
  • https://segmentfault.com/a/1190000012844836---------关于SpringBoot上传图片的几种方式
  • 微软宣布Skype将从7月1日起停止旧系统支持
  • 欧比特业绩稳增长,支撑卫星大数据战略加速落地
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 大数据产业重在应用 防止盲目建设数据中心
  • .pyc 想到的一些问题
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • C学习-枚举(九)
  • HashMap ConcurrentHashMap
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • Java 多线程编程之:notify 和 wait 用法
  • Js基础知识(四) - js运行原理与机制
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 测试如何在敏捷团队中工作?
  • 基于游标的分页接口实现
  • 技术:超级实用的电脑小技巧
  • 开源地图数据可视化库——mapnik
  • 前端面试题总结
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • Spring Batch JSON 支持
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​linux启动进程的方式
  • ​TypeScript都不会用,也敢说会前端?
  • ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException
  • #1015 : KMP算法
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (pojstep1.1.2)2654(直叙式模拟)
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (十八)SpringBoot之发送QQ邮件
  • (状压dp)uva 10817 Headmaster's Headache
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .apk文件,IIS不支持下载解决
  • .chm格式文件如何阅读
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .net 4.0发布后不能正常显示图片问题
  • .NET Core中的去虚
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET成年了,然后呢?
  • .NET值类型变量“活”在哪?
  • .Net中间语言BeforeFieldInit