机器学习中常用范数与距离
前言
在机器学习中经常会涉及到范数和距离的概念,有时候优化的目标函数就是常用范数和距离的变化。关于范数和距离其实已经有很多人写过文章了,我之所以还要再写一遍,是因为读别人的文章我老是记不住,干脆好记性不如烂键盘,自己敲一遍吧。
范数
向量范数
向量范数表示向量空间中向量的大小。
将 n n n维实空间 R n R^n Rn中的向量 X = ( x 1 , x 2 , . . . , x n ) T \mathbf X = (x_1, x_2, ..., x_n)^T X=(x1,x2,...,xn)T的范数记作 ∥ X ∥ \Vert \mathbf X \Vert ∥X∥,该范数是一个实数,且满足以下三条性质:
(1) 非负性: ∥ X ∥ ≥ 0 \Vert \mathbf X \Vert \geq 0 ∥X∥≥0,当且仅当 X = 0 \mathbf X = \mathbf 0 X=0时 ∥ X ∥ = 0 \Vert \mathbf X \Vert = 0 ∥X∥=0;
(2) 齐次性:对任意实数 λ \lambda λ, ∥ λ X ∥ \Vert \lambda \mathbf X\Vert ∥λX∥ = ∣ λ ∣ ∥ X ∥ |\lambda| \Vert \mathbf X \Vert ∣λ∣∥X∥;
(3) 三角不等式:对任意向量 Y ∈ R n \mathbf Y \in R^n Y∈Rn, ∥ X + Y ∥ ≤ ∥ X ∥ + ∥ Y ∥ \Vert \mathbf X + \mathbf Y \Vert \leq \Vert \mathbf X \Vert + \Vert \mathbf Y \Vert ∥X+Y∥≤∥X∥+∥Y∥。
- 1范数
∥ X ∥ 1 = ∑ i = 1 n ∣ x i ∣ = ∣ x 1 ∣ + ∣ x 2 ∣ + . . . + ∣ x n ∣ {\Vert \mathbf X \Vert}_1 = \sum_{i=1}^n {|x_i|} = |x_1| + |x_2| + ... +|x_n| ∥X∥1=i=1∑n∣xi∣=∣x1∣+∣x2∣+...+∣xn∣ - 2范数
∥ X ∥ 2 = ∑ i = 1 n x i 2 = x 1 2 + x 2 2 + . . . + x n 2 {\Vert \mathbf X \Vert}_2 = \sqrt {\sum_{i=1}^n {x_i}^2} = \sqrt { {x_1}^2 + {x_2}^2 + ... +{x_n}^2} ∥X∥2=i=1∑nxi2=x12+x22+...+xn2 - ∞ 范 数 \infty范数 ∞范数
∥ X ∥ ∞ = max 1 ≤ i ≤ n ∣ x i ∣ {\Vert \mathbf X \Vert}_\infty = \max_{1\leq i \leq n} |x_i| ∥X∥∞=1≤i≤nmax∣xi∣ - p p p范数
∥ X ∥ p = ∑ i = 1 n ∣ x i ∣ p p {\Vert \mathbf X \Vert}_p = \sqrt[p] {\sum_{i=1}^n |x_i|^p} ∥X∥p=pi=1∑n∣xi∣p
其中,前三种范数都是 p p p范数的特殊情况,或者可以说 p p p范数不是一个单纯的范数,而是一组范数的表示。
需要注意的是,当 p ≥ 1 p \geq 1 p≥1时,各个范数是满足三角不等式的,而当 0 ≤ p < 1 0 \leq p \lt 1 0≤p<1时,范数是不满足三角不等式的,此时的范数只是一种概念表示。
比如0范数用 p p p范数的计算公式表示为如下形式:
∥ X ∥ 0 = ∑ i = 1 n ∣ x i ∣ 0 0 {\Vert \mathbf X \Vert}_0 = \sqrt[0] {\sum_{i=1}^n |x_i|^0} ∥X∥0=0i=1∑n∣xi∣0
这样表示的问题在于,当 x i = 0 x_i = 0 xi=0时, 0 0 0^0 00 是没有意义的,同样开零次方也是没有意义的。一般我们实际使用的0范数指向量中的非零元素个数。
另外,对于 ∞ \infty ∞范数,它实际是通过以下公式计算得来的:
∥ X ∥ ∞ = lim p → ∞ ∥ X ∥ p {\Vert \mathbf X \Vert}_\infty = \lim_{p \rightarrow \infty} {\Vert \mathbf X \Vert}_p ∥X∥∞=p→∞lim∥X∥p
在实际应用中,1范数可以实现特征的稀疏,去掉一些无用信息;2范数通常用作目标函数的正则化项,防止过拟合,提高模型的泛化能力。1范数和2范数可以度量两个向量之间的差异,而 ∞ \infty ∞范数用来度量向量元素的最大值。
矩阵范数
矩阵范数表示矩阵变换引起的变化大小。
若有 n × n n \times n n×n的矩阵 A \mathbf A A( A ∈ R n × n \mathbf A \in R^{n \times n} A∈Rn×n)以及 n n n维实空间 R n R^n Rn中的向量 X \mathbf X X,称
∥ A ∥ = max X ∈ R n , ∥ X ∥ = ̸ 0 ∥ A X ∥ ∥ X ∥ = max ∥ X ∥ = 1 , X ∈ R n ∥ A X ∥ \Vert \mathbf A \Vert = \max_{\mathbf X \in R^n, {\Vert \mathbf X \Vert} = \not 0} \frac{\Vert \mathbf {AX} \Vert}{\Vert \mathbf X \Vert} = \max_{\Vert \mathbf X \Vert = 1, \mathbf X \in R^n} \Vert \mathbf {AX} \Vert ∥A∥=X∈Rn,∥X∥≠0