跳到主要内容

认识

2025年02月06日
柏拉文
越努力,越幸运

一、认识


卷积神经网络(Convolution Neural Network, CNN 是一种专门用于处理网格状数据(如图像、视频等)的深度学习模型。相比传统的全连接神经网络(Fully Connected Network, FCN),CNN 通过 卷积(Convolution)、池化(Pooling)、全连接(Fully Connected, FC 等操作来自动提取特征,从而提高计算效率,并减少参数数量。

卷积神经网络(Convolution Neural Network, CNN 广泛应用于图像分类、目标检测、语音识别、医学影像分析等任务。

卷积神经网络(Convolution Neural Network, CNN)计算过程如下: 以手写数字识别(MNIST 数据集)为例:

  1. 输入:28×28 的灰度图像。

  2. 卷积层

    • 第一次卷积(5×5 卷积核,32 个通道),输出 24×24×32

    • 第二次卷积(5×5 卷积核,64 个通道),输出 20×20×64

  3. 池化层

    • 2×2 最大池化,输出 10×10×64
  4. Flatten:将 10×10×64 转换为 6400 维向量。

  5. 全连接层:经过 128 维、64 维隐藏层,最终输出 10 维(对应 0-9)。

  6. Softmax 归一化,得到类别概率。

卷积神经网络(Convolution Neural Network, CNN)主要由以下几个部分组成

  • 卷积层(Convolutional Layer: 自动提取局部特征,如边缘、纹理、形状等。使用卷积核(Filter/Kernel)对输入数据进行局部加权求和,然后通过 激活函数(ReLU 进行非线性变换。公式为: Y(i,j)=WX+bY(i, j) = \sum W * X + b。其中, Y(i,j)Y(i, j) 是输出值, WW 是卷积核(权重),XX 是输入数据的一个局部区域, bb 是偏置项。

  • 池化层(Pooling Layer: 降低数据维度,减少计算量,提高模型的平移不变性。常见方法:最大池化(Max Pooling, 取局部区域的最大值,常用于提取主要特征。均值池化(Average Pooling, 取局部区域的平均值。

  • 激活函数(Activation Function: 引入非线性,增强模型表达能力。常见激活函数: ReLU(Rectified Linear Unit), 加速训练并避免梯度消失。SigmoidTanh:较少用于 CNN(容易梯度消失)。

  • 全连接层(Fully Connected Layer, FC: 将提取的特征映射到最终的分类或回归任务,类似于传统的神经网络。将卷积层输出的特征展平(Flatten)并传入全连接层,最终输出类别概率(使用 Softmax )。

  • 归一化(Normalization: Batch NormalizationBN):在每个 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),解决深层网络的梯度消失问题。