L1,L2 用于正则化还有结构风险

引用: https://blog.csdn.net/red_stone1/article/details/80755144
https://zhuanlan.zhihu.com/p/25707761
https://blog.csdn.net/red_stone1/article/details/80755144
https://www.cnblogs.com/jclian91/p/9824310.html


数学基础:

什么是范数?

  • L0范数

L0范数是指向量中非0的元素的个数。如果我们用L0范数来规则化一个参数矩阵W的话,就是希望W的大部分元素都是0。(NP难问题,一般用L1替代)

  • L1范数

当p=1时,是L1范数,其表示某个向量中所有元素绝对值的和。

  • L2范数

当p=2时,是L2范数, 表示某个向量中所有元素平方和再开根, 也就是欧几里得距离公式。

拟合.png

L1,L2 范式作结构风险的公式化表示:

虽然蓝色方程的误差要比红色大, 但是蓝色的复杂度更低。那怎么降低函数的复杂度呢?因为越大越复杂拟合的效果也就越好,所以加入()或者(),如果变大(模型变复杂)则函数值会偏大,为了降低函数值,需要在模型复杂度与拟合相似度之间妥协。

以为例:

  • L2 Regularization:

  • L1 Regularization:


L1与L2 范式作为结构风险的目标函数求解可视化

以为例,黄色的线是结构风险函数值,蓝色的线是损失函数值,我们的目标是使两者之和最小。但是为什么损失函数是个椭圆呢?因为最优点(X,Y)一般只有一个,然后修改y=ax+b的a或b之后损失函数值必然变大,那么在这个最优点的外围环上肯定能达到一个恒等环。

线性函数拟合.png

因为我们L1方法 + 在斜线上是不变的,L2方法 + 在曲面上是不变的。所以结构风险函数也不变,完全看损失函数来确定最优解。从数学上讲,两者相切的时候,结构风险函数最小,也就是说在该损失函数值等高线内,结构风险函数与损失函数之和最小。但是不是说最外围(最内层)的一定是最优解,其他层的相交解也有可能是最优解。

损失函数与结构风险函数的等高线.png
  • 为什么损失函数是一个椭圆曲面?

因为在这个例子中,刻画线性函数的时候,损失函数采用的是=某个定值 所以结果是一个关于xi,yi的椭圆曲线函数。


从L1,L2的异同上来看取舍:

1. 从损失函数上来看

L2损失函数 L1损失函数
不是非常的鲁棒(robust) 鲁棒
稳定解 不稳定解
总是一个解 可能多个解

不稳定解:由下图可见,在出现噪音点的时候,L1的偏移比L2的偏移明显很多,说明在不同批次训练时候的解并不稳定。

图片.png

2. 正则化方面

L2正则化 L1正则化
计算效率高(因为有解析解) 在非稀疏情形下计算效率低
非稀疏输出 稀疏输出
无特征选择 内置特征选择

稀疏性指的是一个矩阵(或向量)中只有少数的项是非零的。

为什么稀疏?

左侧L1右侧L2.png

因为曲面损失函数与线性结构风险函数的特点,导致L1下曲面与直线的交点可能落在x轴或者y轴上,从而导致或者有一定的概率为0。但是L2下曲面与曲面的交点为x轴或者y轴的概率基本为9,所以L1正则化的解有稀疏性(较L2有更多解为0)


最后的统一表达形式:


对正则化参数的理解:

正则化的目的是限制参数过多或者过大,避免模型更加复杂。为了达到这一目的,最直观的方法就是限制 w 的个数,但是这类条件属于 NP-hard 问题,求解非常困难。所以,一般的做法是寻找更宽松的限定条件:

对 w 的平方和做数值上界限定,即所有w 的平方和不超过参数 C。这时候,我们的目标就转换为:最小化训练样本误差 Ein,但是要遵循 w 平方和小于 C 的条件。


  • 对过拟合与欠拟合的影响

过小,所以W1,W2必须变大弥补损失,但是此时的损失函数急剧收缩,从而导致拟合效果非常好,导致过拟合。当然惩罚项设置较大的话,W1,W2也就越稀疏,趋于0。

λ很小,w1和w2很大.png

你可能感兴趣的:(L1,L2 用于正则化还有结构风险)