深度学习:卷积神经网络(详解版)

article/2025/8/22 13:17:36

文章目录

  • 一、全局连接VS局部连接
    • 1.1 局部神经元连接的优势
    • 1.2 全连接网络的权重参数量
    • 1.3 神经网络的局部特征提取(卷积)
  • 二:感受野
    • 2.1 生物上的定义
    • 2.2 深度学习的定义
    • 2.3 感受野的作用
    • 2.4 感受野的计算公式
    • 2.5 感受野对网络的影响
  • 三:卷积神经网络的构成元素
    • 3.1 卷积核
    • 3.2 步长
    • 3.3 填充
    • 3.4 输出图像(特征图)
  • 四:卷积的计算
  • 五:卷积神经网络的运行过程
  • 六:卷积的优势
  • 七:常见的卷积类型
    • 7.1 一维卷积
    • 7.2 二维卷积
    • 7.3 三维卷积
  • 八:分组卷积
  • 九:扩张(空洞)卷积
  • 十:转置卷积


一、全局连接VS局部连接

       生物的神经网络是通过刺激而发生的连接,这说明在生物的神经网络中,什么时候需要哪部分神经网络的神经元,哪部分神经元就会被激活(连接)。
       而我们一开始根据生物神经网络模拟的人工神经网络的相邻神经元之间是全部激活的(全连接),这样不但增加了整个网络的权重和计算量,也增加了无用的信息,使网络容易过拟合。那么在人工神经网络中我们如何去模拟类似生物神经网络的这个过程呢?也就是不用把所有神经元都激活。

       这说明在一幅图中,如果要识别单独的某个物体,模型只要感受到局部的信息即可,无需感受到全图的信息。所以只要提取对应局部位置的特征信息即可,无需把图像上所有的信息都计算一遍。如果我们能够设计出一个只需要提取图像局部信息的网络模型,就可以解决这个问题了,这也就是相当于神经元的局部激活,只在图像的对应位置做计算。

       这样一来,原来在整幅图上做的运算,就变成了在局部做运算了。

       比如我们看到图上有人有马,我们在分辨马和人的位置的时候,是否需要观看整幅图呢?显然不是,我们只是针对目标所在的局部区域进行观看并分析。
       同样,我们判断哪个是人,哪个是马的时候也不一定要看完所有部位,我们只需要看到人的头、胳膊、腿等部位就可以判断图像表示的是人了,很明显,这也是基于局部区域特征而做出的判断。而对于每个小的局部信息做一个处理就要简单的多了,同计算量会大幅减少。

1.1 局部神经元连接的优势

在这里插入图片描述
局部连接,可以看到上一层网络中只有3个神经元和下一层网络的神经元相连接(这张图的流程是从下到上)。

总结:

  1. 局部连接的第一个作用是减少计算参数。
  2. 局部连接的第二个重要作用就是权重共享。

1.2 全连接网络的权重参数量

       以mnist数据为例,一张图像的大小是[28,28,1],那就意味着网络输入一张图片的参数就有28 x 28 =784个,如果隐藏层用了256个神经元,那么简单计算一下,第一层网络需要的参数个数(w和b)就有784 x 256+256个,第二层网络需要的参数个数(w和b)就有(256 x 10+10)个。

       而整个网络的计算量就有(784* 256+256)+ (256*10+10) 个,这个参数太多了,随便进行一次反向传播计算量都是巨大的,从计算资源和调参的角度都不建议用传统的神经网络。

1.3 神经网络的局部特征提取(卷积)

       卷积层最主要的两个特征就是局部连接和权值共享,或者叫做稀疏连接和参数共享。所谓局部连接,就是卷积层的节点仅仅和其前一层的部分节点相连接,只用来学习局部特征。

       局部感知结构的构思理念来源于动物视觉的皮层结构,其指的是动物视觉的神经元在感知外界物体的过程中起作用的只有一部分神经元。

       在计算机视觉中,图像中的某一块区域中,像素之间的相关性与像素之间的距离同样相关,距离较近的像素间相关性强,距离较远则相关性就比较弱,由此可见局部相关性理论也适用于计算机视觉的图像处理领域。

       因此,局部感知采用部分神经元接受图像信息,再通过综合全部的图像信息达到增强图像信息的目的。

       在一幅图像中,想要提取局部数据的特征,最直接的办法就是让这些局部的数据和一个对应大小的权重矩阵做内积运算。这个权重矩阵在神经网络中称为卷积核。

       在神经网络的各个维度的数据中,通过滑动滤波器提取局部数据特征的过程,称为神经网络的卷积过程。这种提取网络特征的模型被称为卷积神经网络模型。

1、对原始图像的边缘进行某种方式的填充(一般为0填充)。
2、将掩膜划过整幅图像,计算图像中每个像素点的滤波结果。

二:感受野

2.1 生物上的定义

       感受器受刺激兴奋时,通过感受器官中的向心神经元将神经冲动(各种感觉信息)传到上位中枢,一个神经元所反应(支配)的刺激区域就叫做神经元的感受野(receptive field)。

2.2 深度学习的定义

       在卷积神经网络中,感受野的定义是卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。通俗的说,感受野就是输入图像对这一层输出的神经元的影响有多大。

2.3 感受野的作用

       感受野用来表示网络内部的不同神经元对原图像的感受范围的大小,或者说convNets(cnn)每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小。

2.4 感受野的计算公式

在这里插入图片描述
       其中,RF是感受野。N_ RF和RF有点像,N代表neighbour, 指的是第n层的a feature在n- 1层的RF,记住N _RF只 是一个中间变量(某一层的感受野),不要和RF混淆。stride是步长, ksize是卷积核大小。

       这个算法从最后一层往前层层迭代直到追溯回input image,从而计算出感受野(RF)。

       可以看到在Conv1中的每一个单元所能看到的原始图像范围是3 x 3,而由于Conv2的每个单元都是由2 x 2范围的Conv1构成,回溯到原始图像,由于卷积核移动的时候重叠了一个像素,应该被减去,最终其实是能够看到的是5 x 5的原始图像范围。
       因此我们说Conv1的感受野是3 x 3,Conv2的感受野是5 x 5.输入图像的每个单元的感受野被定义为1,这应该很好理解,因为每个像素只能看到自己。

2.5 感受野对网络的影响

       神经元之所以无法对原始图像的所有信息进行感知,是因为在这些网络结构中普遍使用卷积层和pooling层,在层与层之间均为局部连接。

       神经元感受野的值越大表示其能接触到的原始图像范围就越大,也意味着它可能蕴含全局语义层次更高的特征。相反,值越小则表示其所包含的特征越趋向局部和细节。因此感受野的值可以用来大致判断每一层的抽象层次。

三:卷积神经网络的构成元素

       卷积神经网络的元素一般由输入图像、卷积核、步长、填充、通道变化、输出图像(特征图)构成。

3.1 卷积核

       卷积核的形状一般是二维的,指的是卷积核在各个维度上的数据卷积,而各个维度上的卷积核其实是同时卷积的,这样各个维度上的卷积核就形成了一个滤波器,所以说滤波器是三维的。但是在深度学习中,二者的叫法有时候不是很明显。

1、180度 翻转卷积核。
2、不做边界填充,直接对图像进行相应位置乘积和。

       卷积核就是图像处理时,给定输入图像,输入图像中一个小区域中像素加权平均后成为输出图像中的每个对应像素,其中权值由一个函数定义,这个函数称为卷积核。

       数学中的卷积和卷积神经网络中的卷积严格意义上是两种不同的运算。数学中卷积,主要是为了诸如信号处理、求两个随机变量和分布而定义的运算,所以需要“翻转”是根据问题的需要而确定的。

       卷积神经网络中"卷积”,是为了提取图像的特征,其实只借鉴了“加权求和”的特点。数学中的“卷积核”都是已知的或者给定的,卷积神经网络中“卷积核”本来就是trainable的参数,不是给定的,根据数据训练学习的,那么翻不翻转还有什么关系呢?因为无论翻转与否对应的都是未知参数!

       所以说,在CNN中,卷积核的权值不需要提前设计。在CNN中,卷积核一般都是正方形。

3.2 步长

       卷积核(滤波器)每次移动的像素单位就称为步长。

3.3 填充

       卷积运算后,输出图片尺寸缩小,越是边缘的像素点,对于输出的影响越小,因为卷积运算在移动的时候到边缘就结束了。中间的像素点有可能会参与多次计算,但是边缘像素点可能只参与一次。所以我们的结果可能会丢失边缘信息。

       那么为了解决这个问题,我们引入padding,什么是padding呢,就是我们认为的扩充图片,在图片外围补充一些像素点,把这些像素点初始化为0.

       经过padding之后,原始图片尺寸为(n+2p) x (n+2p),filter尺寸为fxf,则卷积后的图片尺寸为(n+2p-f+1) x (n+2p-f+1)。若要保证卷积前后图片尺寸不变(步长为1),则p应满足: p=(f-1) / 2

       那么填充的优势是什么呢?

       (1) 保持边界信息,如果没有加padding的话,输入图片最边缘的像素点信息只会被卷积核操作一次,但是图像中间的像素点会被扫描到很多遍,那么就会在一定程度上降低边界信息的参考程度,但是在加padding之后,在实际处理过程中就会从新的边界进行操作,就从一定程度上解决了这个问题。
       (2) 步长为2的时候,卷积不会丢失信息。

       (3) 卷积神经网络的卷积层加入Padding,可以使得卷积层的输入大小和输出大小一致。

3.4 输出图像(特征图)

       每层卷积结束后得到的卷积值的组合就是特征图。

四:卷积的计算

在这里插入图片描述
       根据对卷积的结构分析,可以确定,卷积过程中的权重参数是和卷积核的大小、输入通道数、输出通道数相关的,而和输入大小、输出大小无关的。

       比如图像输入大小是6 x 6 x 3,卷积核大小是3 x 3,通道变化是从3变到 2,也就是说卷积核从3个通道的输入变成了输出2个通道的输出,当然对应的特征图也成了2个,那么卷积层的参数量就是3 x 3 x 3 x 2+2,后面加的2是输出通道上的偏置。

       根据前面的知识,已经知道卷积层的参数量就是卷积核的形状乘以输入通道数,再乘以输出通道数,再加偏置。即(kernel WkernelL H in channels* out channels+out channels) ,例如某一层卷积神经网络的卷积核是3*3,输入通道为1,输出通道为16,那么这一层网络的参数量就是:
3 x 3 x 1 x 16+16=160,后面加的16是输出通道上的偏置。

       那么在卷积的某一层当中的运算量到底是多少,这个结果的影响就不仅仅是通道和卷积核的因素了,还和输出特征图的大小,以及批次有关系的。
       例如某一层卷积神经网络的卷积核是3 x 3,输入通道为1,输出通道为16,输出的特征图大小是14 x 14,如果输入数据的批次是100,那么还要乘以这个批次,所以这一层网络的运算量就是:
       (3 x 3 x 1 x 16 +16) x 14 x 14 x 100 = 2822400 + 313600 = 3136000

       卷积核在图上每滑动一次,相当于就做了一次运算结果的变化,所以最后的特征图大小正是卷积核在图上的横向和竖向上的滑动总次数,另外还有批次的影响,如果批次是一次输入2张图像,那么计算上还要乘以2才可以。

五:卷积神经网络的运行过程

(1)每个通道上的滤波器对应每个通道上的数据进行卷积,得到每个通道上的特征图。

(2)每个通道上的滤波器对应每个通道上的数据进行卷积,得到每个通道上的特征图。

(3)最后对这个特征图加上偏置,就得到了卷积神经网络在这一输出通道上的净输出。

六:卷积的优势

(1) 局部感知
(2) 共享权重
(3) 参数量少
(4) 训练时间短
(5) 模型收敛快
(6) 精度高

七:常见的卷积类型

7.1 一维卷积

左图:横轴表示次数,纵轴表示频率(统计量)。
右图:表示卷积核

       一维卷积常用于序列模型,信号处理、自然语言处理领域。

7.2 二维卷积

       二维卷积常用于计算机视觉、图像处理领域。

7.3 三维卷积

       三维卷积常用于医学领域(CT影像),视频处理领域(检测动作及人物行为)

八:分组卷积

       正常情况下,通道之间的全连接,通道融合是充分的。通道分组数越多,通道融合越不充分。

       当处理的问题比较简单的时候,如利用mnist数据集进行十分类,可以利用分组卷积。当处理问题比较复杂的时候,用了分组卷积以后,就会出现减少参数量,降低精度的情况。

       那我们应该怎么做,将输出的特征图通道进行打乱,再去分组,然后利用卷积核进行卷积,得到的结果就相当于把分组之后的通道融合了。这种处理方式叫做通道混洗。

九:扩张(空洞)卷积

       扩张卷积(dilated convolutions)又名空洞卷积(atrous convolutions),向卷积层引入了一个称为“扩张率(dilation rate)”的新参数,该参数定义了卷积核处理数据时各值的间距。

       换句话说,相比原来的标准卷积,扩张卷积(dilated convolution)多了一个超参数称之为“扩张率”(dilationrate),指的是卷积核各点之间的间隔量,[ 通常convolution的dilatation rate为1],扩张卷积在保持参数个数不变的情况下增大了卷积核的感受野,同时它可以保证输出的特征映射(featuremap)的大小保持不变。

       一个扩张率为2的3X3卷积核,感受野与5X5的卷积核相同,但参数数量仅为9个,是5X5卷积参数数量的36%。扩张卷积经常用在实时图像分割中。当网络层需要较大的感受野,但计算资源有限而无法提高卷积核数量或大小时,可以考虑扩张卷积。

十:转置卷积

       卷积的时候是将卷积核和对应输入矩阵中的g个值相乘,并且相加,将其转变为一个输出值。一个卷积操作是一个多对一(many-to-one)的映射关系。

       反过来操作。我们想要将输入矩阵中的一个值映射到输出矩阵的g个值,这将是一个一对多(one-to-many)的映射关系。这个就像是卷积操作的反操作,其核心观点就是用转置卷积。

       之所以叫转置卷积是因为,它其实是把我们平时所用普通卷积操作中的卷积核做一个转置,然后把普通卷积的输出作为转置卷积的输入,而转置卷积的输出,就是普通卷积的输入。

       根据反卷积的数学含义,通过反卷积可以将通过卷积的输出信号,完全还原输入信号。转置卷积只能还原shape大小,而不能还原value。所以说转置卷积与真正的反卷积有点相似,因为两者产生了相同的空间分辨率。

       在使用转置卷积所需要注意的几点是:
(1)转置卷积的过程中图像上采样,越来越大,通道越来越浅。需要注意的是,转置前后padding, stride仍然 是卷积过程指定的数值,不会改变。
(2) stride=1时候的反卷积,不进行填充。当stride>1的时候,需要在原输入中插入0像素值。
(3)转置卷积一般会放大图像,也称为上采样过程,而卷积一般是缩小图像,也称为下采样过程。


http://chatgpt.dhexx.cn/article/6WXf1uAp.shtml

相关文章

深度卷积神经网络基本介绍

关于深度卷积神经网络的前世今生,就不在此处进行过多的介绍。在此,主要对网络的各个组成部分进行简要介绍: 图1 基本的深度卷积网络结构 通过图1可知深度卷积神经网络主要是由输入层、卷积层、激活函数、池化层、全连接层和输出层组成。以下将…

深度卷积神经网络(CNN)

CNN简述 卷积神经网络(Convolutional Neural Network,CNN),它是属于前馈神经网络的一种,其特点是每层的神经元节点只响应前一层局部区域范围内的神经元(全连接网络中每个神经元节点则是响应前一层的全部节…

深度学习|卷积神经网络

一、卷积神经网络简介 卷积神经网络(Convolutional Neural Network,CNN)是一种深度学习神经网络结构,主要用于图像识别、计算机视觉等领域。该结构在处理图像等高维数据时表现出色,因为它具有共享权重和局部感知的特点…

什么是深度卷积神经网络,卷积神经网络怎么学

卷积神经网络通俗理解 。 卷积神经网络(ConvolutionalNeuralNetworks,CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(FeedforwardNeuralNetworks),是深度学习(deeplearning)的代表算法…

深度学习—卷积神经网络(Convolutional Neural Networks)

卷积神经网络(Convolutional Neural Networks) 卷积神经网络(convolutional neural network, CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。例如时间序列数据(可以认为是在时间轴上有规律地…

深度卷积图神经网络(Deep Convolutional Graph Neural Network,DCGNN)的基本概念与应用

目录 一、引言 1.1 神经网络的发展历程 1.2 图神经网络的出现 二、深度卷积图神经网络的基本概念 2.1 图的表示 2.2 图卷积神经网络 2.3 深度卷积图神经网络 三、深度卷积图神经网络的应用 3.1 图像分类 3.2 图像分割 3.3 图像生成 四、深度卷积图神经网络的优缺点 …

超级详细的安装虚拟机教程--配图--步骤拆分

1、首先我们需要下载两个文件,一个虚拟机文件,一个程序光盘文件。然后我们安装虚拟机, 类似于这两个文件: 2、虚拟机安装好之后回来到这个页面:点击创建新的虚拟机 3、选择界面,建议选择自定义:…

VMware vSphere Client 安装虚拟机

一、VMware vSphere Client安装虚拟机步骤。 1、启动虚拟机安装,如下图所示。 2、选择所需要安装的虚拟机类型,例如Centos7 、ubuntu、debian等。 3、选择磁盘、内存、CPU大小。 4、启动虚拟机。 5、选择操作系统镜像进行安装。 二、操作系统安装。 1、…

Mac m2芯片安装虚拟机win11

写在前面,这两天安装虚拟机和Windows系统搞的我头皮发麻,遇到了很多不能解决的问题,主要就是m1/m2芯片好多软件都不兼容脑阔疼,失败的路程就不展示了,我们只展示成功过程中的修问题 一开始使用的virtual box虚拟机&am…

VirtualBox安装虚拟机全过程

使用Virtual Box安装虚拟机,虚拟机操作系统使用CentOS7进行安装,安装完成后解决网络设置的问题。 一、虚拟机新建过程 1、点击新建。 2、设置内存大小,点击下一步。 3、选择虚拟硬盘,点击创建。 4、选择创建虚拟硬盘,点…

crossover2023最新苹果笔记本mac系统如何安装虚拟机?

mac系统怎么装虚拟机?如果只在mac上安装虚拟机软件是无法正常运行Windows系统的,还需要将Windows镜像文件导入由虚拟机软件搭建的Windows系统运行环境。mac虚拟机性能怎么样?mac虚拟机的性能由电脑本身的存储空间,以及虚拟机软件&…

安装虚拟机步骤 详细

虚拟机安装步骤 打开VMware Workstation,点击创建新的虚拟机。 点击自定义(高级)(C),下一步。 选择虚拟机硬件兼容性 Workstation 15.x,下一步。 选择稍后安装操作系统,下一步。 …

cas cvm服务器虚拟化安装虚拟机,CAS系统如何安装虚拟机

1、在CVM的云平台中选择一台物理服务器右击,在弹出的选项中选择“增加虚拟机”。给虚拟机配置名称,选择操作系统版本,这一步一定要注意,这里选择的操作系统版本指的是会安装对应操作系统版本的驱动,如果这里选择的版本和实际安装的操作系统版本不一致会导致虚拟机不能正常…

虚拟机服务器安装虚拟机的步骤

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1.创建虚拟机第一步第二步第三步第四步第五步第六步 2.配置虚拟机 1.创建虚拟机 第一步 访问虚拟机服务器:IP地址端口号 第二步 创建/注册虚拟机>…

win10系统安装虚拟机

本文包含1553 个字,阅读大约需要3-5分钟。 昨天在平台上分享了一下,如何安装win10系统,今天想跟大家分享一下如何在Windows上安装虚拟机。 文章目录 1.为什么要安装虚拟机2.虚拟机的好处3.虚拟机的种类4.安装步骤注意事项:因为p…

超详细使用VirtualBox安装虚拟机

文章为中华石杉老师课程总结!!! 1、下载VirtualBox管理工具。 2、到官网下载。我下载的是最新的版本。 3、安装VirtualBox. 4、这里变更下安装路径。只要不是系统盘就可以。 之后就是默认 下一步就可以。 5、打开VirtualBox。 6、点击控制-&…

虚拟机安装群晖

1.准备文件 下载链接 群晖助手、群晖pat文件、虚拟机文件 2.记事本编辑虚拟机vmx文件 修改版本号与虚拟机版本一致 3.双击vmx文件 选择虚拟机 右键设置参数如图 4.安装群晖助手 启动虚拟机打开助手 搜索联机 等待加载 点击安装 选择pat 等待安装 配置账号信息登录

手机安装虚拟机

大部分一般都是把 Linux 系统装在计算机中的,通过虚拟机安装运行或者执行装成 Linux 系统使用。那么手机上可以安装 Linux 吗?有没有人想过这个问题,答案是当然可以。可以想一下在日常使用的手机上安装一套完整的 Linux 系统,那将…

win11安装虚拟机

目录 前言安装流程蓝屏解决办法第一种办法第二种办法 最后总结 前言 最近用上了win11系统,然后重新安装虚拟机 安装流程 输入许可证后,点击完成就可以了。 然后在桌面上打开虚拟机 这个界面按自己喜欢的去填,密码要记住 蓝屏解决办法…

使用U盘安装虚拟机

使用U盘安装虚拟机 目的:使用U盘在电脑上安装虚拟机 实验内容: 一台电脑 一个u盘 在电脑上下载并安装 VMware 在centos官网下载centos7.8的镜像文件 安装一款启动盘制作软件 1.从VMware官网下载最新版本VMware并安装 点击下载按钮,即可下载…