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

深度学习】--卷积神经网络

 ​​​​​​

卷积神经网络

卷积神经网络(Convolutional Neural Network,简称CNN)是一种深度学习模型,特别适用于处理具有网格结构的数据。主要目的是自动地、层次化地从原始数据中学习有效的特征表示,以完成特定的任务,如图像识别、分类、检测、分割等。

一、画面不变性

什么是画面不变性呢?我们知道一个物体,不管将其如何变换旋转都能够将其识别为同一个物体,这就是画面不变性。比如:

不管上图中物体如何的变换,我们都希望所建立的网络可以尽可能的满足这些不变性特点。

二、图像识别
我们知道传统的神经网络,训练时会将图形展开,使得在训练时网络模型的记忆比较刻板,比如下图中,我们进行训练时让神经网络记住正确的目标,但是当正确的图形变换一个位置时就无法识别了。

那么对于传统神经网络该怎么解决这个问题呢?

解决办法是:用大量物体位于不同位置的数据训练,同时增加网络的隐藏层个数从而扩大网络学习这些变体的能力。

三、卷积网络

结构

卷积神经网络的结构:由输入层、卷积层、激活层、池化层、全连接层、输出层组成

1. 原理
类比自然界的动物,不同的物种有自己独有的特征,比如小狗的叫声是“汪汪汪”,小猫是“喵”,这就是这两个动物的区别,我们人类也可以通过这种方法来区分二者。

同样的,卷积神经网络也是同样的道理,卷积网络将图片划分出几个特征点,在识别图片时,找寻图片中是否有符合特征点的信息。

比如上图中,卷积网络如何将右边手写的“x”图片识别成x?

将标准的x图片划分出三个特征,x图片由上方的三个小部分组成,手写“x”图片中有包含第二部分的特征,没有另外两部分特征,那这我们怎么判断它到底是还是不是呢?

就像是每个动物都有自己重要的特征,我们可以通过调整三个部分特征的权重,来决定所识别的图片是否是x图片。

所以,综上所述:卷积就是对图像(不同的数据窗口数据)和卷积核(一组固定的权重:因为每个神经元的多个权重固定,所以又可以看做一个恒定的滤波器filter)做内积(逐个元素相乘再求和)的操作就是所谓的『卷积』操作,也是卷积神经网络的名字来源。

2. 卷积层
卷积操作:
卷积操作中需要注意的:

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

对于卷积层,可以形象的将卷积核当作是每个人的眼睛,每个眼睛都能得到一个特征图,不同的眼睛(卷积核)看到的图片是不一样的,这样我们就能得到多个不同的特征图。

寻找目标特征:
我们都知道卷积是通过与卷积核的内积得到特征图,但是,我们如何精准的找到卷积出来的特征图是不是我们的目标呢?

以鸢尾花为例:

我们的目标是识别图片中的花朵是不是鸢尾花,那我们卷积时寻找的特征图,当然得是关于鸢尾花的特征,尽量减少其余噪声的影响。这就要通过调整卷积核中的参数来调整特征目标:

一开始的卷积核是随机的,在最后的结果中同正确结果做比对,如果有误差,再返回卷积层中,更新调整卷积核的参数重新计算特征图,使得最后的特征图是目标特征。

特征图计算:
计算图片经过卷积后获得的特征图大小。

3. 池化层
池化层的作用:
一种降采样,减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。

常见的池化层:
最大池化、平均池化、全局平均池化、全局最大池化。

平均池化(average pooling):计算图像区域的平均值作为该区域池化后的值。

最大池化(max pooling):选图像区域的最大值作为该区域池化后的值。是最为常见的。

通常来说,CNN的卷积层之间都会周期性地插入池化层。

我们偏常用的池化方法是最大池化,最大池化的原理分析:
最大池化的主要功能是压缩,却不会损坏识别结果。 这意味着卷积后的特征图中有对于识别物体不必要的冗余信息。

观察上图,我们之前就提到过,卷积神经网络可以将不同位置的相同物体给识别成同一个物体,在这里就给体现出来了。我们看到第一行三个图片中,目标物体(黑色标注)在图片的不同位置,它们经过卷积之后,得到了第二行的三个特征图,我们再将特征图进行最大池化,发现池化后的压缩结果都为3,将其识别为了同一个特征,其余的噪声影响都被处理了。

池化层操作方法:
与卷积层类似,池化层运算符由一个固定形状的窗口组成,该窗口根据其步幅大小在输入的所有区域上滑动,为固定形状窗口(有时称为 池化窗口)遍历的每个位置计算一个输出。 然而,不同于卷积层中的输入与卷积核之间的互相关计算,池化层不包含参数。

4. 全连接层
当抓取到足以用来识别图片的特征后,接下来的就是如何进行分类。 全连接层(也叫前馈层)就可以用来将最后的输出映射到线性可分的空间。 通常卷积网络的最后会将末端得到的长方体平摊(flatten)成一个长长的向量,并送入全连接层配合输出层进行分类。

四、感受野

在卷积神经网络中,感受野(Receptive Field)是一个核心概念,它指的是网络中每一层输出的特征图(feature map)上的像素点在输入图片上映射的区域大小。换句话说,感受野描述了某一层神经元所“看到”的输入图像的区域范围。

例如图片是3通道:

卷积核为3个7 x 7的,则卷积核所需要的参数个数为:3 x (3 x 7 x 7)=441个

卷积核为3个3 x 3的3层,则卷积核所需要的参数个数为:3 x (3 x 3 x 3)+3 x (3 x 3 x 3) +3 x (3 x 3 x 3) =243个

同样的效果,后者需要调整的参数更小,自然使用后者更好啦!

总结
本篇介绍了卷积神经网络的结构以及它的优点:

卷积神经网络能够将变换的物体识别出来。
卷积神经网络的结构:由输入层、卷积层、激活层、池化层、全连接层、输出层组成。
什么是感受野。
 

http://www.dtcms.com/a/361238.html

相关文章:

  • 深度学习篇---ShuffleNet
  • 基于单片机十六路抢答器系统Proteus仿真(含全部资料)
  • 国产化PDF处理控件Spire.PDF教程:在 Java 中将 PDF 转换为 CSV(轻松提取 PDF 表格)
  • 存储掉电强制拉库引起ORA-01555和ORA-01189/ORA-01190故障处理---惜分飞
  • 数据库常见故障类型
  • Proteus 仿真 + STM32CubeMX 协同开发全教程:从配置到仿真一步到位
  • 希尔排序。
  • 关于命名参数占位符的分析(主要以PHP为例)
  • 详细介绍 JMeter 性能测试
  • Java泛型通配符详解:搞懂?/extends/super用法,避开集合操作踩坑点
  • 快递地址归类排序实现(Java Python)
  • Jenkins 自动构建Vue 项目的一个大坑
  • JVM核心机制:类加载与内存结构详解
  • OpenHarmony智能语音框架深度拆解:从VAD到唤醒词打造你的AI语音智能体
  • 自动化软件测试工具Parasoft C/C++test如何实现运行时错误的检测与修复
  • 面试经典150题[021]:反转字符串中的单词(LeetCode 151)
  • 【XR技术概念科普】VST(视频透视)vs OST(光学透视):解码MR头显的两种核心技术路径
  • 「数据获取」《中国住户调查年鉴》(2000-2024)(获取方式看绑定的资源)
  • SQLark:一款面向信创应用开发者的数据库开发和管理工具
  • Jmeter实现参数化的4种方式
  • Windows神器,按键屏蔽
  • 【机器学习学习笔记】pandas基础
  • (纯新手教学)计算机视觉(opencv)实战十二——模板匹配(cv2.matchTemplate)
  • UE角色取消被Decal影响
  • Jetson AGX Orin平台R36.3.0版本1080P25fps MIPI相机图像采集异常调试记录
  • 基于单片机电动车充电桩/充电车棚环境监测设计
  • 基于RS-485接口的芯片的FPGA驱动程序
  • 吴恩达机器学习作业十二:协同过滤(电影推荐系统)
  • 广电手机卡到底好不好?
  • Git基础使用和PR贡献