范数-向量范数和矩阵范数

1 概括:

范数(norm)是数学中的一种基本概念,满足条件:

  • 非负性
  • 齐次性
  • 三角不等式

它常常被用来度量某个向量空间(或矩阵)中的每个向量的长度或大小。
范数包括向量范数和矩阵范数。
向量范数表征向量空间中向量的大小,矩阵范数表征矩阵引起变化的大小。 一种非严密的解释就是,
对应向量范数,向量空间中的向量都是有大小的,这个大小如何度量,就是用范数来度量的,不同的
范数都可以来度量这个大小,就好比米和尺都可以来度量远近一样。

2 定义:

范数的一般化定义:设 p ≥ 1 p\geq1 p1的实数,范数定义为:
∣ ∣ x ∣ ∣ p : = ( ∑ i = 1 n ∣ x i ∣ p ) 1 p ||x||_p := (\sum_{i=1}^n|x_i|^p)^\frac{1}{p} xp:=(i=1nxip)p1

2.1 L0范数

严格来讲,L0不属于范数,它主要被用来度量向量中非零元素的个数。定义本应该为:
∣ ∣ x ∣ ∣ 0 : = ( ∑ i = 0 n ∣ x i ∣ 0 0 ) ||x||_0 := (\sqrt[0]{\sum_{i=0}^n|x_i|^0}) x0:=(0i=0nxi0 )
但这个公式有点呆,所以在实际应用中,往往采用以下定义:
∣ ∣ x ∣ ∣ 0 = ( i ∣ x i ≠ 0 ) ||x||_0 = (i|x_i \neq 0) x0=(ixi=0)
如果我们使用L0来规则化参数向量w,就是希望w的元素大部分都为零。L0范数的这个属性,使其非常适用于机器学习中的稀疏编码。在特征选择中,通过最小化L0范数来寻找最少最优的稀疏特征项。但是,L0范数的最小化问题是NP难问题。而L1范数是L0范数的最优凸近似,它比L0范数要更容易求解。因此,优化过程将会被转换为更高维的范数(例如L1范数)问题。

2.2 L1范数

L1范数是我们经常见到的一种范数,它的定义如下:
∣ ∣ x ∣ ∣ 1 : = ∑ i = 1 n ∣ x i ∣ ||x||_1 := \sum_{i=1}^n|x_i| x1:=i=1nxi
L1范数是向量中各个元素绝对值之和,也被称作“Lasso regularization”(稀疏规则算子)。

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

总结一下:L1范数和L0范数可以实现稀疏,L1因为拥有比L0更好的优化求解特性而被广泛应用。这样我们大概知道了可以实现稀疏,但是为什么我们希望稀疏?让参数稀疏有什么好处呢?这里有两个理由:

  1. 特征选择(Feature Selection):
    大家希望稀疏规则化的一个关键原因在于它能实现特征的自动选择。一般来说,X的大部分元素(也就是特征)都是和最终的输出没有关系或者不提供任何信息的,在最小化目标函数的时候考虑这些额外的特征,虽然可以获得更小的训练误差,但在预测新的样本时,这些没用的信息反而会被考虑,从而干扰了对正确的预测。稀疏规则化算子的引入就是为了完成特征自动选择的光荣使命,它会学习地去掉这些没有信息的特征,也就是把这些特征对应的权重置为0。
  2. 可解释性(Interpretability):
    另一个青睐于稀疏的理由是,模型更容易解释。例如患某种病的概率是y,然后我们收集到的数据x是1000维的,也就是我们需要寻找这1000种因素到底是怎么影响患上这种病的概率的。假设这是个回归模型:
    y = ∑ i = 1 1000 w i ∗ x i + b y = \sum_{i=1}^{1000}{w_i * x_i + b} y=i=11000wixi+b
    当然了,为了让y限定在的范围,一般还得加个Logistic函数。 通过学习,如果最后学习到的就只有很少的非零元素,例如只有5个非零的,那么我们就有理由相信,这些对应的特征在患病分析上面提供的信息是巨大的,决策性的。也就是说,患不患这种病只和这5个因素有关,那医生就好分析多了。但如果1000个都非0,医生面对这1000种因素只能一脸懵逼不知如何是好。
2.3 L2范数

范数中最常见,也最著名的非L2范数莫属,定义:
∣ ∣ x ∣ ∣ 2 : = ∑ i = 1 n x i 2 ||x||_2 := \sqrt{\sum_{i=1}^nx_i^2} x2:=i=1nxi2
L2 范数: ||x|| 为 x 向量各个元素平方和的 1/2 次方,L2 范数又称 Euclidean 范数或者 Frobenius 范数。
L2范数的优点:
从学习理论的角度来说,L2范数可以防止过拟合,提升模型的泛化能力。
从优化或者数值计算的角度来说,L2范数有助于处理condition number不好的情况下矩阵求逆很困难的问题。

2.4 无限范数

主要被用来度量向量元素的最大值,与L0一样,通常情况下表示为 :
∣ ∣ x ∣ ∣ ∞ = m a x ( ∣ x i ∣ ) ||x||_\infty = max(|x_i|) x=max(xi)

机器学习中:
正则化:
对模型复杂度进行惩罚,如果惩罚项选择L1,则是我们所说的Lasso回归,而L2则是Ridge回归。
贝叶斯:
正则化项从贝叶斯学习理论的角度来看,其相当于一种先验函数分布。
即当你训练一个模型时,仅仅依靠当前的训练集数据是不够的,为了实现更好的预测(泛化)效果,我们还应该加上先验项。
而L1则相当于设置一个Laplacean先验,而L2则类似于 Gaussian先验。
L1先验对大值和小值的tolerate很好,而L2先验则倾向于均匀化大值和小值。

3.矩阵范数

一般来讲矩阵范数除了正定性,齐次性和三角不等式之外,还规定其必须满足相容性: ∣ ∣ X Y ∣ ∣ ≤ ∣ ∣ X ∣ ∣ ∣ ∣ Y ∣ ∣ ||XY|| \leq ||X|| ||Y|| XYXY 。所以矩阵范数通常也称为相容范数。
待完善。。。
参考:

  • https://www.cnblogs.com/houkai/p/10160680.html

你可能感兴趣的:(范数,向量范数,矩阵范数,机器学习,L1和L2正则化)