多层感知机2-模型选择、欠拟合和过拟合学习笔记
机器学习的目标是发现某些模式,这些模式能捕捉到训练集潜在总体的规律;若做到了这点,对从未遇到过的个体,利用这些模式也可以进行评估风险。如何发现可泛化的模式是机器学习的根本问题。过拟合:一个模型出现在训练集数据上拟合程度高,而在测试集(新数据)上的拟合能力差的现象称为过拟合(overfitting)。当训练误差明显低于验证误差即表明出现了严重的过拟合。用于对抗过拟合的技术称为正则化(regularization)。一、训练误差和泛化误差训练误差(training error):模型在训练数据集上计算得到的误差。泛化误差(generalization error):模型应用在同样从原始样本的分布中抽取的无限多数据样本时,模型误差的期望值。问题是,泛化误差无法准确地计算。因为无限多数据样本是一个虚拟对象。在实际中,通过将模型应用于一个独立的测试集来估计泛化误差,该测试集由随机选取的、未曾在训练集中出现的数据样本构成。二、模型选择模型复杂性:对于神经网络,通常将需要更多训练迭代的模型视为复杂的,而需要早停(early stopping)的模型-即较少训练迭代周期, 就不那么复杂。统计学家认为,能够轻松解释任意事实的模型是复杂的,而表达能力有限但仍能很好地解释数据的模型可能更有现实用途。模型选择:在机器学习中,通过评估几个候选模型后选择最终的模型。这个过程叫做模型选择。有时,需要进行比较的模型在本质上是完全不同的(如决策树与线性模型)。又有时,需要比较不同的超参数设置下的同一类模型。K折交叉验证:将原始训练数据分成K个不重叠的子集;然后执行K次模型训练和验证,每次在K−1个子集上进行训练,并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证;最后,通过对K次实验的结果取平均来估计训练和验证误差。欠拟合:若一个模型不能降低训练误差,这可能意味着模型过于简单(即表达能力不足),无法捕获试图学习的模式;同时训练误差和验证误差之间的泛化误差很小;此时可以用一个更复杂的模型以降低训练误差。这种现象被称为欠拟合(underfitting)。模型过拟合和欠拟合评估:是否过拟合或欠拟合可能取决于模型复杂性和可用训练数据集的大小。如下图所示,模型越复杂训练误差将越小,但是泛化误差反而变大,因此在模型选择时,须同时平衡训练误差和泛化误差以提高模型的可用性。训练数据集中的样本过小,训练出来的模型可能出现严重的过拟合。对于许多任务,深度学习只有在有数千个训练样本时才优于线性模型。三、权重衰减(Weight Decay)权重衰减是一种正则化技术,通过给损失函数增加模型权重L2范数的惩罚(penalty)来让模型权重不要太大,以减小模型的复杂度,实现抑制模型的过拟合而提高模型的泛化性的目的。数据扰动:训练数据点距离真实模型的偏离程度就是数据扰动。正则化的目标是减小方差或是说减小数据扰动所造成的影响。权重衰减的具体公式如下:其中,L_0是原损失函数;λ是一个超参,负责控制权重衰减的强弱;||W||^2为模型参数的L2范数的平方。从上面的公式,可得到如下结论:模型的权重越大,Loss就会越大;λ越大,权重衰减的就越厉害;若λ过大,将导致原Loss的占比较低,最终使模型效果变差。权重衰减的注意事项:权重衰减实际效果并不理想,尤其是当模型很复杂时,权重衰退的效果可能会更小;权重系数λ通常取1e-3;权重衰退通常不对bias做;权重衰减取值越大,对抑制模型的强度越大。但这并不说明越大越好,太大的话,可能会导致模型欠拟合。四、暂退法(Dropout)扰动的稳健性:函数不应该对其输入的微小变化敏感。在训练过程中,计算后续层之前向网络的每一层注入噪声。暂退法在前向传播过程中,计算每一内部层的同时注入噪声,这已经成为训练神经网络的常用技术。这种方法之所以被称为暂退法,主要是在训练过程中丢弃(drop out)一些神经元。在标准暂退法 正则化中,通过按保留的节点的分数进行规范化来消除每一层的偏差。换言之,每个中间活性值h以暂退概率p由随机变量h ′替换,如下所示:根据此模型的设计,其期望值保持不变,即E[h′] = h。来源:檐苔