范数与正则化

范数与正则化

范数是具有“长度”概念的函数。在向量空间内,为所有的向量的赋予非零的增长度或者大小。不同的范数,所求的向量的长度或者大小是不同的。

举个例子,2维空间中,向量(3,4)的长度是5,那么5就是这个向量的一个范数的值,更确切的说,是欧式范数或者L2范数的值。

向量范数

$x=(x_1,x_2,……,x_N)$

$L_0$范数

是指向量中非0的元素的个数。(L0范数很难优化求解)

$L_0$正则化:

$$\sum^{m}_{j=1 \theta_j \ne 0}\theta^0_j$$

如果我们用$L_0$范数来规则化一个参数矩阵$W$的话,直观的说,就是希望$W$的大部分元素都是$0$。即让参数矩阵$W$是稀疏的。

因为$L0$范数很难优化求解(NP难问题),$L1$范数是$L0$范数的最优凸近似,而且$L1$范数比$L0$范数要容易优化求解。所以大家选择$L1$范数。

$1$-范数/$L_1$范数

$$||x||_{1}=\sum^{N}_{i=1}|x_i|$$

$L_1$范数也叫“稀疏规则算子”(Lasso regularization)

$L_1$范数是向量元素绝对值之和

matlab调用函数norm(x, 1)

  • $L_1$范数可以进行特征选择,即让特征的系数变为$0$.

$L_1$正则化:

$$\sum^{m}_{j=1}|\theta_j|$$

L1范数和L0范数可以实现稀疏,L1因具有比L0更好的优化求解特性而被广泛应用。

参数稀疏的好处

1)特征选择(Feature Selection):

大家对稀疏规则化趋之若鹜的一个关键原因在于它能实现特征的自动选择。一般来说,xi的大部分元素(也就是特征)都是和最终的输出yi没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确yi的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。

2)可解释性(Interpretability):

另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设我们这个是个回归模型:y=w1x1+w2x2+…+w1000x1000+b(当然了,为了让y限定在[0,1]的范围,一般还得加个Logistic函数)。通过学习,如果最后学习到的w就只有很少的非零元素,例如只有5个非零的wi,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。

$2$-范数/$L_2$范数

$$||x||_{2}=\sqrt{\sum^{N}_{i=1}x^{2}_{i}}$$

Euclid范数(欧几里得范数,常用计算向量长度)

matlab调用函数norm(x, 2)

L2范数是指向量各元素的平方和然后求平方根

  • $L2$范数可以防止过拟合,提升模型的泛化能力,有助于处理 $condition$ $number$不好下的矩阵(数据变化很小矩阵求解后结果变化很大)

  • 下降速度:最小化权值参数L1比L2变化的快

  • 模型空间的限制:L1会产生稀疏 L2不会。

  • $L1$会趋向于产生少量的特征,而其他的特征都是0,而L2会选择更多的特征,这些特征都会接近于0。

$L1$ $w$分量尽量稀疏 如 $(0,a,0,0,b,0,0)$

$L2$ $w$分量取值尽量均衡、稠密,即小而趋近于$0$ 如$(0.3,0.5,-0.3,0.1,-0.2,0.3,-0.3)$

$L_2$正则化:

$$\sum^{m}_{j=1}|\theta_j|^{2}$$

$p$-范数

$$||x||_{p}=(\sum^{N}_{i=1}|x_i|^{p})^{\frac{1}{p}}$$

即向量元素绝对值的p次方和的1/p次幂

matlab调用函数norm(x, p)

L1范数是指向量中各个元素绝对值之和

$\infty$-范数

$$ ||x||_{\infty}=\left. max \right|_{i} |x_i| $$

即所有向量元素绝对值中的最大值

matlab调用函数norm(x, inf)

$-\infty$-范数

$$ ||x||_{-\infty}=\left. min \right|_{i} |x|$$

即所有向量元素绝对值中的最小值

matlab调用函数norm(x, -inf)

矩阵范数

$$A=
\left[
\begin{matrix}
a_{11} & a_{12} & … \\
a_{21} & a_{ij} & … \\
… & … & a_{mn}
\end{matrix}
\right]
$$

$1$-范数 列和范数

即所有矩阵列向量绝对值之和的最大值

$$||A||_1=\left. max \right|_{j}\sum^{m}_{i=1}|a_{ij}|$$

matlab调用函数norm(A, 1)

$2$-范数 谱范数

$A^TA$矩阵的最大特征值的开平方

$$||A||_1=\left. max \right|_{j}\sum^{m}_{i=1}|a_{ij}|$$

matlab调用函数norm(A, 2)

$$||A||_2=\sqrt{\lambda}$$

$\lambda$是$A^TA$矩阵的最大特征值

$\infty$-范数 行和范数

即所有矩阵行向量绝对值之和的最大值

$$ ||A||_{\infty}=\left. max \right|_{i}\sum^{n}_{j=1}|a_{ij}| $$

matlab调用函数norm(A, inf)

$F$-范数 Frobenius范数

矩阵元素绝对值的平方和再开平方

$$ ||A||_{F}=\sqrt{(\sum^{m}_{i=1}\sum^{n}_{j=1}|a_{ij}|)}$$

matlab调用函数norm(A, ’fro‘)

核范数

$$||A||_*=\sum^{n}_{i=1}\lambda_i$$

$\lambda_i$是$A$的奇异值