目录
- 泛化:由具体的、个别的扩大为一般的,在深度学习中指在训练集上训练的模型能够较好地应用在测试集。
- 如何发现可以泛化的模式是机器学习的根本问题, 只有当模型真正发现了一种泛化模式时,才会作出有效的预测。
1. 训练误差和泛化误差
- 训练误差:模型在训练数据集上计算得到的误差。
- 泛化误差:模型应用在同样从原始样本的分布中抽取的无限多数据样本时,模型误差的期望。
由于不能基于训练误差来估计泛化误差,因此简单地最小化训练误差并不一定意味着泛化误差的减小。
机器学习模型需要注意防止过拟合,即防止泛化误差过大。
2. 过拟合和欠拟合
-
过拟合:将模型在训练数据上拟合的比在潜在分布中更接近的现象称为过拟合, 用于对抗过拟合的技术称为正则化。
-
欠拟合:训练误差和验证误差都很严重, 但它们之间仅有一点差距。 如果模型不能降低训练误差,这可能意味着模型过于简单(即表达能力不足), 无法捕获试图学习的模式。
欠拟合是指模型无法继续减少训练误差。过拟合是指训练误差远小于验证误差。
验证集可以用于模型选择,但不能过于随意地使用它。
3.验证集
- 原则上,在我们确定所有的超参数之前,我们不希望用到测试集。
- 如果在模型选择过程中使用测试数据,可能会有过拟合测试数据的风险。
- 如果过拟合了训练数据,还可以在测试数据上的评估来判断过拟合。
- 解决此问题的常见做法是将我们的数据分成三份, 除了训练和测试数据集之外,还增加一个验证数据集,也叫验证集。
验证集可以用于模型选择,但不能过于随意地使用它。
3.1 K折交叉验证
- 原始训练数据被分成K个不重叠的子集。 然后执行K次模型训练和验证,每次在K-1个子集上进行训练, 并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证。
- 最后,通过对K次实验的结果取平均来估计训练和验证误差。
4. 权重衰减
- 正则化是处理过拟合的常用方法:在训练集的损失函数中加入惩罚项,以降低学习到的模型的复杂度。
- 权重衰减是最广泛使用的正则化的技术之一, 它通常也被称为L2正则化。 这项技术通过函数与零的距离来衡量函数的复杂度。
- 根据估计值与观测值之间的差异来更新w。 然而,我们同时也在试图将w的大小缩小到零。 这就是为什么这种方法有时被称为权重衰减。
5. 暂退法(Dropout)
- 暂退法:表面上看是在训练过程中丢弃(drop out)一些神经元。
- 在前向传播过程中,计算每一内部层的同时注入噪声。
- 暂退法仅在训练期间使用。
6. 前向传播和反向传播
- 前向传播在神经网络定义的计算图中按顺序计算和存储中间变量,它的顺序是从输入层到输出层。
- 反向传播按相反的顺序(从输出层到输入层)计算和存储神经网络的中间变量和参数的梯度。
7. 梯度消失和梯度爆炸
- 梯度爆炸: 参数更新过大,破坏了模型的稳定收敛。
- 梯度消失: 参数更新过小,在每次更新时几乎不会移动,导致模型无法学习。
0.9^100 = 0.000026561
1.1^100 = 13780.6123
7.1 Xavier初始化
- 假设层x(j)的输入也具有零均值和方差γ^2, 并且它们独立于w(ij)并且彼此独立。
只需满足:
- Xavier初始化表明,对于每一层,输出的方差不受输入数量的影响,任何梯度的方差不受输出数量的影响。
8.环境和分步偏移
- 在许多情况下,训练集和测试集并不来自同一个分布。这就是所谓的分布偏移。
- 真实风险是从真实分布中抽取的所有数据的总体损失的预期。然而,这个数据总体通常是无法获得的。经验风险是训练数据的平均损失,用于近似真实风险。在实践中,我们进行经验风险最小化。