一、为什么要深度学习
- 全连接网络问题
- 参数过多,计算速度慢,难以收敛,易进入局部极小值且容易过拟合。例如输入为 1000×1000 图像,隐含层有 1M 个节点时,输入到隐含层的参数数量级可达 1×10¹²。
- 解决方法是减少权值连接,采用局部连接网络,让每个节点只连到上一层的少数神经元。
- 深度学习的思路
- 受人类信息分层处理的启发,每一层在上层提取特征的基础上进行再处理,得到更高级别的特征。
二、卷积神经网络基础
- 深度学习典型任务
- 包括图像分类、目标定位、目标检测、语义分割、实例分割、关键点检测等。
- 深度学习网络架构的进化史
- 从 1998 年的 LeNet 到 2021 年的各种先进网络如 YOLOX、LeViT 等,网络架构不断创新发展,以提高性能和效率。
- 卷积神经网络的基本概念
- 特征提取 :人类视觉感知会先对原始图像进行不同方向的滤波(卷积),卷积操作可提取图像特征。
- 局部连接网络 :只有一部分权值连接,部分输入和权值卷积,与全连接网络相比减少了参数数量。
- 填充(Padding) :在矩阵边界填充值以增加矩阵大小,常用 0 填充或复制边界像素填充。
- 步长(Stride) :控制卷积核在输入数据上的移动步长,影响输出特征图的尺寸。
- 多通道卷积 :如 RGB 图像的卷积,每个通道对应一个卷积核,最后将各通道卷积结果相加得到输出特征图。
- 池化(Pooling) :利用局部统计特征如均值或最大值,减少特征数量,降低计算量和过拟合风险,常见的池化方式有最大池化和平均池化。
- 卷积神经网络结构
- 由多个卷积层和下采样层构成,后面可连接全连接网络,卷积层用于特征提取,下采样层用于降维和特征融合。
- 学习算法
- 前向传播和误差反向传播算法,详细的数学公式描述了各层之间的计算关系以及误差的反向传播更新权重的过程。
三、LeNet-5 网络
- 网络介绍
- 由 Yann Lechun 等人提出,用于文档识别,是最早的卷积神经网络之一。
- 结构详解
- 包括 C1、S2、C3、S4、C5、F6 等层,其中 C 表示卷积层,S 表示下采样层,F 表示全连接层。
- C1 层有 6 个 Feature map,每个神经元对输入进行 5×5 卷积。
- S2 层是 Pooling 层,采用平均池化。
- C3 层是卷积层,输入为 S2 层的输出。
- S4 层与 S2 层工作相同,进行下采样。
- C5 层是卷积层,与 S4 层全连接,有 120 个神经元。
- F6 层是全连接层,有 84 个神经元。
- 输出层由欧式径向基函数单元构成,每类一个单元,计算输入向量和参数向量之间的欧式距离。
- 网络说明
- 与现代网络相比,LeNet-5 卷积时不进行填充,池化层选用平均池化而非最大池化,选用 Sigmoid 或 tanh 而非 ReLU 作为非线性环节激活函数,且层数较浅,参数数量小,约为 6 万。
四、AlexNet
- 网络介绍
- 网络提出 :由 Alex Krizhevsky 等人提出,在 ImageNet LSVRC-2010 竞赛中取得了很好的成绩。
- 网络结构 :有 5 层卷积层和 3 层全连接层,采用最大池化、ReLU 激活函数等改进措施,网络规模扩大,参数数量接近 6000 万。
- 改进之处 :池化层采用最大池化,选用 ReLU 作为非线性环节激活函数,网络规模扩大,出现 “多个卷积层 + 一个池化层” 的结构,输入样本采用随机裁剪、水平翻转等数据增强方法,激活函数采用 ReLU 替代 Tan Sigmoid,使用 Dropout 技术防止过拟合,采用双 GPU 策略进行训练。