当前位置: 首页 > 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.dtcms.com/a/353360.html

相关文章:

  • 编程算法实例-算法学习网站
  • [Mysql数据库] 知识点总结4
  • LeetCode热题 100——48. 旋转图像
  • CB1-3-面向对象
  • 琼脂糖凝胶核酸电泳条带异常问题及解决方案汇总
  • Day29 基于fork+exec的minishell实现与pthread多线程
  • 【Linux】基本指令学习3
  • IBMS集成管理系统与3D数字孪生智能服务系统的应用
  • Linux驱动 — 导出proc虚拟文件系统属性信息
  • LabVIEW 音频信号处理
  • 【ElasticSearch】原理分析
  • opencv+yolov8n图像模型训练和推断完整代码
  • django注册app时两种方式比较
  • PyTorch图像预处理完全指南:从基础操作到GPU加速实战
  • jQuery版EasyUI的ComboBox(下拉列表框)问题
  • 通义万相音频驱动视频模型Wan2.2-S2V重磅开源
  • 聊一聊 单体分布式 和 微服务分布式
  • Package.xml的字段说明
  • 前端架构知识体系:css架构模式和代码规范
  • 趣味学习Rust基础篇(用Rust做一个猜数字游戏)
  • PAT 1087 All Roads Lead to Rome
  • 嵌入式学习资料分享
  • java中的数据类型
  • 《FastAPI零基础入门与进阶实战》第14篇:ORM之第一个案例改善-用户查询
  • 【图文介绍】PCIe 6.0 Retimer板来了!
  • 快速上手对接币安加密货币API
  • 《Linux 网络编程四:TCP 并发服务器:构建模式、原理及关键技术(以select )》
  • 3 无重复字符的最长子串
  • Windows系统之不使用第三方软件查看电脑详细配置信息
  • 基于linux系统的LIRC库学习笔记