Machine Learning——Norm regularization(范数正则化L0、L1、L2)

简单介绍下监督机器学习的基本内容与形式化目标函数

监督机器学习:在规范化参数的同时最小化误差。
(1)最小化误差:训练模型,使其尽可能拟合训练数据

(2)规范化参数:防止模型过分拟合训练数据

 

------> 过分拟合:参数太多导致模型的复杂度上升,这时模型队训练数据可很好估计,但对于测试数据误差增大

 

基于监督的机器学习的模型训练目标是使用相对简单的模型测试误差最小化,提升模型整体的泛化能力。其中模型的简单与否就是根据规则化函数来实现的,通过规则化函数还可以约束模型的特性。

 

基于监督学习的目标函数:

  

其中,前一项是样本预测值与真实值之间的误差(最小化误差),后一项是正则化函数约束模型使其尽量简单(规范化参数)。正则化函数有多种,本文主要介绍L0、L1、L2三种。

 

在介绍正则化函数之前,首先解释如下两个问题:

1. 为什么实现参数的稀疏?

        简化模型、避免过拟合;参数变少使模型具有更好的可解释性。

        在很多情况下,一个模型中真正重要的参数并不多,如果考虑所有参数均起作用,这样的模型只拟合了训练数据,对测试数据变得没有泛化能力。

 

2. 为什么参数值越小模型越简单?

        越复杂的模型,越是会尝试对所有样本进行拟合,甚至包含了一些异常样本点,这种模型容易造成在较小的区间里预测值产生较大的波动,这个波动反映在区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,参数值会很大。

 

 

进入三种正则化的大门:

1. L0正则化

 

        L0正则化的值是模型参数中非零参数的个数

 

        使用L0正则可得到稀疏的参数以此来防止过拟合。从直观上看,利用非零参数的稀疏性可以进行特征选择实现特征稀疏。

 

        虽然L0正则优势很明显,但求解困难属于NP问题,因此一般情况下引入L0正则的最近凸优化L1正则(方便求解)来近似求解并同样可实现稀疏效果。

 

 

2. L1正则化(Lasso问题)

 

        L1正则化的值是各个参数的绝对值之和。

 

        L1正则化之所以可以防止过拟合,是因为其范数是参数绝对值之和,而参数大小与模型复杂度成正比,最小化L1范数可降低模型复杂度。

 

 

3. L2正则化(Ridge问题)

        

        L2正则化的值是各个参数的平方和的开方值。

 

        L2正则使得参数中每个元素都很小接近于0(仅仅接近,但不为0),这就导致了所有参数都很小,与L1类似得参数小则模型复杂度低,可有效防止过拟合。

 

 

4. Lasso 与 Ridge 对比

 

        Lasso 和 Ridge 问题可分别表示为如下:

        将模型空间限制在参数w的二维情况:

        

        在 (w1,w2) 平面上可以画出目标函数的等高线,而约束条件为平面上半径为C的一个规则化球(norm ball):等高线与norm ball首次相交的地方就是最优解:

        

        从上图可知,对于L1-ball,L1在和每个坐标轴相交的地方都有“角”出现,L1-ball有很大几率与L1交于四个角,即在坐标轴上相遇,因为坐标轴在某一维度为0,从而可以产生稀疏。而等高线与L2-ball相交在坐标轴的几率就很小了。

 

        总结:L1趋向于产生少量特征,其它特征均为0;而L2会选择更多趋于0的特征。Lasso适合特征选择,Ridge适合规则化。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
曲线正则化是一种在机器学习和深度学习中常用的技术,用于减小模型的过拟合现象。其中,Tikhonov正则化是一种常见的正则化方法。 Tikhonov正则化在曲线正则化中的应用使得模型的训练过程更加稳定和可靠。在Python中,可以借助scikit-learn库来实现Tikhonov正则化。 要使用Tikhonov正则化进行曲线正则化,首先需要准备好有标签的训练数据集和测试数据集。然后,在Python中导入所需的库,如numpy和scikit-learn,以及Tikhonov正则化相关的库。 接下来,通过加载数据集并进行数据预处理,将数据集分为训练集和测试集。然后,可以使用scikit-learn中的Tikhonov正则化算法进行曲线正则化。可以选择不同的Tikhonov正则化参数,来平衡模型的复杂度和拟合数据的能力。 在进行曲线正则化时,可以使用交叉验证来选择最佳的Tikhonov正则化参数。这可以通过在训练集上进行多次训练和验证来完成。 最后,在选定最佳的Tikhonov正则化参数后,可以使用整个训练集来训练模型,并使用测试集来评估模型的性能。可以通过计算预测结果与实际结果之间的误差,如均方误差或平均绝对误差,来评估模型的准确性和泛化能力。 总结来说,通过在Python中使用Tikhonov正则化的方法,可以对曲线进行正则化处理,从而提高模型的泛化能力和稳定性。这对于在机器学习和深度学习任务中应对过拟合问题非常有效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值