卷积神经网络(CNN):CNN是专门用于处理图像和视频数据的神经网络。它通过卷积层提取局部特征,池化层降低数据维度,全连接层进行分类。卷积层使用卷积核在输入数据上滑动,提取空间特征。
(1)图像属性
图像有三个属性,表明需要专门的模型架构。
A.高维,对内存和计算带来挑战。B.邻近的图像像素在统计上是相关的。C.具有几何不变性,即图像的解释在几何变换下是稳定的。
(2)不变性与同变性
不变性:![]()
比如,一幅图像,左右平移后,图像的内容没有变化,这就是不变性。
同变性:![]()
比如,一副图像A经过处理得到处理后的图像B,那么原图像A平移后,在经过同样的处理,得到的图像等同于图像B,平移后的图像。
(3)一维卷积
stride步幅、kernel size内核大小和dilation膨胀
Stride=每个输出移动k个位置
相对于输入减少了输出的大小
kernel size=为每个输出赋予不同数量的输入权重
合并来自更大区域的信息,但是增加内核大小的缺点是需要更多的权重
dilation or atrous convolution=在核值之间插入零
合并来自更大区域的信息,使参数更少
(4)CNN 的核心组件
A.卷积层(Convolutional Layer):卷积层是 CNN 的核心组件,通过卷积操作提取输入数据的局部特征。
卷积核(Kernel/Filter):卷积核是一个小的权重矩阵(如 3x3 或 5x5),通过在输入数据上滑动,计算局部区域的加权和。
卷积操作:卷积核在输入数据上滑动,计算每个位置的局部特征。公式如下:

输出特征图(Feature Map):卷积操作的结果是一个特征图,表示输入数据中某种局部特征的存在与否。
多通道卷积:对于多通道输入(如 RGB 图像),卷积核也会有多通道,每个通道分别卷积后求和,得到单通道输出。

B.激活函数(Activation Function):卷积操作后通常会应用非线性激活函数,引入非线性。
ReLU(Rectified Linear Unit):最常用的激活函数,公式为:
![]()
ReLU 能够加速训练并缓解梯度消失问题。
C.池化层(Pooling Layer):池化层用于降低特征图的空间尺寸,减少计算量并增强模型的鲁棒性。
池化层通常使用 2x2 的窗口,步幅为 2,将特征图的尺寸减半。
Downsampling下采样
a.相同位置采样(sample every other position):在每个局部区域的同一位置采样。
b.最大池化(Max Pooling):在局部区域中取最大值。
c.平均池化(Average Pooling):在局部区域中取平均值。

upsampling上采样
a.Duplicate重复
b.Max-upsampling最大上采样
c.Bilinear interpolation双线性插值

D.全连接层(Fully Connected Layer):全连接层用于将卷积层和池化层提取的特征组合起来,完成最终的分类或回归任务。
作用:将特征图展平为一维向量,并通过全连接层映射到输出空间(如类别概率)。
输出:对于分类任务,通常使用 softmax 函数输出类别概率。
E.Dropout:Dropout 是一种正则化技术,用于防止过拟合。
原理:在训练过程中随机丢弃一部分神经元(如 50%),迫使网络学习更鲁棒的特征。
测试阶段:在测试阶段,所有神经元都参与计算,但输出需要乘以 Dropout 的概率。
(5)CNN 的工作流程
A.输入层:接收原始数据(如图像)。
B.卷积层:通过卷积核提取局部特征,生成特征图。
C.激活函数:引入非线性,增强模型的表达能力。
D.池化层:降低特征图的空间尺寸,减少计算量。
E.重复卷积和池化:通过多层卷积和池化,逐渐提取更高层次的特征。
F.全连接层:将特征图展平并映射到输出空间。
G.输出层:输出最终结果(如分类概率)。
(6)CNN 的优势
A.局部感受野:卷积核只关注局部区域,能够有效捕捉局部特征。
B.参数共享:卷积核在整个输入数据上共享参数,大大减少了参数量。
C.平移不变性:卷积操作对输入数据的平移具有一定的不变性。
D.层次化特征提取:通过多层卷积,CNN 能够从低级特征(如边缘)到高级特征(如物体)逐步提取信息。
