认识
一、认识
卷积神经网络(Convolution Neural Network
, CNN
) 是一种专门用于处理网格状数据(如图像、视频等)的深度学习模型。相比传统的全连接神经网络(Fully Connected Network, FCN
),CNN
通过 卷积(Convolution
)、池化(Pooling
)、全连接(Fully Connected, FC
) 等操作来自动提取特征,从而提高计算效率,并减少参数数量。
卷积神经网络(Convolution Neural Network
, CNN
) 广泛应用于图像分类、目标检测、语音识别、医学影像分析等任务。
卷积神经网络(Convolution Neural Network
, CNN
)计算过程如下: 以手写数字识别(MNIST
数据集)为例:
-
输入:
28×28
的灰度图像。 -
卷积层:
-
第一次卷积(
5×5
卷积核,32
个通道),输出24×24×32
。 -
第二次卷积(
5×5
卷积核,64
个通道),输出20×20×64
。
-
-
池化层:
2×2
最大池化,输出10×10×64
。
-
Flatten
:将10×10×64
转换为6400
维向量。 -
全连接层:经过
128
维、64
维隐藏层,最终输出10
维(对应0-9
)。 -
Softmax
归一化,得到类别概率。
卷积神经网络(Convolution Neural Network
, CNN
)主要由以下几个部分组成
-
卷积层(
Convolutional Layer
): 自动提取局部特征,如边缘、纹理、形状等。使用卷积核(Filter/Kernel
)对输入数据进行局部加权求和,然后通过 激活函数(ReLU
) 进行非线性变换。公式为: 。其中, 是输出值, 是卷积核(权重), 是输入数据的一个局部区域, 是偏置项。 -
池化层(
Pooling Layer
): 降低数据维度,减少计算量,提高模型的平移不变性。常见方法:最大池化(Max Pooling
), 取局部区域的最大值,常用于提取主要特征。均值池化(Average Pooling
), 取局部区域的平均值。 -
激活函数(
Activation Function
): 引入非线性,增强模型表达能力。常见激活函数:ReLU(Rectified Linear Unit)
, 加速训练并避免梯度消失。Sigmoid
和Tanh
:较少用于CNN
(容易梯度消失)。 -
全连接层(
Fully Connected Layer, FC
): 将提取的特征映射到最终的分类或回归任务,类似于传统的神经网络。将卷积层输出的特征展平(Flatten
)并传入全连接层,最终输出类别概率(使用Softmax
)。 -
归一化(
Normalization
):Batch Normalization
(BN
):在每个mini-batch
内归一化数据,加速收敛,提高稳定性。
卷积神经网络(Convolution Neural Network
, CNN
) 减少参数,相比全连接网络,CNN
通过共享权重(卷积核)显著降低参数数量。例如,3×3
的卷积核只有 9
个参数,而全连接层可能有数千个参数; 自动提取特征, CNN
可以从简单特征(边缘、角点)到复杂特征(形状、轮廓)自动提取信息,无需人工设计特征; 平移不变性, 池化操作能帮助模型忽略微小的位移,使 CNN
更适用于图像分类任务。
卷积神经网络(Convolution Neural Network
, CNN
)经典架构有:
-
LeNet-5(1998)
:最早的CNN
,专用于手写数字识别。 -
AlexNet(2012)
:第一款在ImageNet
竞赛中大获成功的CNN
,开启了深度学习时代。 -
VGGNet(2014)
:使用3×3
小卷积核堆叠,使网络更深,提高特征表达能力。 -
GoogLeNet(2014)
:引入Inception
结构,提升计算效率。 -
ResNet(2015)
:提出残差连接(Residual Connection
),解决深层网络的梯度消失问题。