一、卷积神经网络(CNN)基础

1.1 为什么需要深度学习

全连接网络存在以下核心缺陷,无法有效处理高维图像数据:

  • 参数爆炸:输入1000×1000图像且隐含层有1M节点时,输入到隐含层的参数数量达到10¹²量级
  • 计算缓慢:海量参数导致训练和推理速度极慢
  • 难以收敛:优化过程容易陷入局部极小值
  • 过拟合严重:过多参数容易记住训练数据的噪声,泛化能力差

解决思路:

  • 局部连接:每个神经元只与上一层的少数神经元连接
  • 分层特征提取:模拟人类视觉系统,从低级特征(边缘、纹理)逐步提取高级特征(物体、场景)

1.2 深度学习平台简介

主流深度学习平台对比:

平台 发布者 支持语言 易用性 大规模训练能力 定位
PyTorch Facebook Python/C++ ★★★★ 优秀 学术研究首选
TensorFlow Google Python/C++/Java ★★★ 优秀 工业部署广泛
Keras Google Python ★★★★★ 一般 入门友好
PaddlePaddle 百度 Python ★★★ 良好 中文生态完善
MindSpore 华为 Python ★★★ 良好 昇腾硬件适配

目前PyTorch因其动态图机制和易用性,已成为学术界的主流选择,约80%的研究采用PyTorch。

1.3 CNN核心概念

1.3.1 卷积(Convolution)

卷积是CNN的核心操作,通过滑动卷积核提取局部特征,实现权值共享(同一卷积核在整个特征图上共享参数),大幅减少参数数量。

关键参数:

  • 卷积核大小:常用3×3、5×5等,小卷积核堆叠可等效于大卷积核且参数更少
  • 填充(Padding):在特征图边界填充0或复制像素,保持输出尺寸不变
  • 步长(Stride):卷积核滑动的间隔,步长越大输出尺寸越小
  • 多通道卷积:输入为多通道(如RGB)时,每个通道对应一个卷积核,结果相加得到输出通道
1.3.2 池化(Pooling)

池化层用于降维增加感受野,同时保留主要特征,减少计算量和过拟合风险。

  • 平均池化:取窗口内所有值的平均值,保留整体背景信息
  • 最大池化:取窗口内的最大值,更常用,能有效保留纹理和边缘信息
1.3.3 误差反向传播

CNN的反向传播与全连接网络类似,但需要针对卷积和池化层做特殊处理:

  • 池化层反向传播
    • 平均池化:误差平均分配到前一层对应窗口的所有位置
    • 最大池化:误差只回传到前一层窗口中最大值的位置,其余位置为0
  • 卷积层反向传播:将卷积核上下左右翻转后,与误差图进行卷积操作,得到前一层的误差

1.4 经典CNN网络

1.4.1 LeNet-5(1998)
  • 提出者:Yann LeCun等
  • 用途:手写数字识别(MNIST数据集)
  • 结构:输入(28×28灰度) → C1(5×5卷积,6通道) → S2(2×2平均池化) → C3(5×5卷积,16通道) → S4(2×2平均池化) → C5(5×5卷积,120通道) → F6(全连接,84神经元) → 输出层(10类,RBF)
  • 参数数量:约6万
  • 特点:无填充、平均池化、Sigmoid/Tanh激活函数、层数较浅
1.4.2 AlexNet(2012)
  • 提出者:Alex Krizhevsky等
  • 成就:ILSVRC-2012图像分类冠军,top-5错误率17.0%,标志着深度学习时代的到来
  • 结构:5个卷积层 + 3个全连接层
  • 参数数量:约6000万
  • 核心改进
    • 使用ReLU激活函数,解决Sigmoid的梯度消失问题
    • 采用最大池化,提升特征提取能力
    • 引入Dropout,减少过拟合
    • 使用数据增强(随机裁剪、水平翻转、颜色抖动)
    • 双GPU并行训练
1.4.3 VGG-16(2014)
  • 提出者:牛津大学Visual Geometry Group
  • 结构:13个卷积层 + 3个全连接层
  • 参数数量:约1.38亿
  • 核心特点
    • 全部使用3×3卷积核,多个小卷积核堆叠等效于大卷积核,同时减少参数
    • 结构极其规整:"2-3个卷积层 + 1个池化层"的重复堆叠
    • 特征图尺寸减半时,通道数翻倍,保持每层计算复杂度相近
1.4.4 残差网络(ResNet,2015)
  • 解决问题:深层网络的梯度消失问题(普通网络层数增加时,训练误差反而上升)
  • 核心创新:残差块(Residual Block),通过**捷径连接(Shortcut Connection)**将输入直接加到输出上
    • 残差映射:( H(x) = F(x) + x ),其中( F(x) )是网络需要学习的残差
    • 当( F(x)=0 )时,网络退化为恒等映射,保证深层网络至少不劣于浅层网络
  • 常用版本:ResNet-18、ResNet-34、ResNet-50、ResNet-101、ResNet-152
  • 优势:可以训练数百层甚至上千层的深度网络,显著提升模型精度

二、深度学习视觉应用

2.1 常用视觉数据集

数据集 规模 图像尺寸 类别数 主要用途 核心特点
MNIST 6万训练/1万测试 28×28灰度 10(手写数字) 入门分类任务 简单、经典、易训练
Fashion-MNIST 6万训练/1万测试 28×28灰度 10(服饰类) 替代MNIST 难度略高,更贴近实际应用
CIFAR-10 5万训练/1万测试 32×32彩色 10(飞机、汽车等) 中等难度分类 小尺寸彩色图像
PASCAL VOC2012 11540张训练验证 可变 20(人、动物、交通工具等) 分类、检测、分割 标注质量高,经典基准
MS COCO 33万+张,20万+标注 可变 80 检测、分割、关键点 复杂日常场景,150万+实例,当前最权威基准
ImageNet 1400万+张 可变 21841 大规模预训练 最大的图像分类数据集,ILSVRC竞赛基础

2.2 任务评价指标

2.2.1 混淆矩阵
预测为正例 预测为负例
真实为正例 TP(真正例) FN(假负例)
真实为负例 FP(假正例) TN(真负例)
2.2.2 核心指标
  • 精确率(Precision, P):( P = \frac{TP}{TP+FP} ),表示预测为正例的样本中实际为正例的比例,衡量模型的"挑剔程度"
  • 召回率(Recall, R):( R = \frac{TP}{TP+FN} ),表示实际为正例的样本中被正确预测的比例,衡量模型的"查全能力"
  • 准确率(Accuracy):( Acc = \frac{TP+TN}{TP+FP+FN+TN} ),表示所有样本中被正确预测的比例
  • P-R曲线:以召回率为横轴,精确率为纵轴绘制的曲线,反映不同阈值下模型的性能
  • 平均精度(AP):P-R曲线下的面积,综合衡量模型在所有召回率下的精确率
  • 平均精度均值(mAP):所有类别AP的平均值,是目标检测任务的核心评价指标

2.3 主要视觉任务简介

2.3.1 目标检测
  • 任务定义:在图像中找到所有目标物体的位置(边界框)并识别其类别
  • 发展历程:R-CNN → SPP-Net → Fast R-CNN → Faster R-CNN → YOLO系列
  • 代表方法:YOLO(You Only Look Once),将目标检测转化为回归问题,速度快,适合实时应用
2.3.2 语义分割
  • 任务定义:对图像中的每个像素进行分类,标注其所属的物体类别
  • 经典方法
    • FCN(全卷积网络):第一个端到端的语义分割网络,将全连接层替换为卷积层
    • DeepLab v3:当前广泛使用的语义分割方法,引入空洞卷积和空间金字塔池化,提升分割精度
Logo

作为“人工智能6S店”的官方数字引擎,为AI开发者与企业提供一个覆盖软硬件全栈、一站式门户。

更多推荐