卷积神经网络(CNN)

目标:

  • 了解什么是卷积神经网络
  • 了解卷积神经网络的组成
  • 了解有哪些代表性的卷积神经网络

基础概念:

  • 卷积:一般指卷积核和运算方式,后续会有详解
  • 感受野: CNN 中输出特征图上的一个像素点对应输入图像的区域大小 。它描述了 "特征图上的一个点能'看到'输入图像的多大范围",是理解 CNN 层级特征提取逻辑的关键。神经元感受野的范围越大表示其能接触到的原始图像范围就越大,也意味着它能学习更为全局,语义层次更高的特征信息;相反,范围越小则表示其所包含的特征越趋向局部和细节。因此感受野的范围可以用来大致判断每一层的抽象层次。 并且我们可以很明显地知道网络越深,神经元的感受野越大 。由此可知,深度卷积神经网络中靠前的层感受野较小,提取到的是图像的纹理、边缘等局部的、通用的特征;靠后的层由于感受野较大,提取到的是图像更深层次、更具象的特征。因此在迁移学习中常常会将靠前的层的参数冻结(不参与训练,因为他们在迁移到新的场景之前已经具备了提取通用特征的能力),来节省训练的时间和算力消耗。
  • **权值共享:**在卷积运算中采用权值共享可以有效减少需要求解的参数。通俗地来讲,在一个卷积核在和一个n通道的特征图(为方便理解,这里可以暂时理解为3通道的RGB输入图像)进行卷积运算时,可以看作是用这个卷积核作为一个滑块去"扫"这个特征图,卷积核里面的数就叫权重,这个特征图每个位置是被同样的卷积核"扫"的,所以权重是一样的,也就是共享。
  • 网络深度: 指神经网络中所有层的总数量(包括卷积层、池化层、激活层、全连接层等),代表模型的 "层级复杂度"
  • 卷积深度: 有两个含义,一是卷积的层数,二是输出特征图的通道数
  • 上采样: 是一个升维操作,就是将小分辨率变成大分辨率的图像,一般方式为插值(双线性插值、最近邻插值法)
  • **下采样:**主要用于降维,是一个信息损失的过程,作用有两个,一是减少计算量,防止过拟合二是增大感受野;一般方式为池化操作(最大池化、平均池化)

卷积神经网络

概念: 在整个神经网络过程中含有卷积运算的网络,就叫做卷积神经网络(CNN),是一个统称。

卷积神经网络的基本结构大致包括:输入层、卷积层、激活函数、池化层、全连接层、输出层

网络训练基本步骤:

CNN的训练,也称神经网络的学习算法与经典BP网络是一样的,都属于随机梯度下降,也称增量梯度下降,实验中用于优化可微分目标函数的迭代算法。

  • Step 1:用随机数初始化所有的卷积核和参数/权重

  • Step 2:将训练图片作为输入,执行前向步骤(卷积, ReLU,池化以及全连接层的前向传播)并计算每个类别的对应输出概率。

  • Step 3:计算输出层的总误差

  • Step 4:反向传播算法计算误差相对于所有权重的梯度,并用梯度下降法更新所有的卷积核和参数/权重的值,以使输出误差最小化

注:卷积核个数、卷积核尺寸、网络架构这些参数,是在 Step 1 之前就已经固定的,且不会在训练过程中改变------只有卷 积核矩阵和神经元权重会更新。

1.CNN 的核心组成部分

CNN 的典型结构由 "特征提取模块" 和 "分类 / 回归模块" 组成,各层按顺序协作,从输入数据中逐步提取 "低级特征"(如边缘、颜色)到 "高级特征"(如眼睛、车轮),最终输出任务结果。

1. 输入层(Input Layer)

**功能:**接收原始网格数据,将其转化为模型可处理的张量格式。

数据格式:通常为 H×W×C(Height:高度,Width:宽度,Channels:通道数)。

例:RGB 彩色图像为 224×224×3(224 像素高、224 像素宽、3 个颜色通道);MNIST 手写数字图像(灰度)为 28×28×1。

**预处理:**需对输入数据标准化(如将像素值从 [0,255] 归一化到 [0,1] 或 [-1,1]),避免数值差异影响训练。

2. 卷积层(Convolutional Layer,核心层)

卷积核(Kernel/Filter):即 "特征提取器",是一个小型的可学习矩阵(如 3×3、5×5),深度与输入特征图的通道数(C)一致。

例:输入为 3 通道(RGB),卷积核的深度必为 3(每个通道对应一个 2D 核,最终结果求和)。

步长(Stride):卷积核在输入特征图上滑动的 "步幅",默认值为 1。步长越大,输出特征图尺寸越小。

填充(Padding):在输入特征图边缘补 0(或其他值),用于保持输出特征图尺寸与输入一致("Same Padding"),或减少尺寸("Valid Padding")。

特征图(Feature Map):卷积操作的输出结果,每个卷积核对应一个特征图(通道数 = 卷积核数量)。

卷积的方式:标准卷积、深度卷积、膨胀卷积、可形变卷积

3. 激活函数层(Activation Layer)

**功能:**为卷积层的线性输出引入非线性,使模型能拟合复杂的特征映射关系(若没有非线性,深层 CNN 等价于单层线性模型)。

常用激活函数:

ReLU:f(x) = max(0, x),解决梯度消失问题,计算高效,是目前最常用的激活函数。

4. 池化层(Pooling Layer)

**功能:**对卷积层输出的特征图进行下采样,

常见类型:

最大池化(Max Pooling):取局部区域的最大值(保留最显著特征,如边缘强度),例:2×2 最大池化(步长 = 2)将特征图尺寸减半。

平均池化(Average Pooling):取局部区域的平均值(保留整体趋势,常用于网络末尾)。

5. 归一化层(Normalization Layer)

功能:缓解 "内部协变量偏移"(训练中每层输入分布不断变化),加速训练收敛,提升模型稳定性。

代表类型:

批量归一化(Batch Normalization, BN):对每个批次的输入数据进行标准化(均值 = 0,方差 = 1),是目前主流的归一化方法,通常插入在卷积层与激活函数之间。

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

功能:将卷积 / 池化提取的 "局部特征" 转化为 "全局特征",并映射到任务的输出维度(如分类任务的类别数)。

7. 输出层(Output Layer)

功能:根据任务类型输出最终结果,激活函数的选择取决于任务:

分类任务:

二分类:用 Sigmoid 激活,输出单个概率值(0~1);

多分类:用 Softmax 激活,输出每个类别的概率(所有类别概率和为 1)。

回归任务:用线性激活函数(无激活),直接输出连续值(如目标检测中的坐标、图像分割中的像素值)。

注意事项:每一个网络结构不相同,可能会出现很多次卷积,上述只是一个大概流程


常见卷积网络

模型名称 提出年份 核心创新点 关键特点 典型应用场景
LeNet-5 1998 首个实用 CNN 架构,奠定 CNN 基本框架 5 层结构(2 卷积 + 2 池化 + 1 全连接),用于灰度图像 手写数字识别(MNIST 数据集)
AlexNet 2012 首次在 ImageNet 比赛证明 CNN 有效性,引爆深度学习 8 层结构,用 ReLU 激活、重叠池化、Dropout 防过拟合 ImageNet 图像分类(1000 类)
VGGNet 2014 用 "小卷积核(3×3)" 替代大核,加深网络层数 16/19 层结构,参数量大(约 1.38 亿),特征提取能力强 图像分类、特征提取(迁移学习)
GoogLeNet(Inception v1) 2014 提出 "Inception 模块",多尺度特征融合 22 层结构,用 1×1 卷积降维,参数量仅为 VGG 的 1/12 高效图像分类、目标检测
ResNet(残差网络) 2015 引入 "残差连接(Skip Connection)",解决深层网络梯度消失 可实现 152 层深层结构,训练稳定,成为后续模型的基础 图像分类、目标检测、图像分割
DenseNet(密集连接网络) 2016 提出 "密集连接",前所有层与当前层直接连接 特征复用率高,参数量小,抗过拟合能力强 医学图像分析、小样本学习
MobileNet v1 2017 提出 "深度可分离卷积",大幅减少计算量 轻量化架构,计算量仅为 AlexNet 的 1/8,参数量 1/32 移动端 / 嵌入式设备(如手机拍照识别)
EfficientNet 2019 提出 "复合缩放策略"(深度、宽度、分辨率协同缩放) 在相同计算量下,性能远超 ResNet、MobileNet 高效图像分类、工业级计算机视觉任务
相关推荐
盼小辉丶2 小时前
Transformer实战(18)——微调Transformer语言模型进行回归分析
深度学习·语言模型·回归·transformer
格林威3 小时前
机器视觉检测如何使用360 度全景成像镜头进行AI 瑕疵检测
人工智能·深度学习·数码相机·机器学习·计算机视觉·视觉检测·相机
数智顾问3 小时前
从理论到落地:神经网络稀疏化设计构架中网络剪枝的深度实践与创新
神经网络
九章云极AladdinEdu3 小时前
深度学习优化器进化史:从SGD到AdamW的原理与选择
linux·服务器·开发语言·网络·人工智能·深度学习·gpu算力
纪元A梦3 小时前
贪心算法应用:神经网络剪枝详解
神经网络·贪心算法·剪枝
ACEEE12226 小时前
Stanford CS336 | Assignment 2 - FlashAttention-v2 Pytorch & Triotn实现
人工智能·pytorch·python·深度学习·机器学习·nlp·transformer
NG WING YIN6 小时前
Golang關於信件的
开发语言·深度学习·golang
大千AI助手7 小时前
残差:从统计学到深度学习的核心概念
人工智能·深度学习·resnet·统计学·方差分析·残差·残差分析
max5006008 小时前
使用OmniAvatar-14B模型实现照片和文字生成视频的完整指南
图像处理·人工智能·深度学习·算法·音视频