引用: 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范数, 表示某个向量中所有元素平方和再开根, 也就是欧几里得距离公式。
L1,L2 范式作结构风险的公式化表示:
虽然蓝色方程的误差要比红色大, 但是蓝色的复杂度更低。那怎么降低函数的复杂度呢?因为越大越复杂拟合的效果也就越好,所以加入(
)或者(
),如果
变大(模型变复杂)则函数值会偏大,为了降低函数值,需要在模型复杂度与拟合相似度之间妥协。
以为例:
- L2 Regularization:
- L1 Regularization:
L1与L2 范式作为结构风险的目标函数求解可视化
以为例,黄色的线是结构风险函数值,蓝色的线是损失函数值,我们的目标是使两者之和最小。但是为什么损失函数是个椭圆呢?因为最优点(X,Y)一般只有一个,然后修改y=ax+b的a或b之后损失函数值必然变大,那么在这个最优点的外围环上肯定能达到一个恒等环。
因为我们L1方法 +
在斜线上是不变的,L2方法
+
在曲面上是不变的。所以结构风险函数也不变,完全看损失函数来确定最优解。从数学上讲,两者相切的时候,结构风险函数最小,也就是说在该损失函数值等高线内,结构风险函数与损失函数之和最小。但是不是说最外围(最内层)的一定是最优解,其他层的相交解也有可能是最优解。
- 为什么损失函数是一个椭圆曲面?
因为在这个例子中,刻画线性函数的时候,损失函数采用的是=
某个定值
所以结果是一个关于xi,yi的椭圆曲线函数。
从L1,L2的异同上来看取舍:
1. 从损失函数上来看
L2损失函数 | L1损失函数 |
---|---|
不是非常的鲁棒(robust) | 鲁棒 |
稳定解 | 不稳定解 |
总是一个解 | 可能多个解 |
不稳定解:由下图可见,在出现噪音点的时候,L1的偏移比L2的偏移明显很多,说明在不同批次训练时候的解并不稳定。
2. 正则化方面
L2正则化 | L1正则化 |
---|---|
计算效率高(因为有解析解) | 在非稀疏情形下计算效率低 |
非稀疏输出 | 稀疏输出 |
无特征选择 | 内置特征选择 |
稀疏性指的是一个矩阵(或向量)中只有少数的项是非零的。
为什么稀疏?
因为曲面损失函数与线性结构风险函数的特点,导致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。