卷积神经网络 曾经终败给现在 2024-02-17 08:44 102阅读 0赞 在介绍卷积神经网络之前我们先了解一下为什么不使用我们上一节介绍的神经网络(全连接层结构)来处理图像。**使用全连接层结构处理图像时会出现以下问题**: * 输入图像需要将图像通过 Flatten 层拉成一维,这会导致**丢失空间信息**(像素位置和channel) * 全连接层考虑的是全局的信息,但在分类图像中,重要的是物体本身的**局部信息** * 对图像做分类时,**会产生大量的参数,导致计算量过高**。例如:对1000×1000 像素的图片,我们就需要处理3百万个参数。 #### **2.1 卷积神经网络的组成** #### 卷积神经网络通过卷积层提取图像特征,不仅大幅的减少了参数量,还保留了图像的空间信息。 ![format_png][] 如上图简单的卷积神经网络所示,卷积神经网络主要架构是由卷积层、池化层、全连接层组成。 * 卷积层负责提取图像中的局部特征,卷积层后面一般会加上ReLU层进行非线性激活 * 池化层用来大幅降低参数量级(降维) * 全连接层类似传统神经网络的部分,用来输出想要的结果。 #### **2.2 卷积层** #### 卷积层负责提取图像中的局部特征,其原理是通过许多的卷积核(filter, kernel) 在图片上进行滑动提取特征。 下图是卷积滑动的过程,左中右分别为输入层、卷积核、输出层 ![动图封面][c96e62c805ebec5dacbb9118153d809f.jpeg] **卷积核 (filter, kernel)** 卷积核里面的数字就是卷积层的权重,是经由神经网络训练学习而来的。而卷积核的大小 (kernel size) 及数量 (输出 channel) 是可以调整的超参数,**通常会设定为奇数**,其原因有两个: 1. 可以保证padding时候,图像的两边依然相对称 2. 在做目标检测时,能够获得中心点,可以更好的预测目标位置 输出层为卷积运算后的结果,称为特征图 (feature map) **卷积运算** 卷积运算的方式就是将滑动的窗口与卷积核进行点对点 (elementwise) 的相乘,再将乘完的值相加 ![format_png 1][] **卷积的参数** * Kernel size: 定义卷积核的大小,影响卷积操作的感受野,一般使用3x3,5x5 等 * Stride: 定义遍历图像时卷积核移动的步长 * Channel: 定义卷积运算的输入和输出通道数 * Padding: 定义如何处理样本边界的方式,分为不填充或者对边界填充0,不填充的只对特征图做卷积操作,会使得输出的特征图小于输入的特征图;对边界填充0,可以使得输入和输出的特征图保持一致 **卷积的感受野** 感受野是每一层卷积神经网络输出的特征图上的特征点映射到原始图像上的区域的大小,即特征点可以“看到”的范围。描述的原始图像信息,能够表达的信息越全面。 感受野的计算公式如下: **r\_i = r\_\{i-1\} + (k\_i - 1) \* s\_\{i-1\}** 其中,r\_i表示第i层的感受野大小,r\_\{i-1\}表示第i-1层的感受野大小,k\_i表示第i层卷积核的大小,s\_\{i-1\}表示第i-1层卷积的步长 ![format_png 2][] F0层:L0 = f = 3 F1层:L1=3+(3-1)\*1=5; 具体来说,当前特征图的感受野与上层空间有关,与当前层核心的大小,与填充和步幅相关。感受野的大小可以大于网络输入的大小。 **卷积的类型** 常见的卷积类型有很多,根据其操作的区域大致可以分为两类:通道相关性、空间相关性。 * 通道相关性的卷积核改变了卷积在channel维度操作,如:Group Convolution、Depthwise Separable Convolutions; * 空间相关性的卷积核是改变了卷积在w,h维度的操作。除了这两类近年来也出现了一些新的改进思路:如动态卷积,空洞卷积。 **Group Convolution(分组卷积)** Group Convolution(分组卷积)就是对输入feature map在channel维度进行分组,然后每组分别卷积。设分成G组,参数量减少为原来的1/G。如下图所示: ![format_png 3][] **Depthwise Convolution** 当分组卷积分组数量等于输入map数量,输出map数量也等于输入map数量,即G=C=N、N个卷积核每个尺寸为1∗K∗K时,Group Convolution就成了Depthwise Convolution(深度卷积)。 **Depthwise Separable Convolution** Depthwise Separable Convolutions(深度可分离卷积) 是由 Depthwise Separable Convolution是将一个完整的卷积运算分解为两步进行,即Depthwise Convolution与Pointwise Convolution。 ![format_png 4][] Pointwise Convolution的运算与常规卷积运算非常相似,它的卷积核的尺寸为 1×1×M,M为上一层的通道数。所以这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的Feature map。有几个卷积核就有几个输出Feature map。 #### **2.3 池化层 &下采样层 pooling** #### 池化层是用来**大幅降低参数量(降维)、减少过拟合问题、缓解卷积层对位置的敏感度**。空间池化层也被称为**子采样或下采样层**,它**降低了每个特征图的维度**但保留了重要信息,简单来说池化层主要用来缩小特征图的大小减少计算量。池化层主要有以下两种类型: * 最大池化(max pooling):就是在框选的局部数值中挑出最大值 * 平均池化(Average pooling):就是在框选的局部数值做求和去平均 ![format_png 5][] **上采样** 由于输入图像通过卷积神经网络(CNN)提取特征后,输出的尺寸往往会变小,而有时我们需要将图像恢复到原来的尺寸以便进行进一步的计算(如图像的语义分割),这个使图像由小分辨率映射到大分辨率的操作,叫做上采样,它的实现一般有三种方式: * 插值,插值法不需要学习任何的参数,只是根据已知的像素点对未知的点进行预测估计,一般使用的是双线性插值,其他插值方式还有最近邻插值、三线性插值等; * 转置卷积又或是说反卷积,通过对输入feature map间隔填充0,再进行标准的卷积计算,可以使得输出feature map的尺寸比输入更大; * Max Unpooling,在对称的max pooling位置记录最大值的索引位置,然后在unpooling阶段时将对应的值放置到原先最大值位置,其余位置补0; ![format_png 6][] #### **2.4 展平层 Flatten Layer** #### Flatten层的作用就是将卷积层与池化层输出的特征展平、做维度的转换,如此一来才能放入全连接层做分类 #### **2.5 全连接层** #### 全连接层,其作用是用来进行分类。将卷积层与池化层输出的特征输入到全连接层,通过调整权重及偏差得到分类的结果。 [format_png]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/d5e12af0d8e847eb99ccebc901e9a1d4.png [c96e62c805ebec5dacbb9118153d809f.jpeg]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/384d82f05c104157805371e188b8547e.png [format_png 1]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/36dc4f9042e3490885d59a0a01ab107d.png [format_png 2]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/7c5daa113744468f9f611cd7849063c5.png [format_png 3]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/60c135f0afa341a69ec1a5a2c9370d21.png [format_png 4]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/b20044c3889341d89a91248f8f21ce3a.png [format_png 5]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/50fbcbc6995949309f8b3aef88bc8b97.png [format_png 6]: https://image.dandelioncloud.cn/pgy_files/images/2024/02/06/fcc70fa0e93e4f0dae733f86a69559c1.png
相关 卷积神经网络 在介绍卷积神经网络之前我们先了解一下为什么不使用我们上一节介绍的神经网络(全连接层结构)来处理图像。使用全连接层结构处理图像时会出现以下问题: 输入图像需要将图像通过 曾经终败给现在/ 2024年02月17日 08:44/ 0 赞/ 103 阅读
相关 卷积神经网络 ![1598479-20190918171831229-1154648107.png][] ![1598479-20190918171837970-177932124 我会带着你远行/ 2023年08月17日 16:07/ 0 赞/ 192 阅读
相关 卷积神经网络 [卷积:kernel size/padding/stride][kernel size_padding_stride] (公式的计算) 留个坑,以后讲解 Conv1d 超、凢脫俗/ 2023年07月14日 08:28/ 0 赞/ 12 阅读
相关 神经网络-卷积神经网络 卷积神经网络最基本的操作:卷积、池化、全连接 1、卷积操作 什么是卷积操作?我们先定义一个目的,让卷积神经网络去识别数字 “17” 和字母 “L”。 有三张图片, 小鱼儿/ 2022年11月12日 01:41/ 0 赞/ 382 阅读
相关 卷积神经网络 卷积神经网络 转载请注明:http://blog.csdn[.NET][]/stdcoutzyx/article/details/41596663 自今年七月份以来,一 以你之姓@/ 2022年07月15日 02:50/ 0 赞/ 356 阅读
相关 卷积神经网络 卷积神经网络 转载请注明:http://blog.csdn[.NET][]/stdcoutzyx/article/details/41596663 自今年七月份以来,一 川长思鸟来/ 2022年07月14日 21:25/ 0 赞/ 422 阅读
相关 卷积神经网络 概述 简单描述 首先介绍神经网络的参数。这些参数是由一些可学习的滤波器集合构成的,每个滤波器在空间上(宽度和高度)都比较小`个人觉得这个滤波器就是卷积核`,但是深度和 浅浅的花香味﹌/ 2022年05月31日 13:59/ 0 赞/ 409 阅读
相关 卷积神经网络 目录 概述 卷积层 卷积层的产生 卷积运算 填充 步幅 应用滤波器后的输出数据大小计算 三维数据的卷积运算 批处理(‘四维数据’) 池化层 卷积层和池化层 浅浅的花香味﹌/ 2022年02月20日 00:17/ 0 赞/ 554 阅读
相关 卷积神经网络 [卷积神经网络][Link 1] 在上篇中介绍的输入层与隐含层的连接称为全连接,如果输入数据是小块图像,比如8×8,那这种方法是可行的,但是如果输入图像是96×96, 曾经终败给现在/ 2021年12月09日 14:55/ 0 赞/ 570 阅读
相关 卷积神经网络 阅读网页发现,要学习深度学习,应该首先对 [卷积神经网络(Convolutional Neural Networks,简称CNN)][Convolutional Neural 阳光穿透心脏的1/2处/ 2021年07月16日 18:03/ 0 赞/ 600 阅读
还没有评论,来说两句吧...