CNN 的核心概念

  1. 卷积层:

    • 核心操作:卷积。 这是 CNN 得名的关键操作。

    • 目的: 从输入数据中提取局部特征(如边缘、纹理、颜色模式、更复杂的形状等)。

    • 工作原理:

      • 定义一个小的、可学习的矩阵,称为卷积核滤波器

      • 将这个核在输入数据(如图像)上按照一定的步长滑动。

      • 在每个滑动位置,核与输入数据覆盖的局部区域进行逐元素相乘,然后将所有乘积结果求和,得到一个输出值。

      • 滑动覆盖整个输入后,得到一个二维的特征图,称为激活图特征图

    • 关键特性:

      • 局部连接: 输出中的每个神经元只与输入数据的一个小局部区域(感受野)连接,而不是全连接。这大大减少了参数量。

      • 权值共享: 同一个卷积核在整个输入数据上滑动并使用相同的权重参数。这意味着无论特征出现在图像的哪个位置,都使用相同的核来检测它,赋予了 CNN 平移不变性

      • 空间层次: 通过堆叠多个卷积层,后面的层可以“看到”前面层提取的更大范围的特征(即组合低级特征形成高级特征)。

  2. 激活函数:

    • 目的: 引入非线性,使网络能够学习复杂的模式。没有非线性激活函数,多层网络就等价于单层网络。

    • 常用函数:

      • ReLU: 最常用,f(x) = max(0, x)。计算简单高效,能有效缓解梯度消失问题(在正区间)。

      • Leaky ReLU: f(x) = max(αx, x) (α 是一个很小的正数,如 0.01)。试图解决 ReLU 的“神经元死亡”问题(负输入永远输出 0)。

      • Sigmoid: f(x) = 1 / (1 + exp(-x))。输出在 0 到 1 之间,常用于二分类问题的输出层,但在隐藏层中使用较少,因为容易导致梯度消失。

      • Tanh: f(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))。输出在 -1 到 1 之间,比 Sigmoid 梯度消失问题稍好。

    • 位置: 通常紧跟在卷积层(和全连接层)之后。

  3. 池化层:

    • 目的:

      • 降维: 减小特征图的空间尺寸(高度和宽度),从而显著减少后续层的计算量和参数量。

      • 平移不变性: 对小的平移、旋转、缩放等提供一定程度的鲁棒性。

      • 防止过拟合: 通过减少参数间接起到正则化作用。

    • 工作原理: 在特征图上滑动一个窗口(如 2x2),并对窗口内的值进行聚合操作:

      • 最大池化: 取窗口内的最大值。最常用,能保留最显著的特征。

      • 平均池化: 取窗口内的平均值。

    • 关键特性:

      • 没有需要学习的参数。

      • 通常使用步长等于窗口大小,这样每次滑动都不重叠,降维效果明显(例如 2x2 池化步长为 2,尺寸减半)。

  4. 全连接层:

    • 目的: 位于网络的末端(在卷积层和池化层之后),将前面提取到的所有高级特征进行整合,并映射到最终的输出空间(如分类任务的类别概率)。

    • 工作原理: 和传统神经网络中的层一样,每个神经元都与前一层的所有神经元进行全连接。

    • 特点:

      • 参数量通常非常大(尤其是当输入特征图尺寸较大时)。

      • 学习全局的、非空间的特征组合。

  5. 输出层:

    • 根据任务类型选择:

      • 分类: 通常使用 Softmax 激活函数,输出每个类别的概率分布。

      • 回归: 通常使用线性激活函数(或恒等函数)。

      • 其他: 如图像分割常用像素级的 Sigmoid 或 Softmax。

CNN 的典型结构

一个经典的 CNN 结构通常是交替堆叠的卷积层 + 激活函数 + 池化层,最后接上一个或多个全连接层 + 激活函数(如分类任务最后的 Softmax)

例如:输入图像 -> [卷积层 -> ReLU] -> [池化层] -> [卷积层 -> ReLU] -> [池化层] -> ... -> 展平 -> [全连接层 -> ReLU] -> ... -> [输出层 (如 Softmax)]

CNN 的优势

  1. 参数效率: 局部连接和权值共享极大减少了需要学习的参数量,降低了模型复杂度,减轻了过拟合风险,并提高了计算效率。

  2. 自动特征提取: 无需人工设计复杂的特征提取器。网络能从原始数据(如图像像素)中自动学习到任务相关的、层次化的特征(从低级到高级)。

  3. 平移不变性: 由于权值共享,CNN 对目标在图像中的位置变化具有鲁棒性。

  4. 空间层次性: 通过堆叠卷积层,网络能够学习到越来越抽象和全局的特征表示。

CNN 的应用领域(远超图像)

  • 计算机视觉: 图像分类、目标检测(YOLO, SSD, Faster R-CNN)、图像分割(FCN, U-Net)、人脸识别、图像生成(GANs)、图像超分辨率、风格迁移等。

  • 自然语言处理: 文本分类、情感分析、机器翻译(部分模型)、命名实体识别。通常处理词嵌入序列(看作一维信号)。

  • 语音识别: 将音频信号(如频谱图)作为二维图像处理。

  • 时间序列分析: 预测、异常检测(将序列看作一维信号)。

  • 游戏 AI: 如 DeepMind 的 AlphaGo(结合了 CNN 分析棋盘状态)。

  • 推荐系统: 处理用户-物品交互矩阵或特征序列。

  • 医学影像分析: 病灶检测、疾病诊断。

著名的 CNN 架构

  • LeNet-5: 早期用于手写数字识别的经典 CNN。

  • AlexNet: 2012 年 ImageNet 竞赛冠军,标志着深度学习复兴。

  • VGGNet: 使用非常小的卷积核(3x3)堆叠构建深度网络,结构简洁。

  • GoogLeNet / Inception: 引入 Inception 模块,并行使用不同大小的卷积核和池化操作,在保持计算效率的同时增加网络宽度和深度。

  • ResNet: 引入残差连接(跳跃连接),解决了极深网络(如 100+ 层)的训练难题,允许构建非常深的网络。

  • MobileNet / ShuffleNet / EfficientNet: 专注于设计轻量级、高效的 CNN 架构,适用于移动端和嵌入式设备。

总结来说,卷积神经网络通过其独特的卷积操作、局部连接、权值共享和池化机制,成为了处理具有空间或时间局部相关性的网格状数据的强大工具,尤其是在图像相关任务中取得了巨大成功,并深刻改变了人工智能领域。

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐