范数的定义
- 在数学中,范数 (Norm) 是一个函数,它将向量空间中的每个非零向量映射为一个正实数 ,直观上可以理解为向量的“长度”或“大小”
- 注:常规聊的范数都是针对向量空间的,谱范数(Spectral Norm) 是针对矩阵空间的
- 对于零向量,范数映射为零
- 范数需要满足以下三个性质:
- 1)非负性 (Non-negativity) :对于所有向量 \( x \),有\(|x| \ge 0\),且当且仅当 \(x = 0\) 时,\(|x| = 0\)
- 2)齐次性 (Homogeneity) :对于所有标量 \( \alpha \) 和向量 \( x \),有 \(|\alpha x| = |\alpha| |x|\)
- 3)三角不等式 (Triangle Inequality) :对于所有向量 \( x \) 和 \(y\),有 \(|x + y| \le |x| + |y|\)
常见的范数——\(L_p\) 范数
- \(L_p\) 范数,也称为 Minkowski 范数,定义为:
$$|x|_p = \left( \sum_{i=1}^n |x_i|^p \right)^{\frac{1}{p} }$$- \(x = [x_1, x_2, \dots, x_n]^T\) 是一个 \(n\) 维向量
- \(p \ge 1\) 是一个实数
\(L_1\) 范数 (Manhattan Norm / Taxicab Norm)
- 当 \(p=1\) 时,称为 \(L_1\) 范数,表示向量中所有元素的绝对值之和
- \(L_1\) 范数衡量的是向量元素到原点的曼哈顿距离
$$|x|_1 = \sum_{i=1}^n |x_i|$$ - 在机器学习中,常用于稀疏表示和特征选择(如 Lasso 回归),因为它倾向于产生稀疏解
\(L_2\) 范数 (Euclidean Norm)
- 当 \(p=2\) 时,称为 \(L_2\) 范数,表示向量的欧几里得长度,即从原点到向量的欧几里得距离
$$|x|_2 = \sqrt{\sum_{i=1}^n |x_i|^2}$$ - \(L_2\) 范数是最常见的范数,广泛应用于各种领域,如机器学习中的岭回归 (Ridge Regression)、深度学习中的权重衰减 (Weight Decay) 以及距离计算
\(L_\infty\) 范数 (Maximum Norm / Chebyshev Norm)
- 当 \(p \to \infty\) 时,称为 \(L_\infty\) 范数,表示向量中所有元素的绝对值的最大值
$$|x|_\infty = \max_{i} |x_i|$$ - 在一些优化问题中,当需要限制向量中最大分量的大小时会使用到
矩阵范数
- 矩阵范数是定义在矩阵空间上的范数,除了满足向量范数的三个性质外,对于矩阵乘法还需满足:
$$
|AB| \leq |A| |B|
$$
诱导范数(算子范数)
- 对于矩阵 \( A \in \mathbb{C}^{m \times n} \),由向量范数 \( |\cdot|_p \) 诱导的矩阵范数定义为:
$$
|A|_p = \sup_{x \neq 0} \frac{|Ax|_p}{|x|_p} = \sup_{|x|_p=1} |Ax|_p
$$ - 特殊情况下,有以下范数:
- 1)列和范数(诱导自 \(L_1\) 范数) :
$$
|A|_1 = \max_{1 \leq j \leq n} \sum_{i=1}^m |a_{ij}|
$$- 按列求和,再取最大者
- 2)谱范数(诱导自 \(L_2\) 范数) :
$$
|A|_2 = \sqrt{\lambda_{\max}(A^* A)}
$$- 其中 \( \lambda_{\max} \) 表示最大特征值,\( A^* \) 是 \( A \) 的共轭转置
- 3)行和范数(诱导自 \(L_\infty\) 范数) :
$$
|A|_\infty = \max_{1 \leq i \leq m} \sum_{j=1}^n |a_{ij}|
$$- 按行求和,再取最大者
- 1)列和范数(诱导自 \(L_1\) 范数) :
常用的矩阵范数——谱范数
- 谱范数(Spectral Norm) 是矩阵范数的一种,它通常特指矩阵的 \(L_2\) 范数,即诱导 \(L_2\) 范数
- 谱范数是矩阵分析中最重要的范数之一,具有许多优良性质
谱范数定义
- 对于矩阵 \( A \in \mathbb{C}^{m \times n} \),其谱范数定义为:
$$
|A|_2 = \sup_{x \neq 0} \frac{|Ax|_2}{|x|_2} = \sigma_{\max}(A)
$$- 其中 \( \sigma_{\max}(A) \) 是 \( A \) 的最大奇异值
- 谱范数的更容易理解的另一个形式为:
$$|A|_2 = \max_{x \ne 0} \frac{|Ax|_2}{|x|_2}$$- 这个定义表明,谱范数是矩阵 \(A\) 对向量 \(x\) 进行线性变换后 ,最大可能的“放大倍数”
- 换句话说,它衡量了矩阵 \(A\) 在将单位向量 \(x\) 映射到 \(Ax\) 时,所能达到的最大长度
谱范数计算方法
- 1) 计算 \( A^* A \)(实矩阵时计算 \( A^T A \) 即可)
- 注:\( A^* \) 是共轭转置 ,对于实矩阵为普通转置 \( A^T\)
- 2) 求 \( A^* A \) 的最大特征值 \( \lambda_{\max} \)
- 3) 谱范数为 \( \sqrt{\lambda_{\max} } \)
谱范数性质
- 1) 次乘性 :\( |AB|_2 \leq |A|_2 |B|_2 \)
- 2) 酉不变性 :对于任意酉矩阵 \( U \) 和 \( V \),有 \( |UAV|_2 = |A|_2 \)
- 注:酉矩阵(Unitary Matrix)的共轭转置(即 Hermitian 转置)等于其逆矩阵:
$$ U^*U = UU^* = I$$
- 注:酉矩阵(Unitary Matrix)的共轭转置(即 Hermitian 转置)等于其逆矩阵:
- 3) 与Frobenius范数的关系 :\( |A|_2 \leq |A|_F \leq \sqrt{\operatorname{rank}(A)} |A|_2 \)
- 4) 与特征值的关系 :对于正规矩阵,谱范数等于谱半径 \( \rho(A) = \max |\lambda_i| \)
谱范数的应用
- 矩阵近似 :在低秩近似中,谱范数度量了近似误差
附录:谱范数与奇异值
- 谱范数有一个非常重要的性质,它等于矩阵 \(A\) 的最大奇异值
- 矩阵 \(A\) 的奇异值是其正定半定矩阵 \(A^T A\)(或 \(A A^T\))的特征值的平方根
- 令 \(\sigma_1 \ge \sigma_2 \ge \dots \ge \sigma_r > 0\) 为矩阵 \(A\) 的非零奇异值,其中 \(r = \text{rank}(A)\)。那么,谱范数可以表示为:
$$|A|_2 = \sigma_{\max}(A) = \sqrt{\lambda_{\max}(A^T A)}$$- \(\sigma_{\max}(A)\) 表示矩阵 \(A\) 的最大奇异值
- \(\lambda_{\max}(A^T A)\) 表示矩阵 \(A^T A\) 的最大特征值
- 推导简述 :
- 考虑 \(A^T A\) 是一个对称半正定矩阵,它的特征值都是非负的
- 对于任意非零向量 \(x\),我们有:
$$\frac{|Ax|_2^2}{|x|_2^2} = \frac{(Ax)^T (Ax)}{x^T x} = \frac{x^T A^T A x}{x^T x}$$ - 根据瑞利商 (Rayleigh Quotient) 的性质,\(\max_{x \ne 0} \frac{x^T M x}{x^T x} = \lambda_{\max}(M)\),其中 \(M\) 是对称矩阵
- 因此:
$$\max_{x \ne 0} \frac{|Ax|_2^2}{|x|_2^2} = \lambda_{\max}(A^T A)$$ - 取平方根后即可得到 \(|A|_2 = \sqrt{\lambda_{\max}(A^T A)} = \sigma_{\max}(A)\)
- 谱范数用于正则化 :在机器学习中,谱范数可以用于限制模型的复杂度,例如在深度学习中,限制神经网络层的权重矩阵的谱范数可以帮助防止过拟合
附录:共轭转置
- 共轭转置(Conjugate Transpose),也称为Hermitian转置 ,是线性代数中对矩阵的一种操作,记作 \( A^* \)、\( A^H \) 或 \( A^\dagger \)
- 共轭转置 对矩阵 \( A \) 进行以下两步运算:
- 1) 共轭 :将矩阵 \( A \) 的每个元素取复共轭(即实部不变,虚部取反)
- 2) 转置 :将矩阵的行列互换(即第 \( i \) 行第 \( j \) 列元素变为第 \( j \) 行第 \( i \) 列)
与普通转置对比
- 普通转置(\( A^T \)) :仅行列互换,不取共轭
- 实矩阵的共轭转置 :退化为普通转置(因虚部为零)
附录:Schatten-\( p \) 范数是什么?
- Schatten-\( p \) 范数(Schatten-\( p \) norm)是矩阵空间中一类重要的范数,常用于描述矩阵的“大小”或“强度”
- Schatten-\( p \) 范数 基于矩阵的奇异值(singular values)定义,适用于更广泛的矩阵分析场景(如紧算子、核范数等)
Schatten-\( p \) 范数的定义
- 设矩阵 \( A \in \mathbb{C}^{m \times n} \) 的奇异值为 \( \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r > 0 \)(其中 \( r = \min(m, n) \)),则其 Schatten-\( p \) 范数定义为:
$$
|A|_{S_p} = \left( \sum_{i=1}^r \sigma_i^p \right)^{1/p}, \quad p \in [1, \infty).
$$
Schatten-\( p \) 范数的特例
- 1) \( p = 1 \)(核范数,Nuclear norm)
$$ |A|_{S_1} = \sum_{i=1}^r \sigma_i $$- 用于矩阵低秩恢复、压缩感知等
- 2) \( p = 2 \)(Frobenius 范数,也称 F 范数)
$$ |A|_{S_2} = \left( \sum_{i=1}^r \sigma_i^2 \right)^{1/2} = \sqrt{\text{tr}(A^* A)} $$- 即矩阵元素的平方和开根号
- 3) \( p = \infty \)(谱范数,Spectral norm)
$$ |A|_{S_\infty} = \sigma_1 $$- 等于矩阵的最大奇异值,也是算子范数的一种
附录:Frobenius 范数的更多说明
- Frobenius范数(F 范数)是矩阵的一种常用范数,用于衡量矩阵的“大小”
- 它将矩阵视为一个向量,计算其所有元素的平方和的平方根
- 对于一个 \( m \times n \) 的矩阵 \( A = (a_{ij}) \),其Frobenius范数定义为:
$$
|A|_F = \sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} |a_{ij}|^2}
$$- 等价于矩阵所有元素的平方和再开平方
- 在 PyTorch 中的实现为
A.norm()