[DL Note] 线性代数:范数
1. 向量的范数
1.1. $L^2$ 范数
向量 $\boldsymbol v$ 的长度(或称为$L^2$ 范数、欧几里得范数)是非负数 $\lVert \boldsymbol v \rVert_2$,定义为
\begin{equation}
\lVert \boldsymbol v \rVert_2 = \sqrt{\boldsymbol v \cdot \boldsymbol v} = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2} = \sqrt{\sum_i v_i^2} \tag{1}
\end{equation}
如果 $\boldsymbol v$ 是 $\mathbb{R}^2$ 中的向量,比如 $\boldsymbol v = \begin{bmatrix} a \\ b \end{bmatrix}$,可以用 $\boldsymbol v$ 表示平面上的几何点 $(a, b)$,此时 $\lVert \boldsymbol v \rVert$ 等于平面内原点到 $\boldsymbol v$ 的线段长度。类似地,如果 $\boldsymbol v$ 是 $\mathbb{R}^3$ 中的向量,则 $\boldsymbol v$ 表示三维空间中的一个点,$\lVert \boldsymbol v \rVert$ 等于空间内原点到 $\boldsymbol v$ 的线段长度。
两个向量的点积可以用范数来表示,例如
\begin{equation}
\boldsymbol u^\mathsf{T} \boldsymbol v = \lVert \boldsymbol u \rVert_2 \lVert \boldsymbol v \rVert_2 \cos \theta \tag{2}
\end{equation}
其中 $\theta$ 为 $\boldsymbol u$ 和 $\boldsymbol v$ 的夹角。
长度为 $1$ 的向量称为单位向量。如果把一个非零向量除以其自身的长度,即乘以 $\frac{1}{\lVert \boldsymbol v \rVert}$,就可以得到一个单位向量,即 $\boldsymbol u = \frac{\boldsymbol v}{\lVert \boldsymbol v \rVert}$。这种把向量 $\boldsymbol v$ 化成单位向量 $\boldsymbol u$ 的过程,称为向量 $\boldsymbol v$ 的单位化,此时 $\boldsymbol u$ 和 $\boldsymbol v$ 方向一致。
相比 $L^2$ 范数本身,$L^2$ 范数的平方
\begin{equation}
\lVert \boldsymbol v \rVert_2^2 = \boldsymbol v \cdot \boldsymbol v = \sum\limits_i v_i^2 \tag{3}
\end{equation}
在求导计算上更加方便。对于任意向量 $\boldsymbol v$,其 $L^2$ 范数的平方对于 $\boldsymbol v$ 中任意元素的导数只与该元素有关;而 $L^2$ 范数由于经过开方,其关于 $\boldsymbol v$ 中任意元素的导数都与整个向量有关。
$L^2$ 范数的平方在远点附近增长很慢,在机器学习应用中,如果需要区分恰好是零的元素和很接近零的非零元素,则可以使用 $L_1$ 范数。
1.2. $L^1$ 范数
$L^1$ 范数的定义为
\begin{equation}
\lVert \boldsymbol v \rVert_1 = \sum_i |v_i| \tag{4}
\end{equation}
$L^1$ 范数在各个位置斜率相同,且形式简单。在机器学习应用中,如果零和非零元素之间的差异很重要,则通常会使用 $L_1$ 范数。
1.3. $L^p$ 范数
更一般地,向量 $\boldsymbol v$ 的 $L^p$ 范数定义为
\begin{equation}
\lVert \boldsymbol v \rVert_p = \bigg( \sum_i |v_i|^p \bigg)^{\frac{1}{p}} \tag{5}
\end{equation}
范数将向量映射到一个非负值,具有如下性质:
- $\lVert \boldsymbol x \lVert = 0 \Rightarrow \boldsymbol x = \boldsymbol 0$
- $\lVert \boldsymbol x + \boldsymbol y \lVert \leq \lVert \boldsymbol x \lVert + \lVert \boldsymbol y \lVert$(三角不等式)
- 对 $\forall c \in \mathbb{R}$,有 $\lVert c \boldsymbol v \rVert = |c| \lVert \boldsymbol v \rVert $
1.4. 其他范数
如果我们只统计向量中非零元素的个数,则得到所谓的“$L^0$ 范数”。确切来讲,$L^0$ 范数并不是范数,它不满足 1.3 中的性质 3。$L^1$ 范数经常作为 $L^0$ 范数的替代。
最大范数 $L^{\infty}$ 定义为向量中具有最大绝对值的元素的绝对值,即
\begin{equation}
\lVert \boldsymbol v \rVert_\infty = \max_i |x_i| \tag{6}
\end{equation}
2. 矩阵的范数
类似有向量的 $L^2$ 范数,矩阵的 Frobenius 范数定义为
\begin{equation}
\lVert \boldsymbol A \rVert_F = \sqrt{\sum_{i, j} A_{i, j}^2 } \tag{7}
\end{equation}
即矩阵元素的平方和再开平方。