向量范数是定义了向量的类似于长度的性质,满足正定,齐次,三角不等式的关系就称作范数。
即对一个线性空间X,定义泛函 ||⋅|| | | ⋅ | | : X→ℝ X → R
满足
1. ||x||≥0 | | x | | ≥ 0 and ||x||=0↔x=0 | | x | | = 0 ↔ x = 0 for x∈X x ∈ X (正定)
2. ||cx||=|c|||x|| | | c x | | = | c | | | x | | for c∈ℝ,x∈X c ∈ R , x ∈ X (齐次)
3. ||a+b||≤||a||+||b|| | | a + b | | ≤ | | a | | + | | b | | for any a,b∈X a , b ∈ X (三角不等式)
向量的范数一般有 L0 L 0 . L1 L 1 , L2 L 2 与 L∞ L ∞ 范数
定义向量 x=(x1,⋯,xk) x = ( x 1 , ⋯ , x k ) 的 Lp L p 范数为 ||x||p=∑ki=1|xi|p‾‾‾‾‾‾‾‾‾√p | | x | | p = ∑ i = 1 k | x i | p p .
||x||0=∑ki=1|xi|0 | | x | | 0 = ∑ i = 1 k | x i | 0 ,即非0元素个数。
L0 L 0 范数表示向量中非零元素的个数。如果我们使用 L0 L 0 来规则化参数向量w,就是希望w的元素大部分都为零。 L0 L 0 范数的这个属性,使其非常适用于机器学习中的稀疏编码。在特征选择中,通过最小化 L0 L 0 范数来寻找最少最优的稀疏特征项。但是, L0 L 0 范数的最小化问题是NP难问题。 L1 L 1 范数是 L0 L 0 范数的最优凸近似,它比 L0 L 0 范数要更容易求解。因此, L0 L 0 优化过程将会被转换为更高维的范数(例如 L1 L 1 范数)问题。
在机器学习特征选择中,稀疏规则化能够实现特征的自动选择。一般来说, xi x i 的大部分元素(也就是特征)都是和最终的输出 yi y i 没有关系或者不提供任何信息的,在最小化目标函数的时候考虑 xi x i 这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确 yi y i 的预测。稀疏规则化算子的引入就是为了完成特征自动选择,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
L1 L 1 范数与 L0 L 0 范数都可以实现稀疏,而 L1 L 1 范数比 L0 L 0 具有更好的优化求解特性而被广泛使用。 L0 L 0 范数本身是特征选择的最直接最理想的方案,但如前所述,其不可分,且很难优化,因此实际应用中我们使用 L1 L 1 来得到 L0 L 0 的最优凸近似。
OK,来个一句话总结: L1 L 1 范数和 L0 L 0 范数可以实现稀疏, L1 L 1 因具有比 L0 L 0 更好的优化求解特性而被广泛应用。好,到这里,我们大概知道了 L1 L 1 可以实现稀疏,但我们会想呀,为什么要稀疏?让我们的参数稀疏有什么好处呢?这里扯两点:
1)特征选择(Feature Selection):
大家对稀疏规则化趋之若鹜的一个关键原因在于它能实现特征的自动选择。一般来说, xi x i 的大部分元素(也就是特征)都是和最终的输出 yi y i 没有关系或者不提供任何信息的,在最小化目标函数的时候考虑xi这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确 yi y i 的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
2)可解释性(Interpretability):
另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设我们这个是个回归模型:
OK,那现在到我们非常关键的问题了,为什么 L2 L 2 范数可以防止过拟合?回答这个问题之前,我们得先看看 L2 L 2 范数是个什么东西。
L2 L 2 范数是指向量各元素的平方和然后求平方根。我们让 L2 L 2 范数的规则项 ||W||2 | | W | | 2 最小,可以使得 W W 的每个元素都很小,都接近于0,但与 L1 L 1 范数不同,它不会让它等于0,而是接近于0,这里是有很大的区别的哦。而越小的参数说明模型越简单,越简单的模型则越不容易产生过拟合现象。为什么越小的参数说明模型越简单?我也不懂,我的理解是:限制了参数很小,实际上就限制了多项式某些分量的影响很小(看上面线性回归的模型的那个拟合的图),这样就相当于减少参数个数。
这里也一句话总结下:通过 L2 L 2 范数,我们可以实现了对模型空间的限制,从而在一定程度上避免了过拟合。
L2 L 2 范数的好处是什么呢?这里也扯上两点:
1)学习理论的角度:
从学习理论的角度来说, L2 L 2 范数可以防止过拟合,提升模型的泛化能力。
2)优化计算的角度:
从优化或者数值计算的角度来说, L2 L 2 范数有助于处理 condition number不好的情况下矩阵求逆很困难的问题。关于condition number的知识参见这篇文章。
矩阵范数是定义了矩阵的类似于长度的性质,与向量范数不同,他要满足额外的性质
即对所有 m×n m × n 矩阵的空间 X X ,定义泛函 ||⋅|| | | ⋅ | | : A→ℝ A → R
满足
1. ||x||≥0 | | x | | ≥ 0 and ||x||=0↔x=0 | | x | | = 0 ↔ x = 0 for x∈X x ∈ X (正定)
2. ||cx||=|c|||x|| | | c x | | = | c | | | x | | for c∈ℝ,x∈X c ∈ R , x ∈ X (齐次)
3. ||a+b||≤||a||+||b|| | | a + b | | ≤ | | a | | + | | b | | for any a,b∈X a , b ∈ X (三角不等式)
同时若是 n×n n × n 矩阵,则要求相容性,即
||AB||≤||A||⋅||B|| | | A B | | ≤ | | A | | ⋅ | | B | |
矩阵的范数一般有 1− 1 − . 2− 2 − , ∞− ∞ − 与 F− F − 范数
1-范数: ||A||1=maxj∑mi=1|aij| | | A | | 1 = m a x j ∑ i = 1 m | a i j |
列和范数,即所有矩阵列向量绝对值之和的最大值,matlab调用函数norm(A,1)。
2-范数: ||A||2=λ1‾‾√ | | A | | 2 = λ 1 , λ1 λ 1 为 ATA A T A 的最大特征值。
谱范数,即 ATA A T A 矩阵的最大特征值的开平方。matlab调用函数norm(x, 2)。
∞− ∞ − 范数: ||A||∞=maxi∑mj=1|aij| | | A | | ∞ = m a x i ∑ j = 1 m | a i j |
行和范数,即所有矩阵行向量绝对值之和的最大值,matlab调用函数norm(A, inf)。
以上这些都是诱导范数,由向量的 Lp L p 范数诱导而来。
非诱导范数常见的为 F− F − 范数,即Frobenius范数;核范数。
F− F − 范数: ||A||F=(∑mi=1∑nj=1|aij|)12 | | A | | F = ( ∑ i = 1 m ∑ j = 1 n | a i j | ) 1 2
Frobenius范数,即矩阵元素绝对值的平方和再开平方,matlab调用函数norm(A, ’fro‘)。
核范数: ||A||∗=∑ni=1λi | | A | | ∗ = ∑ i = 1 n λ i , λi λ i 为矩阵 A A 的奇异值。
核范数英文称呼叫Nuclear Norm。这个相对于上面火热的L1和L2来说,可能大家就会陌生点。那它是干嘛用的呢?霸气登场:约束Low-Rank(低秩)
秩可以度量相关性,而矩阵的相关性实际上有带有了矩阵的结构信息。如果矩阵之间各行的相关性很强,那么就表示这个矩阵实际可以投影到更低维的线性子空间,也就是用几个向量就可以完全表达了,它就是低秩的。所以我们总结的一点就是:如果矩阵表达的是结构性信息,例如图像、用户-推荐表等等,那么这个矩阵各行之间存在这一定的相关性,那这个矩阵一般就是低秩的。
如果A是一个m行n列的数值矩阵, rank(A) r a n k ( A ) 是X的秩,假如 rank(A) r a n k ( A ) 远小于m和n,则我们称X是低秩矩阵。低秩矩阵每行或每列都可以用其他的行或列线性表出,可见它包含大量的冗余信息。利用这种冗余信息,可以对缺失数据进行恢复,也可以对数据进行特征提取。
好了,低秩有了,那约束低秩只是约束 rank(A) r a n k ( A ) 呀,和我们这节的核范数有什么关系呢?他们的关系和L0与L1的关系一样。因为 rank() r a n k ( ) 是非凸的,在优化问题里面很难求解,那么就需要寻找它的凸近似来近似它了。对,你没猜错, rank(A) r a n k ( A ) 的凸近似就是核范数 ||A||∗ | | A | | ∗ 。
A为 m∗n m ∗ n 矩阵, q=min(m,n) q = m i n ( m , n ) ,则 ATA A T A 的q个非负特征值的算术平方根就是A的奇异值。
矩阵A的秩等于它的非零奇异值的个数,而 rank(A) r a n k ( A ) 不小于它的非零特征值的个数。
设 A∈Mm,n A ∈ M m , n ,则 A,A¯,AT,A∗ A , A ¯ , A T , A ∗ 有相同的奇异值
关于奇异值分解(SVD),可以参见奇异值分解(SVD)详解及其应用。
奇异值分解(SVD)原理与在降维中的应用