L1范数和L2范数的区别
@(deepLearning)
范数 norm
范数是衡量某个向量空间(或矩阵)中的每个向量以长度或大小。
∥ x ∥ p : = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p \left \| x\right \|_p := \left( \sum_{i=1}^{n}\left|x_i\right|^p\right)^{\frac{1}{p}} ∥x∥p:=(i=1∑n∣xi∣p)p1
- L0范数:向量中非0的元素的个数。
- L1范数:向量各元素的绝对值之和。也称为稀疏规则化算子(Lasso regularization),是L0范数的最优凸近似。
- L2范数:向量各元素的平方和的开方值。
参数空间(parameter space)
θ ∈ Θ \theta\in\Theta θ∈Θ, Θ \Theta Θ表示 θ \theta θ的取值范围,那称 Θ \Theta Θ为参数空间。
任何规则化算子,如果它在 w i = 0 w_i =0 wi=0的地方不可微,并且可以分解为一个“求和”的形式,那么这个规则化算子就可以实现稀疏。
question?
- 参数稀疏有什么好处?(L1范数可以实现稀疏)
\quad 1)特征选择(Feature Selection):实现特征的自动选择,保留下重要的参数,大多数参数置为0,可以简化模型。
\quad 2)可解释性:使得模型获得更好的解释性(起作用的参数不多,大部分参数都为0)。- 为什么参数值越小代表模型越简单吗?
\quad 因为越复杂的模型,越会对所有的样本进行拟合,甚至包括一些异常样本点,这就容易造成在较小的区间里预测值产生较大的波动,这种较大的波动也反映了在这个区间里的导数很大,而只有较大的参数值才能产生较大的导数。因此复杂的模型,其参数值会比较大。- 为什么L2范数可以防止过拟合(overfitting)?
\quad 让规则项 ∣ ∣ W ∣ ∣ 2 ||W||^2 ∣∣W∣∣2最小,可以使得 W W W中每一个参数都很小,接近于0,限制了参数的空间,降低了模型的复杂度,提升了模型的泛化能力。越小的参数说明模型越简单,越不容易产生过拟合。
1)假设给定的问题只有两个参数。Lasso: ∣ β 1 ∣ + ∣ β 2 ∣ ≤ s |\beta_1 |+|\beta_2|\le s ∣β1∣+∣β2∣≤s,Ridge: β 1 2 + β 2 2 ≤ s \beta_1^2+\beta_2^2\le s β12+β22≤s。
- Lasso约束函数域在每个轴上都有尖角,因此椭圆经常和约束函数域相交。发生这种情况时,其中一个系数就会等于 0。在高维度时(参数远大于2),许多系数估计值可能同时为 0。
所以**Lasso可以选择特征,产生稀疏模型
**。- Ridge岭回归的约束函数域没有尖角,所以这个交点一般不会产生在一个坐标轴上,也就是说岭回归的系数估计全都是非零的。所以模型的解释性很弱。
如果大部分特征都能起作用,而且起的作用很平均,那么使用岭回归也许更合适。
2)下降速度:(L1的下降速度比L2的下降速度要快)
总结
L1范数会趋向于产生少量的特征,而其他的特征都是0,而L2范数会选择更多的特征,这些特征都会接近于0。