神经网络

神经网络是什么?

  • 定义:受生物神经系统启发,模拟人脑处理信息的计算模型。
  • 组成:由相互连接的神经元构成,通过加权连接传递信息,并用非线性激活函数处理数据。
  • 核心思想:通过训练调整权重,从数据中学习复杂模式与关系。
  • 地位与应用:是机器学习和深度学习的基础,广泛用于图像识别、自然语言处理、语音识别等领域。

神经网络的基本结构?

  1. 整体结构:典型神经网络由输入层、隐藏层、输出层三部分构成。
  2. 输入层:负责接收外部数据,每个节点对应一个输入特征。
  3. 隐藏层:对数据做非线性变换,可包含多层,核心作用是提取数据的高层次特征。
  4. 输出层:生成最终预测结果,节点数随任务变化:
    • 分类任务:节点数 = 类别数
    • 回归任务:通常为 1 个节点

三个重要的概念:

  • 激活函数

    • 核心作用:为神经网络引入非线性特性,使其能够拟合复杂的数据关系。
    • 常见类型:Sigmoid、ReLU、Tanh 等。
  • 权重(Weights)

    • 本质:连接神经元的参数,用于调节输入特征的重要性。
    • 功能:对输入特征加权求和,决定特征对结果的贡献程度;重要特征对应大权重,无关特征对应接近零的权重。
    • 意义:通过调整权重,网络可以学习数据特征的优先级。
  • 偏置(Biases)

    • 本质:常数项,用于调整神经元的激活阈值。
    • 功能:让模型在无输入时也能产生非零输出,提升模型拟合数据的灵活性。
    • 影响:偏置越大,神经元越容易被激活;偏置越小,神经元激活所需的输入信号越强。

感知机和多层感知机是什么?

  • 感知机(Perceptron)

    • 定位:最简单的单层神经网络
    • 组成:输入特征、权重、偏置、阶跃激活函数(输出 0/1)。
    • 公式:y=f(∑wi​xi​+b),f 为阶跃函数。
    • 局限:仅能解决线性可分问题,无法处理非线性数据。
  • 多层感知机(MLP)

    • 定位:由多个感知机层堆叠的前馈神经网络
    • 改进:引入隐藏层非线性激活函数,突破线性可分限制。
    • 特点:信号单向传播(输入→隐藏→输出),无反馈连接,可解决非线性问题。

深度神经网络怎么理解?

  1. 定义:深度神经网络(DNN)是包含 ** 多个隐藏层(≥3 层)** 的神经网络,相比浅层网络更擅长捕捉数据的高层次特征与复杂非线性关系。
  2. 多层结构
    • 不同层负责提取不同粒度的特征:浅层提取边缘、纹理等低级特征,深层提取形状、对象等高级特征
  3. 非线性变换
    • 依赖激活函数引入非线性,否则多层网络会退化为线性模型,无法拟合复杂关系。
  4. 端到端学习
    • 可直接从原始数据中自动学习特征,无需人工设计特征(如图像分类中自动学习边缘、纹理等)。
  5. 表达能力
    • 依据通用近似定理,增加隐藏层和神经元数量后,DNN 理论上可逼近任意复杂函数。

为什么深层神经网络难以训练?

  • 过拟合

    • 问题:模型复杂度过高,拟合训练数据过好,泛化到新数据的能力下降。
    • 解决:正则化(L2、Dropout)、数据增强、早停。
  • 梯度消失 / 爆炸

    • 问题:反向传播时梯度在深层网络中变得极小或极大,导致参数更新失效。
    • 解决:使用 ReLU 激活函数、Batch Normalization 等归一化技术。
  • 计算资源需求高

    • 问题:训练需要大量算力(GPU/TPU),大数据集和复杂模型会拉长训练时间。
  • 可解释性差

    • 问题:内部机制复杂,难以解释模型决策逻辑。
    • 解决:可视化技术(热力图、Grad-CAM)、可解释性模型(注意力机制)。

内部协变量偏移

  1. 核心定义:内部协变量偏移是指深度神经网络训练中,参数更新引发各层输入分布持续变化的现象,且前一层输出分布的变化会传递影响下一层。
  2. 优化难点
    • 输入分布不稳定导致优化过程不稳。
    • 易使 Sigmoid/Tanh 等激活函数进入饱和区,梯度接近零,引发梯度消失,大幅减缓训练速度。
  3. 深层累积效应
    • 深层网络中分布漂移会逐层累积,浅层网络需不断适应深层变化,进一步加剧训练难度。

梯度消失

  • 定义:反向传播中梯度逐层衰减至接近 0,浅层参数更新失效,训练停滞。
  • 本质:梯度依赖链式法则传递,是前层梯度、激活函数导数、权重矩阵的乘积;导数或权重过小会导致梯度累积缩小。
  • 核心原因
    • 激活函数(sigmoid/tanh)饱和区间导数趋近于 0。
    • 权重初始化过小,梯度指数级缩小。
    • 网络过深,梯度多层累积后变得极小。
  • 主要影响
    • 浅层无法学习低级特征,深层梯度传递受阻,训练停滞。
    • 收敛速度大幅减慢。
  • 解决方法
    • 激活函数:使用 ReLU/Leaky ReLU 替代 sigmoid/tanh。
    • 权重初始化:采用 Xavier 或 He 初始化。
    • 归一化:Batch Norm/Layer Norm 稳定输入分布。
    • 残差连接:ResNet 跳跃连接让梯度直接传递。
    • 优化器:使用 Adam/RMSProp 等自适应算法。

梯度爆炸

  • 定义:反向传播中梯度值过度放大,导致权重更新步长过大,模型无法收敛甚至发散。
  • 核心原因
    • 链式法则累积:梯度逐层相乘,若每层梯度 > 1 则指数级增长。
    • 激活函数导数过大,放大梯度。
    • 权重初始化过大,导致梯度值过高。
    • 学习率设置过高,加剧参数更新幅度。
  • 主要表现
    • 损失函数发散(变为 NaN)、参数值极端、模型无法收敛、验证集表现差。
  • 解决方法
    • 梯度裁剪:限制梯度范围或范数,常用于 RNN/Transformer。
    • 激活函数:使用 ReLU/Leaky ReLU/Softplus 等梯度稳定的函数。
    • 权重初始化:采用 Xavier(适用于 Sigmoid/Tanh)或 He(适用于 ReLU)初始化。
    • 归一化技术:Batch Norm/Layer Norm/Weight Norm 稳定梯度。
    • 降低学习率:使用学习率衰减或自适应优化器(Adam/RMSProp)。
    • 正则化:L2 正则化(权重衰减)或 Dropout 限制权重增长。

神经网络更深有什么意义?

  • 深度定义:神经网络的 “深度” 指隐藏层的数量,更深的网络即隐藏层更多。
  • 层次化特征提取
    • 浅层网络:仅能学习简单、低级的特征。
    • 深层网络:通过逐层抽象,从低级特征逐步构建高级特征,更适配复杂数据分布。
  • 高效函数逼近(理论支撑)
    • 通用近似定理表明,浅层网络理论上可逼近任意连续函数,但复杂函数需要指数级神经元。
    • 深层网络:通过增加层数,用更少参数高效逼近复杂函数,提升表达效率。

激活函数

为什么需要激活函数?

  • 引入非线性

    • 无激活函数时,多层网络等价于线性模型,只能处理线性可分问题。
    • 激活函数引入非线性,让网络能拟合复杂数据分布,解决更复杂的问题。
  • 控制输出范围

    • 将神经元输出限制在固定区间,便于后续计算与任务适配。
    • 典型例子:Sigmoid → [0,1](概率预测);Tanh → [-1,1](归一化)。
  • 增强表达能力

    • 支持多层堆叠,实现层次化特征提取。
    • 图像任务中:浅层学习边缘 / 纹理等低级特征,深层学习形状 / 对象等高级特征。

为什么激活函数需要是非线性的?

  • 线性激活函数的局限:若使用线性激活函数,多层神经网络的输出等价于输入的线性组合,网络退化为线性回归模型,无法处理复杂问题。
  • 非线性激活函数的价值:引入非线性后,多层网络可通过非线性变换逼近任意复杂函数(依据通用近似定理),从而具备处理复杂数据分布和任务的能力。

常见的激活函数

Sigmoid

  • 公式与特性:Sigmoid 函数将输入压缩到 (0,1) 区间,输出可直接作为概率值。
  • 核心优点:输出范围归一化,天然适合概率类任务。
  • 主要缺点
    • 易引发梯度消失(两端导数趋近于 0,最大梯度仅 0.25)。
    • 输出非零均值,会造成后续层分布偏移,影响训练效率。
  • 适用场景:仅推荐用于二分类输出层浅层小规模网络,不适合深层神经网络。

Tanh

  • 公式与特性

    • 公式:tanh(x)=ex+e−xex−e−x​,等价于 2⋅σ(2x)−1(σ 为 Sigmoid 函数)。
    • 输出范围:(−1,1),以 0 为中心。
  • 核心优点

    • 零均值输出:输出以 0 为中心,避免了 Sigmoid 带来的后续层输入分布偏移问题,更适合中心化数据分布。
  • 主要缺点

    • 梯度消失:输入值极大或极小时,导数趋近于 0,会导致深层网络训练困难;其梯度最大值为 1(出现在 x=0 处)。
  • 适用场景

    • 常用于浅层或中等深度网络的隐藏层,尤其适合输入已归一化(均值为 0、方差为 1)的数据。
    • 早期 RNN 中常用,凭借平滑性和零均值特性表现较好。

Relu

  • 核心定义:ReLU(修正线性单元)函数取输入与 0 的最大值,公式为 f(x)=max(0,x)。
  • 核心优点
    • 解决梯度消失:正区间导数恒为 1,有效缓解深层网络训练中的梯度消失问题。
    • 加速收敛:梯度稳定,计算速度极快(仅判断正负)。
    • 稀疏表达:负区间输出为 0,实现稀疏激活,提升模型效率。
  • 致命缺点
    • 死亡神经元:输入小于 0 时梯度为 0,神经元永久失活,导致表达能力下降。
    • 输出不稳定:无上限且输出非零均值,可能引发数值爆炸或分布偏移。
  • 对比优势:相比 Sigmoid/Tanh,ReLU 在正区间梯度恒定,彻底避开了饱和区导致的梯度弥散问题。

Leaky Relu

  • 核心定义:Leaky ReLU 是 ReLU 的改进版,在负区间引入小斜率 α,公式为 f(x)=max(αx,x)(0<α<1),解决了 ReLU 的 “死亡神经元” 问题。
  • 核心优点
    • 负区间梯度不为 0,避免神经元永久失活,允许负区间神经元继续参与训练。
    • 保留了 ReLU 计算高效、缓解梯度消失、加速收敛的优势。
  • 主要缺点
    • 需手动调参 α,不同任务适配性不同,调参不当会影响效果。
    • 正区间输出仍无上界,且输出非零均值,存在数值不稳定和分布偏移的问题。

SoftPlus

  • 核心定义:Softplus 是 ReLU 的平滑变体,公式为 f(x)=ln(1+ex),在整个定义域内连续可导,解决了 ReLU 在 x=0 处不可导的问题。
  • 核心优点
    • 平滑近似 ReLU,保留其缓解梯度消失的特性。
    • 全定义域可导,优化过程更稳定。
    • 输出恒为正,适合需要正数输出的任务(如方差建模)。
  • 主要缺点
    • 计算开销大(涉及指数与对数运算)。
    • 正区间输出无上界,存在数值不稳定风险。
    • 输出非零均值,可能导致后续层分布偏移。

Softmax

  • 核心定义:Softmax 是多分类任务专用激活函数,将输入 logits 转换为和为 1 的概率分布,公式为 Softmax(zi​)=∑j=1K​ezj​ezi​​。
  • 核心优点
    • 输出为 [0,1] 且和为 1,可直接解释为类别概率。
    • 与交叉熵损失完美配合,衡量分布差异。
    • 适合类别互斥的多分类场景。
  • 主要缺点
    • 计算开销大(指数 + 求和归一化),类别数多时效率低。
    • 对输入尺度敏感,易数值不稳定,指数运算放大差异。
    • 不支持多标签分类(假设类别互斥)。

怎样理解 Relu 是非线性激活函数?

  • 核心逻辑:ReLU 是分段函数,这一特性打破了线性函数的规则,使其具备非线性属性。
  • 分段行为
    • x>0:线性映射,输出等于输入。
    • x≤0:强制截断,输出恒为 0。
  • 非线性本质
    • 线性函数要求连续且平滑,而 ReLU 在 x=0 处发生突变(折点),破坏了线性平滑性。
    • 正区间恒等、负区间归零的 “分段操作”,使得整体输出无法表示为 y=kx+b 的单一线性形式,因此属于非线性激活函数。

损失函数

交叉熵代价函数定义及其求导推导?

  • 核心定义:交叉熵用于衡量真实概率分布模型预测分布之间的差异,是多分类任务的核心损失函数。
  • 单样本公式:H(y,y^​)=−∑i=1K​yi​log(y^​i​),其中真实标签 y 为 one-hot 向量,仅正确类别位置为 1。
  • 计算逻辑
    • 定位真实类别对应的预测概率 y^​。
    • 对 y^​ 取负对数作为惩罚:预测越准(y^​→1)惩罚越小,预测越差(y^​→0)惩罚越大。
  • 批量公式:L=−N1​∑n=1N​∑i=1K​yn,i​log(y^​n,i​),对 N 个样本的损失取平均。
  • 本质作用:放大模型在正确类别上的预测误差,引导模型向提高正确类别概率的方向优化。

前向传播与反向传播?

  • 前向传播

    • 定义:从输入到输出逐层计算,得到预测值,构建计算图。
    • 作用:基于当前参数(权重、偏置)完成一次完整预测,并计算损失。
  • 反向传播

    • 本质:用链式法则从输出层回溯梯度,量化每个参数对损失的影响。
    • 核心步骤:
      1. 计算输出层梯度(依赖损失函数 + 激活函数)。
      2. 逐层向前传递梯度(后层梯度 + 当前层操作导数)。
      3. 计算权重 / 偏置的梯度。
      4. 用优化算法(如梯度下降)更新参数,使损失最小化。
  • 整体关系

    • 前向传播:计算预测与损失,为反向传播提供基础。
    • 反向传播:计算梯度并更新参数,让模型逐步优化。

超参数

  • 定义:超参数是训练前手动设定、非模型自动学习的参数,其取值直接决定模型性能与训练效率。
  • 常见类型:涵盖学习率、批量大小、网络深度(层数 / 神经元数)、正则化系数、迭代次数(Epochs)。
  • 寻优方法
    • 初级:手动调参。
    • 自动化:网格搜索(穷举)、随机搜索。
    • 进阶:启发式 / 贝叶斯搜索等智能方法。
  • 搜索流程
    • 划分训练 / 验证 / 测试集。
    • 训练集优化参数。
    • 验证集搜索超参数。
    • 交替迭代确定最优参数,最终以测试集评估。

Batch_Size

为什么需要 Batch Size?

  • 全批量(Full Batch)

    • 优点:梯度估计准确,反映整体数据分布。
    • 缺点:内存占用大、计算成本极高、训练极慢,不适合大数据集。
  • 单样本(SGD)

    • 优点:计算快,引入随机性易跳出局部最优。
    • 缺点:梯度波动大,更新方向不稳定,易震荡,收敛缓慢且难以找到最优解。
  • 小批量(Mini-batch)

    • 核心价值:是上述两种方案的折中优选
    • 优势:兼顾计算效率(降低成本)与梯度稳定性(减少噪声);在大数据集下,小批量梯度能近似代表全数据集梯度,是深度学习训练的标准方式。

Batch Size 值的选择

  • 方案对比与选择逻辑:Batch Size 的选择核心在于在计算成本梯度稳定性收敛效率之间寻找平衡点。
  • 极端方案 1(Batch Size=1)
    • 特点:单样本更新,波动极大,难以稳定收敛。
    • 适用:仅适合需要强随机性去跳出局部最优的探索性任务,常规训练不推荐。
  • 极端方案 2(Full Batch)
    • 特点:梯度最准确,稳定性最高,但计算量巨大,内存压力大,大数据集下无法执行。
    • 适用:仅适用于极小数据集,实际生产中极少使用。
  • 主流方案(Mini-batch)
    • 特点:折中优选。结合了 SGD 的效率和 Full Batch 的稳定性,梯度噪声适中。
    • 推荐:常规选择范围为 32、64、128 等 2 的幂次数值,是深度学习训练的标准范式。

在合理范围内,增大 Batch Size 的好处

  • 硬件利用率提升:充分利用 GPU 并行计算优势,加速矩阵运算,提升训练硬件的使用效率。
  • 训练时间缩短:单个 epoch 内的迭代步数减少,在相同时间内完成的训练轮次更多,整体训练速度更快。
  • 训练过程更稳定:梯度估计更精准,参数更新方向的波动减小,训练曲线更加平滑,不易震荡,更易收敛到最优解。

盲目增大 Batch Size 的坏处

  • 硬件限制:过大的 Batch Size 会超出 GPU/CPU 内存容量,直接导致程序无法运行。
  • 收敛效率下降:单次参数更新步长变小,需要更多 epoch 才能达到目标精度,反而拖慢整体训练进度。
  • 边际收益递减:当 Batch Size 超过阈值后,梯度方向已足够稳定,继续增大对训练稳定性和收敛效果的改善微乎其微,属于无效投入。

调节 Batch Size 对训练效果的影响

  • Batch Size 过小

    • 梯度噪声大,训练不稳定、误差易飙升。
    • 收敛慢,需要更多迭代才能稳定。
  • 适度增大 Batch Size

    • ✅ 训练速度加快(GPU 并行效率更高)。
    • ⚠️ 单 epoch 迭代次数减少,但达到相同精度需要更多 epoch。
    • ✅ 总训练时间更优,梯度更稳定,收敛精度更高。
  • 过度增大 Batch Size

    • 边际收益递减:梯度方向已足够稳定,继续增大对精度提升有限。
    • 可能反增训练时间,且易超出硬件内存限制。

总结

  • 核心作用:Batch Size 决定梯度更新的样本数,直接影响训练速度、稳定性和最终性能
  • 选择原则
    • 数据集:小数据集可用 Full Batch / 大 Batch;大数据集用 Mini-batch。
    • 硬件:受 GPU 内存限制,不能超过显存上限。
    • 任务:追求快速收敛选小 Batch;追求训练稳定选大 Batch。
  • 不同大小的影响
    • 过小:梯度噪声大,训练震荡,收敛慢。
    • 适中:效率与效果平衡,是工业界主流选择。
    • 过大:显存压力大,梯度更新步长变小,收敛变慢,边际收益递减。
  • 经验与补充
    • 常用值:32/64/128(2 的幂次,利于 GPU 并行)。
    • 调参:通过网格 / 随机搜索找最优值。
    • 梯度特性:小 Batch 梯度噪声大、步长大;大 Batch 梯度平滑、步长小。

归一化

归一化的定义?

  • 定义:归一化是对数据做线性 / 非线性变换,让数据具备统一统计特性,常见形式为范围缩放(如 [0,1])或标准化(均值 0、方差 1)。
  • 核心作用
    • 统一量纲:消除不同特征间的尺度差异,防止大数值特征主导训练。
    • 加速收敛:减少优化震荡,让梯度下降更平稳,训练更快。
    • 稳定数值:避免梯度消失 / 爆炸,降低异常样本干扰。
    • 提升性能:帮助模型更高效地学习数据规律。

为什么要归一化?

  1. 统一量纲:消除不同特征间的尺度差异,让模型公平对待所有特征,避免大数值特征主导训练。
  2. 加速收敛:让数据分布更集中,梯度更新更平稳,减少优化震荡,加快训练速度。
  3. 增强鲁棒性:降低异常 / 噪声样本的影响,提升模型稳定性与泛化能力。
  4. 避免梯度消失:限制输入范围,防止 Sigmoid/Tanh 等激活函数进入饱和区,保持梯度有效更新。
  5. 保证数值稳定:将数据限制在合理区间,避免计算中出现溢出或下溢等数值问题。

为什么归一化能提高求解最优解速度?

  • 平衡特征贡献:统一特征量纲,避免大尺度特征主导梯度更新,消除优化震荡。
  • 优化损失曲面:将扭曲的曲面变平滑、对称,让梯度下降路径更短、更直接。
  • 维持梯度活性:限制输入范围,防止 Sigmoid/Tanh 进入饱和区,确保梯度有效更新。
  • 简化超参数:缩小不同特征的梯度差距,使学习率选择更灵活、调参更简单。
  • 抵抗异常值:平滑数据分布,降低奇异样本对梯度的剧烈冲击,提升训练稳定性与收敛速度。

归一化有哪些类型?

Min-Max 归一化

  • 核心定义:Min-Max 归一化(最小 - 最大缩放)是一种线性变换,将数据映射到 [0, 1] 的固定区间内。
  • 计算公式:x′=max(x)−min(x)x−min(x)​。
  • 致命缺点抗干扰能力差。对异常值(极端值)非常敏感,一旦数据中存在离群点,会导致分母或分子偏移,从而将大部分数据压缩到极窄的范围,失去特征区分度。
  • 适用场景
    • 图像领域:经典的像素值预处理标准(将 0-255 转换为 0-1)。
    • 有限范围激活函数:配合 Sigmoid 等输出限定在 [0,1] 的激活函数使用,保持输入范围一致。

Z-Score 标准化(Standardization)

  • 核心定义:Z-Score 标准化是一种线性变换,将数据转换为均值为 0、方差为 1 的标准正态分布。
  • 计算公式:x′=σx−μ​,其中 μ 是数据均值,σ 是数据标准差。
  • 核心优点
    • 抗异常值能力强:基于均值和方差计算,受极端值影响远小于 Min-Max 归一化。
    • 适配正态分布:最适合数据分布接近正态分布的场景。
    • 深度学习友好:是 Batch Normalization(批归一化)的核心思想基础。
  • 适用场景
    • 数据分布近似正态分布的任务。
    • 深度学习模型训练,尤其配合 BatchNorm 层使用。

Log 归一化

  • 核心原理:利用对数函数 log(x+1) 进行非线性变换,专门处理指数增长长尾分布的数据。
  • 核心优势
    • 压缩动态范围:有效将大范围的数值压缩到一个紧凑的区间内,保留特征层次。
    • 处理长尾:完美适配收入、点击量等 “少数极大值、多数极小值” 的长尾数据,平衡极端值与普通值的差异。
  • 核心局限
    • 定义域限制:仅针对正值数据,通常需加偏移量(如 +1)处理零或负值。
    • 分布压缩:过度压缩可能导致数据分布过度聚拢,丢失部分细节区分度。
  • 典型场景:电商流量、金融收入统计、用户行为分析等存在大量极端值或长尾分布的数据预处理。

L2 归一化

  • 核心定义:L2 归一化是将样本特征向量除以其 L2 范数,使向量长度变为 1(单位向量),仅改变向量长度,不改变方向。
  • 核心优点
    • 适配高维稀疏数据(如文本词频向量)。
    • 保留特征间的相对比例关系,不破坏原始分布结构。
  • 核心缺点
    • 仅缩放向量长度,无法修正数据方向问题。
    • 对异常值敏感,极端值会显著影响范数计算,进而压缩正常数据。
  • 典型场景
    • 文本分类、信息检索中的词频 / TF-IDF 向量预处理。
    • 推荐系统、聚类等依赖向量相似度的高维稀疏数据场景。

Batch Normalization(批量归一化)

什么是批量归一化

  • 核心定义:BN 是深度神经网络中对每一层输入做小批量归一化的技术,目标是稳定各层输入分布。
  • 核心流程
    • 对当前 mini-batch 计算均值 μB​ 和方差 σB2​。
    • 标准化:x^=σB2​+ϵ​x−μB​​,得到均值 0、方差 1 的分布。
    • 可学习变换:y=γx^+β,保留网络表达能力。
  • 核心作用
    • 稳定每一层输入分布,缓解内部协变量偏移
    • 加速训练收敛,允许使用更高学习率。
    • 降低对初始化的敏感,有一定正则化效果。
  • 关键设计:引入可学习参数 γ 和 β,避免纯归一化破坏模型特征表达能力。

批归一化(BN)算法的优点

  • 核心功能:解决内部协变量偏移(Internal Covariate Shift),即稳定网络各层输入分布,让训练更可控。
  • 训练效率
    • 优化路径更平滑、更短,显著加速收敛
    • 由于分布稳定,支持使用更高学习率,进一步提速。
  • 鲁棒性与泛化
    • 降低初始化依赖:不再严格依赖高质量的权重初始化,降低训练门槛。
    • 轻度正则化:小批量采样引入的噪声提供了类似正则化的效果,一定程度抑制过拟合。

批归一化(BN)算法流程

  • 训练阶段核心步骤

    • 按特征维度计算当前 mini-batch 的均值 μB​ 和方差 σB2​。
    • 做 Z-Score 标准化,将数据转为均值 0、方差 1 的分布。
    • 加入可学习参数 γ、β,避免特征表达能力丢失。
  • 测试阶段核心逻辑

    • 不再计算小批量统计量,改用训练时累积的全局移动平均均值 / 方差
    • 保证测试时输入分布与训练时一致,避免分布偏移。
  • 关键设计

    • 按特征维度计算统计量,而非样本维度。
    • 移动平均法平滑噪声,确保测试阶段的统计量稳定可靠。
计算细节
  • 维度差异
    • 全连接网络:在特征维度上做 BN。
    • 卷积网络:在通道维度上做 BN(本质仍是输入的第 2 维)。
  • CNN 计算核心
    • 先展平空间维度,再对每个通道独立计算全局统计量(均值 / 方差)。
    • 逐通道完成标准化 + 可学习变换,保证同通道内分布一致,不同通道保留独立表达。
  • 关键设计
    • 卷积层中,BN 以通道为单位,确保同一通道内所有位置共享相同的均值、方差、γ 和 β,符合卷积的参数共享特性。

Batch Normalization 在什么时候用比较合适?

  • 使用位置(CNN 场景):推荐放在卷积层之后、激活函数之前,保证非线性激活前的输入分布稳定。
  • 问题解决场景
    • 训练收敛极慢、震荡严重时。
    • 出现梯度爆炸 / 消失,导致模型无法训练时。
  • 通用优化场景
    • 日常建模中主动添加 BN,可加速训练、提升最终精度,是深度学习的常规优化手段。

Layer Normalization(层归一化)

什么是层归一化?
  • 核心思想:以单个样本为单位,在其所有特征维度上做归一化,与 batch size 无关。
  • 与 BN 的关键区别
    • BN:依赖 mini-batch,在特征 / 通道维度上统计。
    • LN:不依赖 mini-batch,在单个样本的所有特征维度上统计。
  • 计算流程
    • 单样本内求均值 / 方差 → 标准化 → 可学习变换(γx+β)。
  • 核心优势
    • 不受 batch size 影响,适合小 batch 或 RNN/Transformer 等序列模型。
    • 训练与测试阶段行为一致,无需维护全局统计量。
层归一化算法的优点?
  • 脱离 Batch 限制
    • 单个样本为单位独立统计,完全不依赖 batch_size。完美适配小批量单样本(如在线学习、强化学习)场景,解决了 BN 对 Batch 规模的依赖性问题。
  • 适配动态序列
    • 对输入形状(如序列长度)无严格约束,是 NLP 等动态长度任务(Transformer/RNN)的首选归一化方案。
  • 深层训练更稳
    • 有效抑制内部协变量偏移,在深层网络中也能维持稳定的梯度流,降低训练门槛。
  • 缓解梯度问题
    • 在 RNN 等序列模型中,对隐藏状态归一化,有效缓解梯度消失 / 爆炸,让深层序列训练更可控。
  • 测试流程简洁
    • 无需像 BN 那样维护 / 使用训练期的移动平均统计量,测试阶段的计算逻辑与训练完全一致,无额外分布漂移风险。

预训练与微调 (fine tuning)

为什么无监督预训练可以帮助深度学习?

  • 降低数据依赖:利用海量未标注数据学习通用特征,缓解标注数据稀缺的问题,降低数据获取成本。
  • 提升泛化能力:预训练学习到的通用特征能减少模型在小数据集上的过拟合,让模型更适应下游任务。
  • 稳定深层训练:逐层初始化参数,缓解深层网络的梯度消失问题,让浅层参数也能有效更新,训练更稳定。

什么是模型微调(Fine-tuning)?

  1. 核心定义:在预训练模型的基础上,用目标任务数据进一步训练,把通用特征迁移到特定任务。
  2. 核心思想:复用预训练学到的通用知识,避免从零开始训练,解决小数据集训练难的问题。
  3. 典型流程
    • 加载预训练权重(如 ImageNet 预训练模型)。
    • 替换 / 新增任务相关的输出层。
    • 用目标数据集微调(可冻结部分层,只训练顶层)。
  4. 优势
    • 小数据集也能训练出高性能模型。
    • 训练速度更快,收敛更稳定。
    • 利用预训练的通用特征,提升泛化能力。

微调时网络参数是否更新?

  • 本质区别:微调是 “带初始值的继续训练”,核心差异在初始化,而非是否更新参数。
  • 参数更新:微调时参数一定会根据下游任务数据的梯度进行更新,只是更新幅度可通过学习率、冻结层等方式控制。
  • 核心逻辑:复用预训练的通用特征,同时让模型适配新任务,因此必须更新参数。

Fine-tuning 模型的三种状态

  • 状态一(零训练):直接复用预训练模型,不做任何参数更新,仅用于与预训练任务完全一致的场景。
  • 状态二(部分训练):冻结底层特征提取层,只训练顶层分类头,适合任务相似但类别不同的场景,资源消耗小、训练快。
  • 状态三(全量训练):解冻所有层,全局微调,适合任务差异大的场景,精度更高但成本更高。
  • 核心选择逻辑:根据目标任务与预训练任务的相似度,决定训练范围:相似度越高,训练范围越小;相似度越低,越需要全量微调。

权重初始化

为什么需要权重初始化以及它的相关方法?

  • 核心作用
    • 防止梯度消失 / 爆炸,稳定训练。
    • 加速收敛,让每层分布更平稳。
    • 打破对称性,保证神经元能学习到不同特征。
  • 主流方法对比

    表格

    方法 核心思想 适配激活函数
    随机初始化 小范围随机赋值 通用(但效果不稳定)
    Xavier 初始化 依据输入 / 输出维度控制方差 Sigmoid、Tanh
    He 初始化 专为 ReLU 类激活优化 ReLU、LeakyReLU
  • 选择逻辑:激活函数决定初始化方法 ——Sigmoid/Tanh 用 Xavier,ReLU 用 He,避免分布偏移导致训练失效。

学习率

  • 核心定义:学习率是控制梯度下降中参数更新步长的超参数,是深度学习中最重要的超参数之一。
  • 极端情况的风险
    • 过大:步长太长,导致参数在最优解附近震荡,无法收敛甚至发散。
    • 过小:步长太短,导致收敛极慢,且容易停在局部最优(而非全局最优),消耗大量计算资源。
  • 双重作用
    • 初期:提供大步长,快速逼近最优解(提升速度)。
    • 后期:提供小步长,精细搜索最优值(提升精度)。
  • 调参核心:合理的学习率策略(如学习率衰减)是平衡训练速度与模型精度的关键。

学习率调整策略

  • 固定学习率:最简单但不灵活,难以兼顾速度与精度,现在很少单独使用。
  • 学习率衰减:核心思想是 “先快后慢”,通过逐步降低步长平衡收敛速度与精度,适合大多数场景。
  • 自适应算法:自动为不同参数分配学习率,减少调参成本,Adam 是工业界主流选择。
  • 学习率预热:解决深层 / 大 batch 训练初期不稳定问题,先小步试探再大步前进。
  • 周期性学习率:通过周期波动跳出局部最优,适合需要精细探索解空间的复杂任务。

如何选择合适的学习率?

  • 经验起步:先从小值(0.001/0.01)试探,再用学习率范围测试找到损失下降最快的区间,是最实用的手动调参方法。
  • 自动化辅助:用网格搜索、随机搜索或贝叶斯优化等工具,自动遍历 / 采样候选值,减少人工试错成本。
  • 算法适配
    • SGD 对大学习率更耐受,可从稍大的值开始。
    • Adam 自适应调整,通常搭配更小的初始学习率(0.001 是经典默认)。
  • 核心逻辑:先粗定位合适区间,再精细调优,同时匹配优化器特性,平衡收敛速度与稳定性。

梯度下降算法

定义

  • 核心定义:梯度下降是最小化目标函数(如损失函数)的迭代优化算法,是深度学习参数优化的基础。
  • 核心思想:沿梯度反方向更新参数,因为梯度指向函数增长最快的方向,反方向则是函数下降最快的方向,以此逐步逼近最小值。
  • 更新公式:W=W−η⋅∇L,其中 η 是学习率,∇L 是损失函数对参数的梯度。
  • 关键要点
    • 梯度方向:决定参数更新的方向,确保目标函数值减小。
    • 学习率:控制每次更新的步长,步长过大易发散,步长过小则收敛慢。
    • 迭代过程:通过多次迭代,让损失函数持续下降,最终收敛到最优解。

梯度下降的常见变体

批量梯度下降(Batch Gradient Descent, BGD)

  • 核心逻辑:BGD 是最基础的梯度下降形式,每一步都基于全量数据计算梯度,保证更新方向的全局准确性。
  • 优势:梯度无噪声,更新方向稳定,能可靠收敛到全局最优(凸问题)或局部最优(非凸问题)。
  • 局限:计算开销与数据集大小成正比,内存占用高,不适合大规模数据训练,在实际深度学习中很少直接使用。

随机梯度下降(Stochastic Gradient Descent, SGD)

  • 核心定义:SGD 是梯度下降的轻量化变体,每次仅用单个样本估算梯度并更新参数,而非全量数据。
  • 核心优势
    • 单样本计算,训练速度极快,内存占用极低。
    • 梯度噪声带来的随机性,能帮助模型跳出局部最优,更易探索到更好的解。
  • 核心劣势
    • 梯度估计噪声大,参数更新方向不稳定,训练过程会震荡。
    • 收敛路径曲折,需要更多迭代次数才能稳定收敛。

小批量梯度下降(Mini-batch Gradient Descent, MBGD)

  • 核心定义:MBGD 是实际深度学习训练中最常用的梯度下降方式,每次迭代使用固定大小的小批量样本计算梯度,平衡了计算效率与参数更新的稳定性。
  • 核心优势
    • 折中方案:避免了 BGD 全量数据的高计算成本,同时解决了 SGD 单样本噪声过大、震荡严重的问题。
    • 硬件适配:完美适配 GPU 并行计算,大幅提升训练效率。
  • 核心劣势
    • 超参数敏感:批量大小(Batch Size)是关键超参数,需要根据模型、数据和硬件条件仔细调参。Batch Size 过大易导致过拟合、泛化能力差,过小则训练不稳定。

Adagrad (Adaptive Gradient Algorithm)

  • 核心思想:为每个参数维护独立的学习率,根据参数更新频率动态调整 —— 频繁更新的参数降学习率,稀疏更新的参数保持高学习率。
  • 核心优势
    • 自适应分配学习率,对稀疏特征友好(如 NLP、推荐系统)。
    • 自动调整,免去手动学习率衰减的麻烦。
  • 核心缺陷
    • 梯度平方会无限累积,导致后期学习率无限趋近于 0,训练提前停滞。
  • 适用场景:适合处理稀疏数据,但在长期训练任务中需谨慎使用,或选择其改进版(如 RMSProp、Adam)。

RMSProp (Root Mean Square Propagation)

  • 核心改进:在 Adagrad 基础上,用指数加权移动平均替代梯度平方的简单累加,实现对旧梯度的 “遗忘”,避免学习率过早衰减到 0。
  • 核心优势
    • 自适应分配学习率,保留了对稀疏数据的友好性。
    • 更关注近期梯度,能快速适应目标函数的变化,训练后期仍能有效更新参数。
  • 核心逻辑:通过 β 控制历史梯度的保留程度,让模型在稳定收敛和快速响应新梯度之间取得平衡。
  • 定位:是 Adagrad 的重要改进版,也是 Adam 算法的核心组成部分之一,在序列模型(如 RNN、Transformer)中表现出色。
RMSProp 如何利用最新梯度变化?
  • 核心机制:通过指数加权移动平均实现 “遗忘旧梯度、关注新梯度”,让梯度更新更贴近当前损失曲面的变化。
  • 波动适应:能快速响应梯度的剧烈波动,克服历史梯度累积带来的滞后,让训练更稳定。
  • 区域适配
    • 陡峭区域:自动降低学习率,防止步长过大。
    • 平坦区域:维持合理学习率,避免收敛过慢。
  • 优势:在非平稳、高度非线性的损失曲面中,比 Adagrad 更灵活,训练后期仍能有效更新参数。

动量法

  • 机制:用动量项 vt​ 累积历史梯度,相当于给参数更新 “加惯性”,让更新方向更平滑、更稳定。
  • 两大作用
    • 平滑震荡:抵消梯度噪声和高曲率带来的剧烈波动,让训练更稳定。
    • 加速收敛:在梯度方向一致时,累积动量快速推进,尤其适合平坦区域的优化。
  • 直观理解:像小球下坡时的惯性,会沿着一致方向加速,同时避免在坑洼处剧烈弹跳。

Adam (Adaptive Moment Estimation)

  • 核心思想

    1. 继承动量法的惯性特性:通过累积梯度的一阶矩(均值),让参数更新更平滑,加速收敛并减少震荡。
    2. 继承RMSProp的自适应学习率特性:通过累积梯度的二阶矩(平方的指数加权平均),为每个参数动态调整学习率,适配不同参数的更新频率。
  • 直观优势

    • 兼具动量法的加速收敛能力自适应学习率的灵活性,在大多数任务(CV、NLP 等)中表现稳定且高效。
    • 对超参数不敏感,默认超参数(如学习率 0.001、β₁=0.9、β₂=0.999)通常能取得不错效果,是工业界首选的优化器。

正则化

权重衰减(L2 正则化)

  • 核心目标:通过限制模型参数的大小,降低模型复杂度,防止过拟合,提升泛化能力。
  • 实现方式:在损失函数中加入惩罚项,训练时同时最小化原始损失与惩罚项,迫使权重趋向更小、更平滑的值。
  • 关键作用
    • 惩罚大权重,避免模型过度学习训练数据中的噪声与异常值。
    • 在数据量有限时,约束模型复杂度,减少过拟合风险。
    • 让模型学习数据的通用规律,而非记忆训练样本的特定模式。
  • L1 vs L2 差异

    表格

    类型 惩罚项 效果 适用场景
    L1 参数绝对值之和 生成稀疏权重(部分权重为 0) 特征选择、剔除无用特征
    L2 参数平方之和 权重整体缩小、更平滑 稳定训练、提升泛化(即权重衰减)

Dropout 正则化

  • 核心机制:训练时随机丢弃神经元(概率 p),测试时保留所有神经元并缩放输出,实现结构层面的正则化。
  • 两大作用
    • 打破神经元共适应,避免学习训练数据的特殊模式,让特征更通用。
    • 等价于集成大量子网络,降低模型方差,提升泛化稳定性。
  • 与 L2 正则化的区别
    • L2 正则化:约束参数大小,属于参数层面的正则化。
    • Dropout:动态调整网络结构,属于结构层面的正则化。
    • 两者互补,可联合使用增强正则化效果。

评估指标

准确率

  • 核心定义:准确率 = 预测正确样本数 / 总样本数,是最直观的全局正确性指标。
  • 关键局限
    • 类别不平衡场景下失效:高准确率可能掩盖对少数类的预测失败,无法反映真实业务效果。
    • 缺乏类别粒度信息:无法区分不同类别的预测表现,无法定位模型在某类上的短板。
  • 适用场景:仅适合类别分布均衡、且对各类别表现无特殊要求的场景;否则需结合精确率、召回率、F1 分数等更细粒度的指标。

精确率(Precision)

  1. 核心含义:精确率关注「预测为正的样本里,有多少是真的正样本」,反映模型 “不误判” 的能力。
  2. 公式拆解
  • 分子:真正例(TP)—— 预测正且实际为正的样本。
  • 分母:所有被预测为正的样本(TP + FP),即真正例 + 假正例。
  1. 典型场景:在垃圾邮件检测、疾病筛查等场景中,精确率高意味着 “误将正常邮件标为垃圾”“误将健康人判为患病” 的概率更低。

召回率(Recall)

  1. 核心含义:召回率关注「所有实际为正的样本里,有多少被模型找出来了」,反映模型 “不漏判” 的能力。
  2. 公式拆解
  • 分子:真正例(TP)—— 预测正且实际为正的样本。
  • 分母:所有实际为正的样本(TP + FN),即真正例 + 假负例。
  1. 典型场景:在疾病筛查、危险品检测等场景中,召回率高意味着 “漏诊”“漏检” 的概率更低,避免造成严重后果。

F1 分数

  • 本质:F1 分数是精确率与召回率的调和平均,目的是平衡两者的表现,避免单一指标过高而另一项过低。
  • 关键特性
    • 取值在 0~1 之间,越接近 1 代表模型综合性能越好。
    • 对 “偏科” 敏感:精确率或召回率任意一项过低,都会拉低 F1 分数,强制模型兼顾 “不误判” 和 “不漏判”。
  • 适用场景:需要同时保证 “预测准确” 和 “覆盖全面” 的任务,例如:
    • 疾病诊断:既不能误诊(高精确率),也不能漏诊(高召回率)。
    • 信息检索:既不能返回无关结果(高精确率),也不能漏掉相关内容(高召回率)。
  • 调和平均的意义:相比算术平均,调和平均更 “惩罚” 低值,能有效约束两个指标同时保持较高水平。

卷积神经网络(CNN)

是什么?

  • 核心定位:CNN 是处理图像等网格数据的专用深度学习模型,本质是通过局部感受野 + 权重共享高效提取视觉特征。
  • 三大核心优势
    • 参数共享:避免全连接网络的参数爆炸,让模型更轻量、易训练。
    • 稀疏连接:聚焦局部信息,符合视觉皮层的工作原理,计算效率更高。
    • 平移不变性:物体在图像中移动时,CNN 仍能稳定识别,提升模型泛化能力。
  • 典型应用:图像分类、目标检测、语义分割、人脸识别等计算机视觉任务。

基本结构

  • 核心结构分层:输入层 → 卷积层 → 激活函数 → 池化层 →(重复堆叠)→ 全连接层 → 输出层,逐层抽象特征。
  • 关键组件作用
    • 卷积层:提取局部视觉特征,通过参数共享减少计算量。
    • 池化层:下采样降维,增强模型对缩放、平移的鲁棒性。
    • 激活函数:引入非线性,让网络能拟合复杂模式。
    • 全连接层:将高维特征映射到任务输出(分类 / 回归)。
  • 流程本质:从像素级输入出发,通过 “卷积 - 激活 - 池化” 的重复操作,逐步从边缘、纹理等低级特征,抽象出物体、场景等高级语义特征。

卷积神经网络的特点

  • 四大核心特点
    • 局部感受野:聚焦局部信息,符合人类视觉感知逻辑。
    • 参数共享:复用权重,解决全连接网络的参数爆炸问题。
    • 层次化特征:从低级到高级逐层抽象特征,自动学习视觉模式。
    • 平移不变性:对小范围平移不敏感,增强模型对位置变化的鲁棒性。
  • 核心价值:CNN 通过这四大机制,在图像任务中实现了高效计算 + 自动特征学习 + 强泛化能力,成为计算机视觉的基础模型。

卷积在图像中的直观作用

  • 层次化特征提取:卷积操作是分层递进的,从低级到高级逐步抽象图像信息:
    • 浅层卷积:提取最基础的视觉特征,如边缘、轮廓。
    • 中层卷积:组合边缘特征,形成局部结构特征(如纹理、简单形状)。
    • 深层卷积:进一步组合局部特征,提取全局语义特征(如完整物体、场景)。
  • 直观图像处理效果:特定卷积核可直接实现经典图像处理效果:
    • 边缘检测:突出图像中的轮廓与边界。
    • 锐化:增强图像细节与对比度。
    • 模糊:平滑图像、抑制噪声。
  • 本质:卷积的核心作用是自动学习并提取图像特征,从像素级原始信息逐步抽象为高级语义信息,为后续图像分类、检测等任务奠定基础。

卷积层的基本参数

  • 核心分类:卷积层参数分为控制结构的超参数(输入 / 输出通道、卷积核大小、步幅、填充)和学习特征的参数(权重、偏置)。
  • 尺寸控制:通过PaddingStride精确调控输出特征图的尺寸,Same Padding + Stride=1可保持输入输出尺寸一致。
  • 效率与效果平衡:3×3 卷积核 + 小步幅是主流选择,既能减少参数量,又能高效提取细粒度特征。
  • 可学习性:权重和偏置是模型在训练中自动优化的部分,决定了最终能提取到的特征质量。

卷积计算过程

  • 计算流程:卷积的本质是「滑动窗口 + 逐元素乘 + 累加和」,多通道场景下先逐通道计算再融合。
  • 尺寸控制:输出特征图的尺寸由输入尺寸、卷积核大小、步幅、填充共同决定。
  • 多通道逻辑:通道间独立卷积、最后求和,既实现了信息融合,又通过权重共享降低了模型复杂度。
  • 核心价值:在保留局部特征的同时,高效压缩了多通道信息,是 CNN 高效处理图像数据的关键。

池化方法

  • 核心目标:池化的本质是下采样降维,在保留关键特征的同时压缩特征图尺寸,提升计算效率和模型鲁棒性。
  • 常见池化对比

    表格

    池化类型 核心计算 特点与适用场景
    最大池化 取局部最大值 突出显著特征,抗噪声,适合边缘检测
    平均池化 取局部平均值 平滑特征,关注整体,适合纹理提取
    全局池化 对整张图池化 替代全连接层,减少参数,防过拟合
    自适应池化 动态调整窗口 自动适配输入尺寸,无需手动调参
  • 关键价值:全局池化和自适应池化进一步简化了模型结构,让 CNN 更灵活、更易于训练和部署。

1×1 卷积的作用

  • 核心本质:1×1 卷积是通道维度的全连接 + 参数共享,在不改变空间分辨率的前提下,高效完成通道变换与信息融合。
  • 四大核心作用
    • ✅ 跨通道信息融合:实现通道间的线性交互。
    • ✅ 降维:压缩通道数,降低计算复杂度。
    • ✅ 升维:扩展通道维度,增强特征表达。
    • ✅ 替代全连接层:保留空间信息,减少参数量。
  • 关键优势:相比全连接层,1×1 卷积通过参数共享局部连接,在保证特征学习能力的同时,大幅提升计算效率与泛化性能。

卷积层和池化层主要区别

  • 核心功能差异
    • 卷积层是特征提取器:主动学习权重,从输入中挖掘边缘、纹理等局部特征,可调整通道数。
    • 池化层是下采样压缩器:固定操作(最大 / 平均等),只缩小特征图尺寸,不改变通道数,也无参数学习。
  • 参数与计算差异
    • 卷积层有可学习权重,参与反向传播优化。
    • 池化层无参数,是静态的降维操作,计算更高效。
  • 直观类比
    • 卷积层 = 放大镜:聚焦细节,提取特征。
    • 池化层 = 压缩器:缩小尺寸,保留关键信息。

卷积核大小的影响

  • 感受野与特征粒度
    • 大卷积核 → 大感受野 → 全局特征,但参数多、计算重。
    • 小卷积核 → 小感受野 → 局部细节,更灵活高效。
  • 效率与效果平衡
    • 小卷积核堆叠可等效大卷积核的感受野,同时引入更多非线性、减少参数量,是更优的工程选择。
  • 核心原则:卷积核大小是感受野、计算成本、过拟合风险的权衡,优先用小卷积核堆叠实现全局特征,避免直接使用大卷积核。

每层卷积是否只能用一种尺寸的卷积核?

  • 核心结论:CNN 允许同一层 / 不同层使用多尺寸卷积核,核心目标是提取多尺度特征
  • 同一层多尺度(Inception 思路)
    • 并行多尺寸卷积 + 池化,拼接输出,同时捕捉局部与全局上下文。
  • 跨层差异化设计
    • 浅层:大卷积核 → 抓全局轮廓。
    • 深层:小卷积核 → 抓局部细节。
  • 工程价值:多尺度卷积让模型更灵活,能适应不同任务的特征需求,同时保持计算效率。

提高卷积神经网络泛化能力的方法

  • 核心目标:让模型在未知数据上表现稳定,避免过拟合 / 欠拟合。
  • 方法分类
    • 数据层面:数据增强、预处理、扩充数据集 → 让数据更丰富、分布更均衡。
    • 模型层面:正则化(L2/Dropout/BN)、Early Stopping → 约束模型复杂度,防止过拟合。
    • 训练层面:学习率调度、交叉验证 → 优化训练过程,评估模型稳定性。
    • 集成层面:模型融合、快照集成 → 组合多个模型,提升整体鲁棒性。
  • 实践逻辑:优先用数据增强 + 正则化控制过拟合,再通过学习率调度 + 集成学习进一步提升泛化能力,同时保证数据质量与规模。

卷积神经网络凸显共性的方法

  • 核心机制
    • 局部连接:限制神经元感受野,聚焦局部特征,减少参数量。
    • 权重共享:复用卷积核参数,进一步压缩模型规模,保证特征提取的位置无关性。
    • 池化操作:下采样降维,逐层抽象特征,实现全局共性表达。
  • 本质价值:三大机制协同作用,用极少的参数实现高效特征提取,既保证了模型性能,又降低了训练复杂度,是 CNN 能高效处理图像等网格数据的关键。

经典卷积神经网络模型

LeNet

  • 历史地位:LeNet 是早期卷积神经网络的经典代表,专为 MNIST 手写数字识别任务设计,奠定了 CNN 的基础架构。
  • 典型结构:遵循 “卷积层 + 池化层” 重复堆叠 后接 全连接层 的经典流程。
  • 设计特点
    • 输入输出:处理 28×28 小尺寸图像,输出 10 分类结果。
    • 通道变化:从 1(输入)→ 6 → 16,逐步增加通道数提升特征表达。
    • 尺寸变化:通过卷积和池化交替,将图像尺寸从 28×28 逐步压缩。
  • 范式意义:展示了如何通过 “卷积 - 激活 - 池化” 的组合,高效提取局部特征,是后续所有深度卷积网络(如 AlexNet、VGG)的设计原型。

AlexNet

  • 历史地位:AlexNet 是首个在大规模图像数据集(ImageNet)上取得成功的深度 CNN,标志着深度学习时代的到来。
  • 结构升级:在 LeNet 基础上大幅加深网络,从 2 个卷积层扩展到 5 个,适配更复杂的图像分类任务。
  • 关键创新
    • 激活函数:用 ReLU 替代 Sigmoid,缓解梯度消失,训练更深网络。
    • 正则化:引入 Dropout,比传统权重衰减更有效防止过拟合。
    • 数据层面:使用数据增强扩充训练集,提升模型对不同输入的鲁棒性。
  • 影响:AlexNet 证明了深度卷积网络在大规模视觉任务上的潜力,为后续 VGG、ResNet 等模型奠定了基础。

VGG

  • 核心思想:用小卷积核堆叠替代大卷积核,在保持等效感受野的同时,减少参数量、增加非线性、提升表达能力。
  • 模块化设计:引入 “卷积块” 概念,让网络结构更简洁、可复用,为后续 ResNet、Inception 等模型的模块化设计奠定基础。
  • 设计结论:证明了 “更深 + 小卷积核” 的架构比 “更浅 + 大卷积核” 更高效,推动了卷积网络向更深方向发展。

NiN

  • 核心创新:用 1×1 卷积实现逐像素全连接(MLP),在不改变空间分辨率的前提下,极大增强特征的非线性表达能力。
  • 结构革命
    • 取消全连接层,用全局平均池化直接映射到类别输出,避免全连接层带来的大量参数与过拟合风险。
  • 影响:NiN 是 “逐像素全连接 + 全局平均池化” 思想的先驱,为后续轻量化、高效 CNN 设计提供了重要思路。

GoogleNet

  • 核心创新:提出 Inception 多分支模块,并行使用不同尺度卷积核,实现多尺度特征提取
  • 效率平衡:用 1×1 卷积降维,在提升表达能力的同时,控制模型复杂度与计算量。
  • 设计思想:让网络自适应选择最优特征尺度,避免人工限定卷积核大小的局限,为后续轻量化网络设计提供了新思路。

ResNet(残差网络)

深度神经网络的退化问题

  • 核心问题:网络退化 —— 深度超过阈值后,性能不升反降,根源是梯度不稳定、优化困难、恒等映射难学习。
  • 设计目标:ResNet 要解决 “加深网络反而变差” 的矛盾,让模型在层数提升时,至少能维持与浅层网络相当的性能。
  • 本质思路:通过残差结构让网络轻松学习恒等映射,避免退化,为训练极深网络(如 ResNet-152)铺平道路。

残差连接为什么有利于恒等映射?

  • 核心思想:将 “学习恒等映射 H(x)=x” 转化为 “学习残差 F(x)=0”,大幅降低优化难度。
  • 梯度保障:加法跳接让梯度至少为 1,从根本上缓解深层网络的梯度消失问题。
  • 灵活退化防护:冗余层可通过跳接直接绕过,保证加深网络时性能至少不劣于浅层。
  • 本质价值:残差连接让极深网络(如 ResNet-152)的训练成为可能,解决了深度 CNN 的退化难题。

输入输出维度不一致怎么办?

  • 核心问题:残差加法 H(x)=F(x)+x 要求 F(x) 与 x 必须维度完全一致,否则无法相加。
  • 空间维度适配:通过线性映射(如池化、卷积 + 填充)调整特征图尺寸。
  • 通道维度适配:用 1×1 卷积高效调整通道数,不改变空间尺寸,实现升维 / 降维。
  • 本质:通过对跳接路径 x 做轻量线性变换,保证维度对齐,让残差连接正常工作。

瓶颈结构(Bottleneck)

  • 核心设计:通过 1×1 卷积 “先降维、再升维”,在保持特征表达能力的同时,压缩中间计算量。
  • 适用场景:专为深层 ResNet(≥50 层)设计,解决深度网络计算量大、训练困难的问题。
  • 效率优势:相比普通残差块,瓶颈块用更少的参数和计算量,实现了相近甚至更好的特征提取效果。
  • 本质:是 “1×1 卷积降维” 思想在残差网络中的经典应用,是高效训练深度 CNN 的关键工程技巧。

使用全局平均池化替代全连接层

传统方法:全连接层
  • 传统全连接层的问题
    • 参数多 → 过拟合风险高;
    • 展平操作 → 丢失空间结构信息。
  • ResNet 的改进思路
    • 借鉴 NiN,用全局平均池化替代全连接层,在保留空间信息的同时大幅减少参数量,提升泛化能力。
全局平均池化(GAP)
  • 核心操作:对每个通道做全局平均,把 H×W×C 的特征图压缩为 1×1×C 的向量,保留通道维度信息。
  • 优势
    • 避免了传统全连接层的庞大参数,大幅减少过拟合风险。
    • 保留了特征图的空间全局信息,没有展平操作带来的信息丢失。
    • 结构更轻量,泛化能力更强。
  • 本质:用 “通道级全局平均” 替代 “全连接层映射”,是高效、轻量化 CNN 的经典设计。
全局平均池化(GAP)的优点

核心优势

  • 参数更少:消除全连接层的庞大参数,模型更轻量化。
  • 更难过拟合:低复杂度设计,在小数据集上更稳定。
  • 信息更完整:不展平,保留空间与通道维度信息。
  • 鲁棒性更强:对图像平移、缩放等几何变换更不敏感。

张量、向量、矩阵的关系

  • 层级关系:标量(0 维)⊂ 向量(1 维)⊂ 矩阵(2 维)⊂ 张量(任意维)。
  • 深度学习视角
    • 图像是 3 维张量(高度 × 宽度 × 通道数)。
    • 批量图像是 4 维张量(批量大小 × 高度 × 宽度 × 通道数)。
    • 张量是框架中流动的基本数据单元,兼容所有维度的特征表示。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐