当前位置: 首页 > news >正文

深度学习——卷积神经网络CNN(原理:基本结构流程、卷积层、池化层、全连接层等)

先了解传统神经网络原理:深度学习——详细教学:神经元、神经网络、感知机、激活函数、损失函数、优化算法(梯度下降)-CSDN博客https://blog.csdn.net/2302_78022640/article/details/150618265?spm=1001.2014.3001.5502


卷积神经网络(CNN)理论详解

一、背景与发展历史

在计算机视觉的发展历程中,卷积神经网络起到了至关重要的作用。

  • 1960s-1980s:Hubel 和 Wiesel 的视觉皮层研究表明,人类和动物的大脑在视觉处理中存在“局部感受野”和“分层感知”。这一生物学启发为 CNN 的提出奠定了理论基础。

  • 1989:Yann LeCun 等人提出了 LeNet-5 模型,用于手写数字识别。这是第一个实用的 CNN。

  • 2000s:由于硬件算力有限,CNN 的发展一度停滞。

  • 2012:AlexNet 在 ImageNet 比赛中以巨大优势获胜,引爆了深度学习浪潮。从此,CNN 成为图像处理的主流方法。

  • 2014-2020s:VGG、GoogLeNet、ResNet、DenseNet 等结构不断提出,CNN 逐渐演化为非常深且复杂的网络,并扩展到视频、语音、自然语言处理等领域。


二、卷积神经网络的核心思想

CNN 的关键目标是自动提取特征,避免传统机器学习中依赖人工设计特征(Feature Engineering)的繁琐与局限。

其核心思想包括:

  1. 局部感受野(Local Receptive Field):神经元只与输入的一小部分区域相连答案:卷积核一样则一样多

  2. 参数共享(Weight Sharing):卷积核在整个输入上滑动,参数重复使用,极大减少参数数量。比如:一个4*4的输入,传统神经网络每个神经元将有16个对应的参数,而卷积神经网络的参数重复使用卷积核,若卷积核为2*2,则参数仅仅有4个:

  3. 平移不变性(Translation Invariance):通过卷积与池化,模型能对图像的平移、缩放等保持鲁棒性。


三、卷积运算的数学原理

设输入为二维图像矩阵,卷积核(滤波器)为 ,则卷积操作定义为:

其中:

  • S(i,j) 表示输出特征图某点的值;

  • I(i+u,j+v) 表示输入图像局部像素;

  • K(u,v) 是卷积核参数。

在深度学习中,常用的是**互相关(Cross-correlation)**而不是严格的数学卷积(即不翻转卷积核)。


四、CNN 的基本层结构

常见 CNN 结构流程:

典型 CNN(如 LeNet、VGG)的流程一般是:

输入层 → 卷积层 + 激活层 → 池化层 → 卷积层 + 激活层 → 池化层 → Flatten → 全连接层 → 输出层

1. 卷积层(Convolution Layer)

  • 功能:提取局部空间特征。

  • 参数:卷积核大小(kernel size)、步长(stride)、填充(padding)、卷积核个数(决定输出通道数)。

  • 示例:

    其中 W 为卷积核,∗ 为卷积运算,f 为非线性激活函数。

2. 激活函数层(Activation Layer)

  • 常用:ReLU、Leaky ReLU、Sigmoid、Tanh。

  • 作用:引入非线性,使网络可以逼近复杂函数。

  • ReLU:

3. 池化层(Pooling Layer)

  • 功能:降低特征维度,减少计算量,防止过拟合。

  • 类型:最大池化(Max Pooling)、平均池化(Average Pooling)。

原始输入特征图(4×4 矩阵)


设置池化参数

  • 池化窗口大小:2×2

  • 步长 (stride):2

  • 池化方式:最大池化(取窗口内最大值)


池化过程

我们将 2×2 窗口依次滑动:


池化结果(2×2 矩阵)


👉 通过最大池化,原本 4×4 的特征图 被压缩为 2×2 的特征图,既减少了数据量,又保留了局部最显著的特征。

4. 全连接层(Fully Connected Layer, FC)

  • 功能:将卷积得到的特征映射到标签空间,进行分类或回归。

  • 类似传统神经网络层。

  • 过程:卷积输出 → 展平(Flatten) → 送入全连接层

5. 归一化层(Normalization Layer)

  • 批归一化(Batch Normalization):加快训练收敛,缓解梯度消失。

  • 常见类型

    • Batch Normalization (BN):在一个 mini-batch 内做标准化

    • Layer Normalization / Group Normalization(适用于小 batch)

  • 效果:避免梯度消失/爆炸,提升训练稳定性。

6. Dropout 层

  • 训练时随机丢弃部分神经元,减少过拟合。

  • 参数p 表示丢弃概率(常用 0.5)。


五、CNN 的优点

  1. 参数少:相较于传统全连接层,卷积层通过参数共享大幅减少参数量。

  2. 自动特征提取:无需人工设计特征,模型能自动学习最优特征。

  3. 适合高维输入:图像、视频等高维数据输入时效率更高。

  4. 具有平移、缩放、旋转的不变性


六、CNN 的不足

  1. 对空间关系敏感度有限:CNN 偏重局部特征,对长距离依赖的建模能力不足(后被 Transformer 改进)。

  2. 计算资源需求高:尤其在大规模图像任务中,对 GPU/TPU 依赖强。

  3. 缺乏可解释性:卷积层学到的特征往往难以直观解释。


七、经典卷积神经网络结构

  1. LeNet-5 (1998)

    • 用于手写数字识别。

    • 结构:卷积 + 池化 + 全连接。

  2. AlexNet (2012)

    • ImageNet 冠军,首次证明深度 CNN 的强大。

    • 使用 ReLU、Dropout、数据增强。

  3. VGGNet (2014)

    • 强调“更深更窄”的结构,卷积核固定为 3×33\times3。

  4. GoogLeNet/Inception (2014)

    • 引入 Inception 模块,通过不同尺度卷积并行提取特征。

  5. ResNet (2015)

    • 残差结构(skip connection)解决了深层网络梯度消失问题。

  6. DenseNet (2016)

    • 特征层之间密集连接,缓解梯度消失并提升特征复用。


八、应用领域

  • 计算机视觉

    • 图像分类(Image Classification)

    • 目标检测(Object Detection, 如 Faster R-CNN、YOLO、SSD)

    • 语义分割(Semantic Segmentation, 如 U-Net)

    • 图像生成(GANs, Autoencoder)

  • 语音处理

    • 语音识别、语音增强。

  • 自然语言处理(NLP)

    • 文本分类、情感分析(CNN 可以作为文本卷积模型)。

  • 医疗影像

    • 肿瘤检测、病理切片分析。


九、总结与未来趋势

卷积神经网络作为深度学习的奠基石,在图像识别、语音处理、自然语言处理等领域取得了突破性成果。它的优势在于高效的特征提取和对图像任务的强大性能。然而,随着 Transformer 等新型架构的兴起,CNN 在一些任务中的主导地位有所削弱,但其在视觉任务、嵌入式计算、轻量级模型中仍具有不可替代的作用。

未来,CNN 可能会与 Transformer、图神经网络(GNN)等结构融合,形成多模态与跨领域的统一架构。

http://www.xdnf.cn/news/1377757.html

相关文章:

  • LeetCode - 反转链表 / K 个一组翻转链表
  • day2_softmax回归的实现 李沐动手学深度学习pytorch记录
  • 神经网络学习笔记12——高效卷积神经网络架构MobileNet
  • PLC_博图系列☞基本指令”S_ODT:分配接通延时定时器参数并启动“
  • leecode-三数之和
  • 如何防御安全标识符 (SID) 历史记录注入
  • 【Linux实时内核机制】ww_rt_mutex 的contending_lock异常问题
  • wireshark解析FLV插件分享
  • Unity Shader unity文档学习笔记(二十一):几种草体的实现方式(透明度剔除,GPU Instaning, 曲面细分+几何着色器实现)
  • HTML5超详细学习内容
  • GPIO推挽和开漏的名称由来和本质含义
  • FactoryBean接口作用
  • 使用Stone 3D快速制作第一人称视角在线小游戏
  • 【PyTorch】基于YOLO的多目标检测项目(二)
  • 基于Cursor AI IDE的Vue3留言板系统实战:从零搭建到智能优化全流程
  • 《金融对账系统雪崩隐患的深度复盘与架构重生》
  • 从CTFshow-pwn入门-pwn40理解64位栈溢出不都需要堆栈平衡
  • 致远OA新闻公告讨论调查信息查询SQL
  • Linux操作系统——TCP服务端并发模型
  • 域名、ip、DSN、URL
  • 虚拟机逃逸攻防演练
  • 装饰器模式(C++python)
  • 如何提升素材检索效率?语义搜索在 DAM 中的应用效果全解
  • 广东省省考备考(第八十八天8.27)——判断推理(听课后强化训练)
  • 基于NXP iMXRT600音频算法开发方法
  • 【ros-humble】【虚拟机】网络配置
  • 【leetcode】105. 从前序与中序遍历序列构造二叉树
  • 机器视觉学习-day05-图片颜色识别及颜色替换
  • 指针 (六):sizeof和strlen细节强化之“做题篇”
  • 深度学习:常用的损失函数的使用