一、概述

(一)定义

卷积神经网络(Convolutional Neural Network,CNN)是一种深度前馈神经网络,它借鉴了生物视觉系统的结构和工作原理,通过模拟人脑视觉皮层中神经元对视觉信息的处理方式,能够自动从输入数据中提取特征,尤其在处理具有网格结构的数据(如图像、视频等)时表现出卓越的性能。

(二)应用场景

CNN 凭借其强大的特征提取和模式识别能力,在众多领域得到了广泛应用。

计算机视觉:图像分类,能够对图像中的物体进行准确分类,如识别图片中的动物、植物、交通工具等;目标检测,可定位图像中多个物体的位置并进行分类,在自动驾驶、安防监控等领域发挥重要作用;语义分割,将图像中的每个像素分配到对应的类别,实现对图像的精细分割,应用于医学影像分析、遥感图像解译等。

医学影像:用于疾病诊断,如通过分析 X 光片、CT 图像、核磁共振图像等,辅助医生检测肿瘤、骨折等病变,提高诊断的准确性和效率。

机器人视觉:帮助机器人感知周围环境,实现自主导航、物体抓取等功能,使机器人能够更好地与环境进行交互。

自然语言处理:在文本分类、情感分析等任务中,将文本转换为词向量后,通过 CNN 提取文本中的关键特征,提高任务的性能。

二、核心原理

(一)卷积操作

定义卷积操作是 CNN 的核心操作,它通过一个可学习的卷积核(也称为过滤器)与输入数据的局部区域进行卷积运算,提取该局部区域的特征。

数学原理:对于二维输入数据X和卷积核K,卷积操作的结果Y可表示为:

其中i,j为输出特征图上的位置,m,n为卷积核的索引。

关键特性

权值共享:在卷积操作中,同一个卷积核在输入数据的不同位置上使用相同的权重参数。这意味着卷积核可以在输入数据的不同位置上检测相同的特征,进一步减少了网络的参数数量,提高了网络的泛化能力。

感受野:卷积层中每个神经元的感受野是指输入数据中影响该神经元输出的区域。随着网络深度的增加,神经元的感受野逐渐扩大,能够捕捉到输入数据中更全局的特征。感受野越大越好。

(二)池化操作

定义:池化操作也称为下采样操作,它对卷积层输出的特征图进行压缩,减少特征图的尺寸,同时保留重要的特征信息。没有矩阵运算,只是一个筛选压缩的过程。

常见类型

最大池化:在每个局部区域中选取最大值作为该区域的代表,最大池化能够很好地保留图像中的边缘、纹理等突出特征。

平均池化:计算每个局部区域中所有元素的平均值作为该区域的代表,平均池化则更注重保留区域的整体特征。

最大池化相较于平均池化效果更好

(三)激活函数

定义:激活函数用于对卷积层或全连接层的输出进行非线性变换,引入非线性因素,使 CNN 能够拟合复杂的非线性关系。

常见类型

ReLU(Rectified Linear Unit):ReLU 激活函数计算简单,能够有效缓解梯度消失问题,在 CNN 中得到了广泛的应用。

sigmoid 函数:它将输入值映射到[0,1]区间,但存在梯度消失问题,在深层网络中较少使用。

tanh 函数:它将输入值映射到[-1,1]区间,相比 sigmoid 函数,其输出具有零均值的特点,但同样存在梯度消失问题。

作用:引入非线性,使网络能够学习复杂的非线性映射关系,从而提高网络对复杂数据的拟合能力。如果没有激活函数,CNN 将退化为线性模型,无法处理复杂的任务。

(四)全连接层

定义:全连接层位于 CNN 的最后部分,它将前面卷积层和池化层提取的特征进行整合,将特征图转换为一维向量,然后通过全连接的方式将其与输出层相连。

作用:全连接层的神经元与前一层的所有神经元相连,能够综合前面提取的各种特征,为最终的分类或回归任务提供决策依据。

(五)输出层

输出层根据具体的任务类型输出相应的结果。在分类任务中,输出层通常采用softmax 激活函数,输出每个类别的概率;在回归任务中,输出层一般不使用激活函数,直接输出连续的预测值。

三、卷积层涉及参数

滑动窗口步长: 一般为1

卷积核尺寸:越小,越细粒度提取特征 一般3*3

边缘填充:平衡每个点的影响,边界点相对于中间点应用次数较少,添加0是为了避免填充后的值对原数据产生负面影响。

卷积核个数:得到多少个特征图,即输出通道数,每个卷积核参数都是独立的

四、网络架构演进

7层神经网络,带参数计算叫一层神经网络

 (一)AlexNet

结构:包含 8 层,其中 5 个卷积层和 3 个全连接层。

特点

使用 ReLU 激活函数替代了传统的 sigmoid 和 tanh 激活函数,缓解了梯度消失问题,加快了网络的训练速度。

引入了重叠池化,提高了特征的提取能力和网络的泛化能力。

采用了 Dropout 技术,防止网络过拟合。

利用数据增强技术,增加了训练数据的多样性,提高了网络的鲁棒性。

(二)VGG

结构:由多个卷积层和池化层组成,卷积层均使用3*3的小卷积核,最后通过全连接层输出结果。

特点:通过多个3*3卷积核的堆叠替代大尺寸卷积核,在减少参数数量的同时,增加了网络的深度,提高了特征的提取能力。VGG 网络结构简洁,易于实现,但参数量较大。

 (三)ResNet  

结构:由多个残差块组成,残差块通过跳跃连接(也称为 shortcut connection)将输入直接传递到输出,缓解了深层网络中的梯度消失问题。

残差连接:对于一个残差块,其输出y=F(x)+x,其中F(x)是残差函数,表示需要学习的特征,x是输入。通过这种方式,网络可以更容易地学习到恒等映射,使得深层网络的训练变得可行。ResNet 在 ImageNet 等大型图像数据集上取得了优异的成绩,推动了深层 CNN 的发展。

 五、多个输入和输出通道 

神经网络中另外一个重要的超参数是通道数

多个输入通道

  • mnist数据集中的图片是灰度图片,只有一个通道
  • 一张彩色图片是由红绿蓝三个通道组成的,所以图片在表示的时候通道数是3

转化为灰度会丢失信息

  • 每一个通道都有对应的卷积核
  • 每个通道的输入和对应通道的卷积核做卷积,然后将得到的各个通道上的输出进行叠加(对应位置上的元素相加)得到最终的结果
  • 计算公式如下图所示

  • 输出是单通道的,不管输入有多少个通道,输出是他们输出结果的叠加,所以始终是单通道

多个输出通道

  • 为什么要有多个输出通道?因为不管有多少个输入通道只会得到单输出通道的话是不够的
  • 如果对每一个输出通道有一个三维的卷积核,这个卷积核会输出自己的通道(就相当于在三维的基础上又加了一维 i ,这一维表示输出的通道数)
  • 这里输入和输出通道是没有相关性的
  • 输出通道数是卷积层的超参数,输入通道数不是卷积层的超参数,它是前一层的

多个输入和输出特征

  • 每个输出通道可以认为是在识别某一个特定的模式(特征),通过学习不同卷积核的参数来匹配某一个特定的模式
  • 从某一层的角度来看,输入通道的卷积核可以将上一层得到的不同模式进行识别和组合,按照一定的权重进行相加组合,得到了组合的模式识别
  • 对于一个深度的神经网络来说,下面的一些层的不同通道用来识别一些不同的局部的底层信息(边、纹理),越往上,上层会将局部的纹理组合起来,变成更加高级,较之前更加整体性的模式(特征,如耳朵、胡须等),最上面将所有识别的模式组合起来就形成了所要识别的类别(猫)

 六、1*1的卷积层 

  • 卷积核的高和宽都等于1,意味着它不会识别空间信息,因为他每次只看一个空间像素所以不会去识别通道中的空间信息(不考虑空间信息)
  • 输出的值等价于将对应的输入位置上的不同通道上的值做加权和(只考虑特征维度的融合)
  • 1*1卷积核的作用就是去融合不同通道的信息可以认为是不做空间的匹配,只是在输入层直接做输入通道和输出通道的融合,等价于将整个输入拉成一个向量,通道数等于feature的数量,卷积核相当于一个co*ci的全部连接层
  • 1*1的卷积层就等价于一个全连接层,不做任何的控制信息,因为全连接层不考虑空间信息它只考虑在特征维度(也就是输入通道维数)的融合
  • 它是一个特殊的卷积层  
Logo

惟楚有才,于斯为盛。欢迎来到长沙!!! 茶颜悦色、臭豆腐、CSDN和你一个都不能少~

更多推荐