L1正则化和L2正则化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L1正则化和L2正则化相关的知识,希望对你有一定的参考价值。

参考技术A

在这里我们首先需要明白 结构风险最小化 原理:

我们所谓的正则化,就是在原来 Loss Function 的基础上,加了一些正则化项,或者叫做模型复杂度惩罚项。以我们的线性回归为例子。

优化目标(损失函数):

加上L1正则项(lasso回归):

加上L2正则项(Ridge回归):

下面我们需要理解加了正则化项之后,对于目标函数求解的时候,最终解有什么变化。

我们从图像角度来理解:

假设X是一个二维样本,那么要求解的参数也 也是二维的。下图叫做原函数曲线等高线图。目标函数在图中的等高线(同颜色)每一组 , ​ 带入值都想同,这里代表着多组解。

下面看L1和L2正则项加入后的函数图像:

对比两幅图我们可以看出来:

下面看这几步:

L2正则化(岭回归)的证明类似。不过结论是L1正则化比L2正则化更加容易获得稀疏解。

我们总结一下,正则化之所以能够降低的原因在于,正则化是结构风险最小化的一种策略实现。

给 loss function 加上正则项,新得到的目标函数 h = f+normal,需要在 f 和 normal 中做一个 trade-off。如果还是像原来只优化 f,那么normal就比较大, h 就不能得到最优解。因此可以看出加正则项可以让解更加简单,符合奥卡姆剃刀理论;同时也符合在偏差和方差(方差表示模型的复杂度)分析中,通过降低模型复杂度,得到更小的泛化误差,降低过拟合。

看一下L1正则化和L2正则化的区别:

L1正则化就是在 loss function 后面加上L1范数,这样比较容易求到稀疏解。L2 正则化是在 LF 后面加 L2范数 平方,相比L1正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于0(不等0)的维度比较多,降低模型的复杂度。

正则化和归一化

http://blog.sina.com.cn/s/blog_4a1853330102w2en.html

http://blog.csdn.net/oppoa113/article/details/22102103

正则化,归一化(标准化和正规化):对数据进行预处理的两种方式,目的是让数据更便于计算和获得更加泛化的结果,但并不改变问题的本质。

 

正则化:要求一个逻辑回归问题,假设一个函数,覆盖所有可能:y=wx,其中w为参数向量,x为已知样本的向量,用yi表示第i个样本的真实值,用f(xi)表示样本的预测值,从而确定损失函数L(yi,f(xi))=yi?sigmoid(xi)。该损失函数代表一种误差。对于该模型y=wx的所有样本的损失平均值,我们称为经验损失(empirical loss)。

  显然,经验损失(或称经验风险)最小化(empirical risk minimization)就是求解最优模型的原则。为了达到这个目的,模型的设定会越来越复杂,最后可能造成模型只适用于当前的样本集,即出现过拟合(over fitting)问题。

  为了解决过拟合问题,通常有两种办法,第一是减少样本的特征维度;第二就是正则化(又称惩罚“penalty”)。正则化的一般形式是在整个平均损失函数后增加一个正则项(常见L2范数正则化,也有其他形式的正则化,它们的作用也不同。详见http://blog.csdn.net/zouxy09/article/details/24971995/)

  λ=0代表不进行正则化;=1通常代表合适的惩罚;举个例子=100的时候,会因为过度惩罚而造成“欠拟合”问题

   

归一化:主要看模型是否具有伸缩不变性。有些模型在各个维度进行不均匀伸缩后,最优解和原来不等价,例如SVM。

    对于这样的模型,除非本来各维数据的分布范围就比较接近,否则必须进行标准化,以免模型参数被分布范围较大或较小的数据支配。

    有些模型在各个维度进行不均匀伸缩后,最优解和原来等价,例如logistic regression(逻辑回归)。

    对于这样的模型,是否标准化理论上不会改变最优解。但是,由于实际求解往往使用迭代算法,如果目标函数的形状太扁,迭代算法可能收敛得很慢甚至不收敛。所以对于具有伸缩不变性的模型,最好也进行数据标准化。

https://www.zhihu.com/question/20455227

以上是关于L1正则化和L2正则化的主要内容,如果未能解决你的问题,请参考以下文章

正则化项L1和L2的直观理解及L1不可导处理

机器学习中L1正则化和L2正则化是什么?区别是什么?

L1正则化和L2正则化(从解空间角度)

L1正则化和L2正则化(从解空间角度)

深度学习L1正则化和L2正则化

L1/L2正则化方法