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

卷积神经网络(CNN)核心知识点总结

一、全连接层的局限性与 CNN 的必要性

  1. 全连接层(MLP)的适用场景与缺陷

    • 多层感知机(MLP)仅适合处理表格数据(行 = 样本,列 = 特征),但处理图像时需将二维图像展平为一维向量,导致丢失空间结构信息(如像素间的位置关联)。
    • 实例:猫狗分类任务中,3600 万像素的 RGB 图像用 100 神经元单隐含层 MLP,参数量达36 亿(100×3600 万),远超实际需求,计算成本极高。
  2. CNN 的核心优势通过参数共享机制(同一卷积核作用于全图)和池化方法,大幅降低参数量,同时保留图像空间结构信息,解决 MLP 处理图像的痛点。

二、CNN 的两大核心设计原则

CNN 的结构设计基于对视觉感知的模拟,核心遵循两大原则:

  1. 平移不变性无论检测对象(如猫、狗)出现在图像的哪个位置,神经网络前几层对相同图像区域(如猫的耳朵)应产生相似响应,确保目标位置不影响检测结果。

  2. 局部性神经网络前几层仅关注输入图像的局部区域(如 3×3、5×5 窗口),无需过度关联远距离区域,符合人类视觉先感知局部再整合全局的特点。

三、CNN 的核心组件

(一)卷积层

卷积层是 CNN 提取特征的核心,通过卷积核与输入的交叉相关运算提取图像特征。

  1. 基本原理输入图像与卷积核(Kernel)进行交叉相关运算,再叠加偏置(Bias),得到输出特征图(Feature Map):

    • 卷积核:可学习参数,大小为超参数(如 3×3、5×5),每个卷积核对应一种特征(如边缘、纹理)。
    • 偏置:每个输出通道对应 1 个可学习偏置。
  2. 卷积的典型应用不同卷积核可提取不同特征,常见场景包括:

    • 边缘检测:用特定卷积核(如[-1,-1,-1;-1,8,-1;-1,-1,-1])捕捉图像明暗边界。
    • 锐化:增强图像细节对比度。
    • 高斯模糊:平滑图像,减少噪声。
  3. 多通道卷积(彩色图像处理)彩色图像含 RGB3 个通道,卷积层需为每个输入通道分配 1 个卷积核,各通道卷积结果求和后得到单通道输出;若需多个输出特征,则设置多个 “多通道卷积核组”。

    • 实例:输入为 7×7×3(高 × 宽 × 通道),用 2 个 3×3×3 的卷积核,输出为(7-3+1)×(7-3+1)×2=5×5×2(若不填充)。

(二)填充(Padding)与步幅(Stride)

两者均用于调整卷积层输出特征图的维度,平衡计算量与特征保留。

  1. 填充

    • 定义:在输入图像周围添加额外行 / 列(通常填充 0),避免边缘像素仅被卷积一次导致的信息丢失。
    • 作用:增加输出特征图的高度和宽度,确保边缘特征被有效提取。
  2. 步幅

    • 定义:卷积核在输入图像上滑动时的行 / 列步长(如步幅 2 表示每次滑动 2 个像素)。
    • 作用:成倍减少输出特征图的维度,降低计算量(如 224×224 输入用 5×5 卷积核,步幅增大可减少卷积层数)。
  3. 总结:填充与步幅配合使用,可灵活调整输出维度,适配后续网络层的输入要求。

(三)池化层

池化层用于进一步降维、减少参数,同时增强模型对平移的鲁棒性,无需要学习参数。

  1. 两大常见池化操作

    池化类型操作逻辑核心作用
    最大池化取池化窗口(如 2×2)内的最大值保留局部区域的显著特征(如边缘、纹理),增强非线性
    平均池化取池化窗口内的平均值平滑局部特征,减少噪声干扰
  2. 典型设置:常用 2×2 池化窗口,步幅 2,可将特征图维度减半(如 4×4→2×2)。

四、经典 CNN 架构演进

(一)LeNet-5(1995,手写数字识别)

  1. 核心定位:首个实用的 CNN 架构,奠定 CNN 基础,用于 MNIST 手写数字识别(10 类,28×28 灰度图,6 万样本)。
  2. 架构组成
    • 卷积编码器:2 个卷积层(5×5 卷积核,sigmoid 激活)+2 个平均池化层(2×2,步幅 2),逐步提取边缘、形状等特征。
    • 全连接密集块:3 个全连接层,最终输出 10 类概率(对应 0-9 数字)。

(二)AlexNet(2012,ImageNet 竞赛冠军)

  1. 核心突破:从浅层网络迈向深层网络,引发计算机视觉(CV)范式转变,适配 ImageNet 数据集(1400 万样本,1000 类,469×387 彩色图)。
  2. 架构特点
    • 层数:共 8 层(5 个卷积层 + 2 个全连接隐藏层 + 1 个全连接输出层),输入为 3×224×224 彩色图。
    • 关键改进:
      • 激活函数:用ReLU 替代 sigmoid,解决 sigmoid 梯度消失问题,加速训练。
      • 正则化:在全连接层后加入丢弃法(Dropout),防止过拟合。
      • 池化:用3×3 最大池化(步幅 2) 替代 LeNet 的 2×2 平均池化,保留更多细节。
      • 数据增强:通过图像翻转、裁剪等扩充训练数据,提升泛化能力。

五、学习表征与视觉分层理论

  1. 表征学习的概念

    • 浅层学习:依赖人工经验或特征转换(如 HOG、SIFT)提取特征,效率低且泛化差。
    • 表示学习:通过深度模型自动学习有效特征,从底层到高层逐步抽象,提升模型性能。
  2. 视觉分层理论(CNN 特征提取逻辑)CNN 的卷积层特征提取遵循 “从底层到高层” 的分层逻辑,与人类视觉感知一致:

    • 浅层卷积核:提取底层像素特征(边缘、颜色、斑块)。
    • 中层卷积核:提取中层纹理特征(条纹、纹路、简单形状)。
    • 高层卷积核:提取高层语义特征(眼睛、轮胎、文字等目标部件,最终关联到具体类别)。

六、CNN 发展脉络总结

架构年份核心特点关键改进
LeNet1995首个实用 CNN,适配小尺寸灰度图(28×28)卷积 + 池化的组合,奠定 CNN 结构基础
AlexNet2012更深更大,适配大尺寸彩色图(3×224×224),CV 范式转变ReLU 激活、Dropout、最大池化、数据增强
http://www.dtcms.com/a/390715.html

相关文章:

  • Python数据挖掘之基础分类模型_朴素贝叶斯
  • 数字工业化的终极形态:人、机器与算法的三重奏
  • [x-cmd] 在 Linux 与 MacOS 安装与使用 x-cmd
  • wkhtmltopdf 命令参数及作用大全
  • Windows路径转换成Cygwin中的Unix路径的方法
  • JavaWeb之Web资源与Servlet详解
  • [视图功能8] 图表视图:柱状图、折线图与饼图配置实战
  • TDengine IDMP 基本功能——数据可视化(5. 表格)
  • ViTables 安装与 HDF5 数据可视化全指南
  • Python爬虫实战:研究Pandas,构建最新网游数据采集与智能推荐系统
  • 在.NET中实现RabbitMQ客户端的优雅生命周期管理及二次封装
  • .NET自定义数据操作日志
  • 从“连不上网”到“玩转路由”:路由器配置与静态路由实战(小白也能轻松掌握)
  • R语言 生物信息如何解读geo数据集的说明,如何知道样本分类, MDA PCa 79(n = 3)n的含义
  • 你的第一个Node.js应用:Hello World
  • 【LVS入门宝典】LVS核心原理与实战:Real Server(后端服务器)高可用配置指南
  • TPAMI 25 ICML 25 Oral | 顶刊顶会双认证!SparseTSF以稀疏性革新长期时序预测!
  • rep()函数在 R 中的用途详解
  • 在Windows中的Docker与WSL2的关系,以及与WSL2中安装的Ubuntu等其它实例的关系
  • 编辑器Vim
  • 数字推理笔记——基础数列
  • 如何使用 FinalShell 连接本地 WSL Ubuntu
  • Node.js 进程生命周期核心笔记
  • 低空网络安全防护核心:管理平台安全体系构建与实践
  • 站内信通知功能websoket+锁+重试机制+多线程
  • Vue 3 <script setup> 语法详解
  • Redis三种服务架构详解:主从复制、哨兵模式与Cluster集群
  • 复习1——IP网络基础
  • MATLAB中借助pdetool 实现有限元求解Possion方程
  • string::c_str()写入导致段错误?const指针的只读特性与正确用法