赞
踩
指模型的训练误差与测试误差(泛化误差)之间差距过大,也就是训练数据误差渐渐减小,可验证集上的误差却渐渐增大,在新数据上的表现一般(泛化能力差)。
训练初期,训练不足,学习器的拟合能力不强,偏差大。充分训练后,学习器拟合能力强,训练数据的轻微扰动会导致学习器发生显著变化,产生过拟合。
指模型不能在训练集上获得足够低的训练误差,由于特征维度过少,导致拟合的函数无法满足训练集,导致误差较大。
为了减少测试误差的策略统称为正则化方法,代价可能是增大训练误差。
正则化包括L1正则化、L2正则化、混合L1与L2正则化
L1正则化:
目的是减少各个参数绝对值总和,也被称为参数X向量的L1范数,如果用的是L1正则化,X最终会是稀疏的,得到稀疏的权值,也就是说X向量中有很多0,L1正则先验服从拉普拉斯分布。定义:
对于L1范数,它的优化问题如下:
可以看出,最优的参数值大概率出现在坐标轴上,即对L1优化的解是一个稀疏解, 因此L1范数也被叫做稀疏规则算子。 通过L1可以实现特征的稀疏,去掉一些没有信息的特征,常用于特征选择设置。
L2正则化:
目的是减少各个参数平方的总和的开方,L2正则化是最常见的正则化类型,得到平滑的权值,L2正则先验服从高斯分布,L2是定义:
对于L2正则化的优化,最优的参数值很小概率出现在坐标轴上,因为每一维的向量都不会为0,因此机器学习中,常对权重施加L2范数约束。
Batch Normalization是深度学习中减小泛化误差的正则化方法,主要作用缓解梯度消失酵素网络训练。
dropout不会改变损失函数而是修改网络结构本身。通过对神经网络中的神经元做随机删减,减低网络的复杂度。
dropout具体表现:第一次迭代随机删除一部分隐藏单元,保存输入层和输出层不变,更新神经网络中的权值。第二次迭代也是随机删除一部分隐藏单元,和上次删除的不一样。之后都这样,直至训练结束。
运用dropout相当于训练了多个仅有部分隐藏单元的神经网络,每个这种神经网络,都能给出一个分类结果,有的正确有的错误,随着训练进行,大部分网络都能给出正确的分类结果。
K-fold交叉验证:将原始数据分成K组(一般是均分),进行K次交叉验证过程,将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标。
深度学习中可以利用因子分解机、子编码器等
对于线性模型:增加高次项
对于深度学习:增加网络层数、神经元个数
可以提高模型学习能力
训练不足时:
模型拟合能力不足(数据的扰动不足以使模型产生显著变化),此时偏差主导模型的泛化误差。
训练进行中时:
随着训练的进行,模型拟合能力增强(模型能够学习数据发生的扰动),此时方差逐渐主导模型的泛化误差。
训练充足时:
模型拟合能力过强(数据的轻微扰动都会导致模型产生显著变化),此时发生过拟合,训练数据自身的、非全局的特征也被模型学习了。
yD:实例x在数据集D中的标记(在实际工程中的标签)
y:x的真实标记(该值是理论值,实际工程中一般是不能获得的)
f(x):在训练集D上学得模型f,使用模型f预测x的期望值为f(x)。即:
学习器在训练集上的误差叫“训练误差”或“经验误差”,在新样本上的误差叫“泛化误差”
泛化误差
以回归任务为例, 学习算法的平方预测误差期望为:
方差公式
使用样本数相同的不同训练集产生的方差为:
偏差
期望预测与真实标记的误差称为偏差(bias), 为了方便起见, 我们直接取偏差的平方:
噪声
噪声为真实标记与数据集中的实际标记间的偏差:
泛化误差 = 偏差 + 方差 + 噪声
参考《人工智能程序员面试笔试宝典》猿媛之家,凌峰
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。