1. 卷积神经网络基础

1.1. 全连接网络的问题

  • 参数过多:例如输入 1000×1000 图像,隐含层 1M 节点,参数数量达 10^12。

  • 计算慢、难收敛:容易陷入局部极小值,过拟合严重。

  • 解决思路

    • 局部连接(卷积操作)减少参数。

    • 分层处理信息,逐层提取更高级特征(模仿人类视觉系统)。

1.2. 深度学习平台与PyTorch基础

PyTorch:研究领域使用最广(约80%),支持动态图,易用性强。

PyTorch 基本概念:

  • 张量(Tensor):高维数组,类似于 NumPy 的 ndarray。

  • 计算图(Computational Graph):节点为操作,边为张量流动。

  • Dataset / DataLoader:读取样本和标签。

  • Variable:存储权重等参数(旧版,现已被 Tensor 替代)。

1.3. 卷积神经网络基础

核心思想:

  • 局部连接 + 权值共享 → 减少参数数量。

  • 卷积操作提取空间特征(如边缘、纹理)。

基本操作:

  • 卷积:卷积核与输入图像进行点乘和滑动。

  • 填充(Padding):保持尺寸,常用0填充。

  • 步长(Stride):控制卷积核滑动步幅。

  • 多通道卷积:如RGB三个通道,每个通道有独立卷积核。

池化(Pooling):

  • 最大池化、平均池化,减少特征图尺寸,增强平移不变性。

典型结构:

输入 → 卷积 → 激活 → 池化 → ... → 全连接 → 输出

1.4. 误差反向传播(BP) in CNN

关键推导:

  • 卷积层的误差传递:依赖于下一层的误差和卷积核。

  • 池化层的误差传递:

    • 最大池化:误差传递到最大值位置。

    • 平均池化:误差均分传递。

BP 步骤总结:

  1. 计算输出层误差\delta{L}

  2. 从后向前逐层传播误差:

    • 池化层:上采样误差图

    • 卷积层:卷积转置操作传播误差

  3. 更新权重:\Delta w = \alpha \cdot \delta \cdot 输入激活值

1.5. 经典卷积网络结构

1.5.1. LeNet-5(1998)

  • 输入:32×32 灰度图

  • 结构:

    • C1:6个5×5卷积核 → 28×28

    • S2:平均池化 → 14×14

    • C3:16个5×5卷积核 → 10×10

    • S4:平均池化 → 5×5

    • C5:120个5×5卷积核 → 1×1

    • F6:84个神经元

    • 输出:10个RBF单元

  • 参数总数:约6万

  • 特点:无填充,使用sigmoid/tanh激活函数

1.5.2. AlexNet(2012)

  • 改进:

    • 使用ReLU激活函数

    • Dropout防止过拟合

    • 最大池化

    • 双GPU训练

  • 参数:约6000万

  • 结构:5个卷积层 + 3个全连接层

1.5.3. VGG-16(2014)

  • 特点:

    • 全部使用3×3卷积核

    • 网络结构规整,深度达16层

  • 参数:约1.38亿

  • 规律:特征图尺寸减半,通道数翻倍

1.5.4. 残差网络(ResNet)

  • 动机:深层网络梯度消失问题

  • 解决方案:引入“跳跃连接”,将浅层输出直接加到深层输出

  • 残差块结构:

    输入 → 卷积 → 激活 → 卷积 → 输出 + 输入 → 激活
  • 典型深度:ResNet-34、50、101、152

  • FLOPs 比 VGG 更少,性能更好

2. 深度学习视觉应用

2.1. 常用数据集

2.1.1. MNIST

  • 内容:手写数字 0~9,灰度图,尺寸 28×28

  • 规模:训练集 60,000 张,测试集 10,000 张

  • 文件:包含图像和标签共 4 个文件

  • 变体:Fashion-MNIST(商品图片,格式与 MNIST 完全一致,便于替换)

2.1.2. CIFAR-10

  • 内容:10 类彩色图像(飞机、汽车、鸟、猫等),尺寸 32×32

  • 规模:60,000 张(50,000 训练 + 10,000 测试),每类 6,000 张

2.1.3. PASCAL VOC

  • 全称:Pattern Analysis, Statistical Modelling and Computational Learning – Visual Object Classes

  • 活跃时间:2005~2012 年,常用 VOC 2012

  • 任务:目标分类、检测、分割

  • 类别数:20 类(人、车、动物、家具等)

  • 标注格式:每张图像对应一个 XML 文件,包含目标位置和类别

2.1.4. MS COCO

  • 全称:Microsoft Common Objects in Context

  • 特点:复杂日常场景,以 scene understanding 为目标

  • 规模:33 万张图片,其中 20 万张有标注,个体超 150 万个

  • 类别:80 类(人、交通工具、动物、餐具、电子产品等)

  • 地位:ImageNet 停办后,COCO 竞赛成为目标检测/分割领域的权威标杆

2.1.5. ImageNet

  • 提出:李飞飞团队,2009 年

  • 规模:14,197,122 张图像,21,841 个类别

  • 标注框图像数:约 100 万张

  • ImageNet-21K:1400 万张图,21,000 类,常用于预训练

2.2. 评价指标

2.2.1. 混淆矩阵与基础指标

真实\预测 正例(1) 负例(0)
正例(1) TP FN
负例(0) FP TN
  • 精确率(Precision) = TP / (TP + FP) —— “找得对不对”

  • 召回率(Recall) = TP / (TP + FN) —— “找得全不全”

  • 准确率(Accuracy) = (TP + TN) / (TP + TN + FP + FN)

2.2.2. 置信度与阈值

  • 改变置信度阈值 → 改变 Precision 和 Recall

  • 阈值越高 → 系统更“挑剔”,Precision 高,Recall 低

  • 阈值越低 → 系统更“宽松”,Recall 高,Precision 低

2.2.3. P-R 曲线

  • 横轴:Recall,纵轴:Precision

  • 曲线越靠近右上角,性能越好

  • 通常 Precision 和 Recall 相互制约

2.2.4. 平均精度(AP)

  • 定义:P-R 曲线下的面积

  • 计算公式

    AP = \sum_{k=1}^{N} P(k) \cdot \Delta r(k)

    其中P(k)为识别出 k 个图像时的 Precision,\Delta r(k)为 Recall 的变化量

  • AP 越高,模型在该类别上的性能越好

2.2.5. mAP(Mean Average Precision)

  • 对所有类别的 AP 取平均值

  • 目标检测任务中最常用的综合指标

2.3. 目标检测与 YOLO

2.3.1. 目标检测发展简史(为 YOLO 做铺垫)

  • R-CNN:候选区域 + CNN 分类(慢)

  • SPP-Net:空间金字塔池化,加速特征提取

  • Fast R-CNN:共享卷积,整图输入

  • Faster R-CNN:引入 RPN(区域建议网络),端到端

  • YOLO:将检测视为回归问题,单次前向即可输出位置和类别

2.3.2. YOLO 基本思想

  • You Only Look Once:无需候选区域,直接预测边界框和类别概率

  • 核心步骤

    1. 将图像划分为 S×S 网格

    2. 每个网格预测 B 个边界框(含位置、置信度)和 C 个类别概率

    3. 使用非极大值抑制(NMS)去除重复框

  • 优点:速度快,适合实时检测

  • 损失函数:包含位置误差、置信度误差、分类误差

2.4. 语义分割

2.4.1. FCN(Fully Convolutional Network)

  • 核心思想:将全连接层替换为卷积层,接受任意尺寸输入,输出与输入同尺寸的逐像素类别

  • 结构:下采样(编码器) + 上采样(转置卷积/反卷积) + 跳跃连接(融合浅层细节)

  • 意义:开创了端到端像素级分类的方法

2.4.2. DeepLab 系列

  • DeepLab v3+ 是目前广泛使用的语义分割模型

  • 关键技术

    • 空洞卷积(Atrous Convolution):扩大感受野而不增加参数量

    • 空间金字塔池化(ASPP):多尺度特征提取

    • 编码器-解码器结构

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐