深度学习训练中模型评估、梯度难题、科学初始化等关键问题,如何逐一攻克?
摘要:要解决模型泛化能力与训练稳定性两大难题,关键在于理解偏差-方差权衡、梯度传播和参数初始化三者间的深层联系。
引言
训练一个神经网络过程中,我们会关注两个问题:
模型能否毫不费力处理应用环境中没见过的数据?
模型能否被有效训练?
第一个问题涉及偏差与方差的权衡,第二个问题涉及梯度传播的稳定性。本文首先探讨偏差与方差,然后分析梯度问题,最后引出解决梯度问题的关键之一——科学的初始化方法。
偏差 & 方差
要理解模型的泛化能力,我们首先要量化它的“泛化误差”,即模型在未知数据上的表现。然而,泛化误差并非一个单一的问题,它源于三种不同性质的错误:模型固有的近似能力不足、对训练数据的过度敏感、模型数据本身的不可约噪声。
偏差 - 方差分解公式
规定:
\(P_{\text{data}}(x,y)\):数据生成分布
\(\mathcal{D}\):从\(P_{\text{data}}\)中独立同分布采样得到的训练数据集
\(f(x;\mathcal{D})\):由训练集 \(\mathcal{D}\) 学得的模型 \(f\) 对 \(x\) 的预测输出。
\(\overline f(x)\):\(\mathbb{E}_{\mathcal{D} \sim P_{\text{data}}^{\otimes n}}[f(x; \mathcal{D})]\),对所有可能训练集的期望
\(\mathbb{E}_{\mathcal{D} \sim P_{\text{data}}^{\otimes n}}[\cdot]\):对训练集采样的期望
有:
\[\mathbb{E}_{y|x} \mathbb{E}_{\mathcal{D}}[(f(x; \mathcal{D}) - y)^2] = \text{Bias}^2(f(x)) + \text{Var}(f(x)) + \sigma_\epsilon^2
\]
其中,
\(\text{Bias}^2(f(x))\):偏差,反映模型拟合能力。设真实函数为 \(h(x) = \mathbb{E}[y|x]\)(条件期望),则偏差应定义为 \((\overline f(x) - h(x))^2\)
\(\text{Var}(f(x))\):方差,反映不同数据集表现波动情况即泛化能力,\(:=\mathbb{E}_\mathcal{D}[(f(x;\mathcal{D})-\overline f(x))^2]\)
\(\sigma_\epsilon ^2\):噪声,反映学习难度,\(:=\mathbb{E}[(y - h(x))^2]\)
这里正好对应两种模型:线性拟合 vs. 神经网络
若线性拟合,模型容量低,并且假设空间简单,即大偏差小方差,泛化误差大,欠拟合。
若复杂度过高的神经网络(如未正则化),会学到训练数据中的噪声,导致在训练数据上表现很好(小偏差),但在未见过的数据上表现波动很大(大方差),泛化误差大,过拟合。
若复杂度适中的神经网络,中等偏差中等方差,泛化误差小,最佳了。
得出结论:偏差大(欠拟合)意味着模型能力不足,未能捕捉数据中的真实模式;方差大(过拟合)意味着模型过于复杂,对训练数据中的噪声和随机波动过度敏感。
影响偏差与方差的三大因素
1. 学习算法能力(模型复杂度)
如果模型欠拟合(偏差大),就换更复杂的模型;如果过拟合(方差大),就换更简单的模型(或对复杂模型做正则化)。
2. 训练数据量
可间接降低偏差,对方差影响大
如果模型过拟合(方差大),优先增加训练数据。
3. 学习任务本身的难度(任务复杂度)
如果任务简单但方差大,就控制模型复杂度或增加数据;如果任务复杂导致偏差大,就提升模型复杂度
处理模型高偏差、高方差的一些方法
欠拟合(高偏差):应该换更复杂的模型、增加特征维数、仔细判断训练误差是否收敛到最低。
过拟合(高方差):应该增加训练数据、正则化(如使用L1正则化、L2正则化(即权重衰减)、Dropout等)、批量归一化、剪枝降复杂度、降低特征维度。
偏差-方差权衡
偏差与方差通常是对立的,提高模型复杂度可以减少偏差,但可能增加方差;反之,降低模型复杂度可以减少方差,但偏差可能会升高。这种权衡关系被称为 偏差-方差权衡(Bias-Variance Tradeoff)
在此我们应该拓展一下,经典理论认为模型复杂度(如参数数量)增加,泛化误差会先因偏差降低而下降,后因方差增大而上升,形成单一的U型曲线。双重下降则揭示了在插值阈值(模型刚好能完美拟合训练数据)后,随着复杂度进一步增加,误差会再次下降,形成“下降-上升-下降”的波浪形曲线。在过参数化区域,模型并非必然过拟合到更差的程度,优化过程会引导其找到一个泛化良好的解。在过参数化体制下,模型好像是先“记忆”(拟合噪声),后通过漫长的优化过程“逐渐获得”泛化规则。
