欢迎大家来到IT世界,在知识的湖畔探索吧!
1、过拟合与欠拟合的区别是什么,什么是正则化?
不同曲线,对于样本的表达能力,各不相同,上图的几根曲线中:
曲线1,使用一阶曲线,即直线模型,过于简单,出现大量的错误分类,此时的误差较大,模型欠拟合。
曲线2,使用高阶曲线,几乎是完美的完成拟合任务,但如此严格的模型,当新的样本与训练样本稍有不同,极有可能出现误判,此时模型过拟合。
而曲线3,一条相对平滑的曲线,基本能完成拟合任务,同时对于个别噪点也没那么敏感。是一个较为理想的模型。
欠拟合指的是模型不能够再训练集上获得足够低的训练误差,往往由于特征维度过少,导致拟合的函数无法满足训练集,导致误差较大。
过拟合指的是模型训练误差与测试误差之间差距过大;具体来说就是模型在训练集上训练过度,导致泛化能力过差。
所有为了减少测试误差的策略统称为正则化方法,不过代价可能是增大训练误差。
2、解决欠拟合的方法有哪些
降低欠拟合风险主要有以下3类方法。
- 加入新的特征,对于深度学习来讲就可以利用因子分解机、子编码器等。
- 增加模型复杂度,对于线性模型来说可以增加高次项,对于深度学习来讲可以增加网络层数、神经元个数。
- 减小正则化项的系数,从而提高模型的学习能力。
3、防止过拟合的方法主要有哪些
1.正则化
正则化包含L1正则化、L2正则化、混合L1与L2正则化。
L1正则化目的是减少参数的绝对值总和,定义为:
L2正则化目的是减少参数平方的总和,定义为:
**混合L1与L2**正则化是希望能够调节L1正则化与L2正则化,定义为:
因为最优的参数值很大概率出现在坐标轴上,这样就会导致某一维的权重为0,产生稀疏权重矩阵。而L2正则化的最优的参数值很小概率出现在坐标轴上,因此每一维的参数都不会是0。
所以由于L1正则化导致参数趋近于0,因此它常用于特征选择设置中。而机器学习中最常用的正则化方法是对权重施加L2范数约束。
L1正则化与L2正则化还有个重要区别就是L1正则化可通过假设权重w的先验分布为拉普拉斯分布,由最大后验概率估计导出。L2正则化可通过假设权重w的先验分布为高斯分布,由最大后验概率估计导出。
2.Batch Normalization
Batch Normalization是一种深度学习中减少泛化误差的正则化方法,主要是通过缓解梯度下降加速网络的训练,防止过拟合,降低了参数初始化的要求。
由于训练数据与测试数据分布不同会降低模型的泛化能力。因此,应该在开始训练前对数据进行归一化处理。因为神经网络每层的参数不同,每一批数据的分布也会改变,从而导致每次迭代都会去拟合不同的数据分布,增大过拟合的风险。
Batch Normalization会针对每一批数据在输入前进行归一化处理,目的是为了使得输入数据均值为0,标准差为1。这样就能将数据限制在统一的分布下。
3.Dropout
Dropout是避免神经网络过拟合的技巧来实现的。Dropout并不会改变网络,他会对神经元做随机删减,从而使得网络复杂度降低,有效的防止过拟合。
具体表现为:每一次迭代都删除一部分隐层单元,直至训练结束。
运用Dropout相当于训练了非常多的仅有部分隐层单元的神经网络,每个网络都会给出一个结果,随着训练的进行,大部分网络都会给出正确的结果。
4.迭代截断
迭代截断主要是在迭代中记录准确值,当达到最佳准确率的时候就截断训练。
5.交叉验证
K-flod交叉验证是把训练样本分成k份,在验证时,依次选取每一份样本作为验证集,每次实验中,使用此过程在验证集合上取得最佳性能的迭代次数,并选择恰当的参数。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/70538.html