正则化与特征缩减技术

在机器学习的概述中就提到过,我们可以划分训练集、验证集、测试集避免在训练过程中的过拟合影响了我们对模型的评价,这种策略的目的是避免了训练对测试集的影响,但是并没有真正解决过拟合这个问题,所以其实就这样做,仍然有可能对验证集过拟合,然后在测试集测试的效果不好,那这时候,我们应该怎么改进模型,难道重新训练吗,可是重新训练我们又再怎么确定训练多少次数。

为了解决过拟合这个问题,必须从根本上进行分析,为什么会出现过拟合,回到模型的层面,什么叫训练模型,其实就是一次次的迭代,让损失函数不断下降,最简单的例子,一个近似线性的数据集,我们最初训练出来的模型是一条直线,慢慢的它会有点弯曲,因为它认为弯曲一点可以更好地拟合数据,这时候是正确的,可是如果我们不停止模型,继续训练,它的形状就可能越来越奇怪,越来越复杂,变成一大团,甚至说变成一条能够穿过所有点的曲线,这样损失函数当然最少了,可是并没有意义,因为它的泛化能力一定是很差的,从这个过程看来,过拟合,其实也可以认为是模型企图拟合所有数据而导致结构变得过于复杂。

既然过拟合可以看成模型过于复杂,那么我们是不是可以追求一种平衡,既能够使得模型能更好地拟合数据,也使得模型的结构不会过于复杂,这就是正则化做的事情了,具体来说,就是在原来的损失函数上引入正则项,我们最小化损失函数,就必须同时考虑最小化损失,和最小化模型复杂度了。

具体怎么定义损失项,这就涉及到怎么定义模型复杂度。模型复杂度可以理解为模型假设空间的大小,高维模型、多节点的树模型,这些模型可能的函数值更多,假设空间更大,模型更复杂。或者说,想象一下,一个很复杂的函数,它的图像也是很复杂的,主要表现在变化幅度很大,这样,当我们把模型限制在一个相同的区间内,复杂模型的假设空间(或者说模型覆盖的空间)就会比简单模型更大。因此,从这个角度来说,或许用模型的变化幅度来衡量模型的复杂度是一个可行的办法。

模型的变化幅度,实际上就是模型各个参数的权重,权重越大,自然参数的微小变化都会导致模型结果的巨大改变,从这个角度来看,一个复杂模型对新数据预测过程中,对误差的包容度是更小的,或者说一个小小的误差在复杂模型下也会被明显的放大,这也正是过拟合的模型泛化能力差的原因。因此,用参数权重来衡量模型复杂度是可行的。

说了那么多,其实就是希望把模型复杂度和模型的权重联系上,事实上正则化往往有L1正则化(Lasso)和L2正则化(岭回归)。所谓L1L2其实指的是范数。

Lasso是指,将系数的L1范数(各个系数的绝对值之和),作为惩罚项加到损失函数上面,Lasso的基本思想是在回归系数的绝对值小于一个常数的约束下,是残差平方和最小化,从而能够产生某些严格等于0的回归系数。

岭回归指将系数的L2范数(各个系数的平方和)作为惩罚项添加到损失函数中,由于L2惩罚项中的系数是二次方的,导致了L2和L1有一些区别,比如L2正则化会让系数的取值变得平均,对于关联特征,这意味着他们能够获得更接近的系数。举个例子,比如Y=X1+X2,X1和X2具有很强的关联,那么用L1正则化,不论学习到的模型是Y=X1+X2还是Y=2X1,都是2,可是对于L2正则化,第一个是2,第二个是4,这就反映了L2和L1的不同取向。

简单介绍一下他们的区别,首先应为绝对值的缘故,L2正则化计算是比L1正则化简单很多的,而L1在非稀疏向量的计算效率也很低;L1最重要的一个特点是会输出稀疏,会把不重要的特征直接置0,而L2则不会;L2有唯一解,L1不是。

最后想讲一下正则化与特征选择的关系,一般来说,我们是会偏向于用尽可能少的特征构建尽可能好的模型,主要是避免特征之间关联性较大,过多特征造成过拟合等问题,所以在特征工程我们会想办法选择最好的一个特征子集。而这里的正则化,目的是避免模型过于复杂,减少部分影响不明显的参数的权重,其实和剔除无关特征是一个道理,特征对应的参数趋于0,和特征被去除是一样的,所以,L1L2正则化在特征缩减技术中也有介绍,说到底还是同一个东西,同一个目的,只是换个名词,这种现象在机器学习中太常见了,主要是这些模型其实在不同领域都会被应用到,自然不同领域就有不同叫法了。

想浏览更多关于数学、机器学习、深度学习的内容,可浏览本人博客

### 回答1: 正则化是一种广泛应用于统计学、机器学习和数据科学领域的技术,它可以减少模型过拟合的可能性,提高模型的泛化能力。在 MATLAB 中,有几个可供选择的正则化工具,包括正则化线性回归、LASSO、弹性网络以及带约束的优化问题,这些工具可以帮助用户根据数据和实际问题选择最合适的正则化方法。 其中,正则化线性回归是一种基本的正则化方法,它通过在成本函数中添加罚项来约束模型的参数。这种方法可以有效地减少过拟合,同时保持较高的预测性能。 LASSO 是另一种常用的正则化方法, 它不仅可以降低过拟合的风险,同时还可以进行特征选择,从而减少模型中不必要的特征。弹性网络是结合 LASSO 和 Ridge 正则化的一种方法,可以平衡两种方法的优劣之处,得到更加优秀的模型。 除了上述方法之外,MATLAB 还提供了一些带约束的优化工具(如 quadprog、fmincon 等),可以用于特征选择、缩减模型参数、解决非凸问题等问题。 然而,需要注意的是,不同的正则化方法适用于不同的数据场景和问题类型,所以在实践中,需要根据具体需求选择最合适的正则化方法,谨慎使用并进行调优,以达到理想的效果。 ### 回答2: Matlab的正则化工具是一种广泛应用于数据挖掘及模型优化的算法,通常用于降低过拟合的风险和提高模型预测的准确性。正则化是一种对模型进行约束的技术,通过约束模型参数的范数,使得模型在拟合数据的同时保持尽可能的简单和通用性,从而使得模型的泛化能力得到提升。 Matlab中常用的正则化方法包括岭回归(Ridge Regression)、Lasso回归(Lasso Regression)和弹性网络(Elastic Net)等。岭回归是最早提出的一种正则化方法,通过增加一个L2正则项来控制模型的复杂度。Lasso回归则是通过增加一个L1正则项来实现变量的选择和模型的简化。弹性网络则是将L1和L2正则项结合起来使用,综合了两种正则化方法的优点。 在Matlab中,用户可以通过调用内置的正则化函数或使用第三方包来实现正则化的功能。Matlab内置的正则化函数包括lasso、ridge、elasticnet等,用户只需要设置好相应的参数即可开始训练模型。同时,Matlab还提供了强大的数据可视化工具,帮助用户分析模型的性能和预测结果,方便进行后续优化和调整。 总之,正则化是一种重要的机器学习技术,在Matlab中得到广泛应用。通过结合正则化方法和Matlab提供的工具,用户可以构建高效、准确和鲁棒的模型,为机器学习领域的发展和应用提供了重要的支持。 ### 回答3: 正则化是一种机器学习的技术,它可以帮助我们在模型训练过程中避免过拟合的现象。MATLAB提供了多种正则化工具,其中包括L1范数正则化、L2范数正则化和弹性网络正则化等。 使用MATLAB进行正则化,我们首先需要定义一个适合我们数据的损失函数和模型。然后,我们可以使用MATLAB内置的优化算法来最小化该函数。这些算法包括坚定子梯度算法、共轭梯度算法和拟牛顿算法等。使用这些算法可以最小化我们定义的代价函数,从而找到一个更好的模型。 在进行正则化时,我们可以根据不同类型的正则化方法选择不同的权重。L1正则化优先考虑模型的不同部分,将不相关的参数权重等于零,从而实现稀疏性选择。而L2正则化,则通过约束所有的参数权重使其保持较小的值,从而优先考虑模型的整体性能。弹性网络正则化则将L1正则化和L2正则化的优点结合起来。 总之,MATLAB提供了丰富的正则化工具,帮助我们避免过拟合,增加模型的泛化性能。使用这些工具,我们可以更加高效地进行机器学习,得到更加鲁棒性强的模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值