深度学习笔记2

奇异值分解

(从这里开始我们的线性代数教材上就没有了,开始有意思起来了)

刚刚我们探讨了如何将矩阵分解成特征向量和特征值。还有另一种分解矩阵的方法,被称为奇异值分解将矩阵分解为奇异向量和奇异值。通过奇异值分解,我们会得到一些与特征分解相同类型的信息。然而,奇异值分解有更广泛的应用。每个实数矩阵都有一个奇异值分解,但不一定都有特征分解。例如,非方阵的矩阵没有特征分解,这时我们只能使用奇异值分解。

回想一下,我们使用特征分解去分析矩阵 A 时,得到特征向量构成的矩阵 V和特征值构成的向量 λ,我们可以重新将 A 写作 A = Vdiag(λ)V−1 奇异值分解是类似的,只不过这回我们将矩阵 A 分解成三个矩阵的乘积: A = UDVT 假设 A 是一个 m × n 的矩阵,那么 U 是一个 m × m 的矩阵,D 是一个 m × n的矩阵,V 是一个 n × n 矩阵。这些矩阵中的每一个经定义后都拥有特殊的结构。矩阵 UV 都定义为正交矩阵,而矩阵 D 定义为对角矩阵。注意,矩阵 D 不一定是方阵。

对角矩阵 D 对角线上的元素被称为矩阵 A 的奇异值。矩阵 U 的列向量被称为左奇异向量,矩阵 V 的列向量被称右奇异向量。

事实上,我们可以用与 A 相关的特征分解去解释 A 的奇异值分解。A 的左奇异向量是AAT的特征向量。A 的右奇异向量是 AA 的特征向量。A 的非零奇异值是ATA特征值的平方根,同时也是AA特征值的平方根。

(这个证明非常好证,就是直接从A的定义出发,然后就是所见即所得了,记住,UV都是正交矩阵,所以它乘上它的转置的结果就是单位矩阵,如果对于这个证明感觉困难,可以再去适当复习一下特征值和特征向量)

奇异值分解最有用的一个性质可能是拓展矩阵求逆到非方矩阵上。我们将在后面探讨。

Moore-Penrose 伪逆

对于非方矩阵而言,其逆矩阵没有定义。假设在下面的问题中,我们希望通过矩阵 A 的左逆 B 来求解线性方程: Ax = y 等式两边左乘左逆 B 后,我们得到: x = By 取决于问题的形式,我们可能无法设计一个唯一的映射将 A 映射到 B

如果矩阵 A 的行数大于列数,那么上述方程可能没有解。如果矩阵 A 的行数小于列数,那么上述矩阵可能有多个解。

(这个不就是方程数和未知数个数的关系吗,如果用矩阵理论来解释,就是矩阵的秩那块的内容)

Moore-Penrose 伪逆使我们在这类问题上取得了一定的进展。矩阵 A 的伪逆定义为: A+ = limα ↘ 0(AA + αI)−1A

计算伪逆的实际算法没有基于这个定义,而是使用下面的公式: A+ = VD+UT 其中,矩阵 UDV 是矩阵 A奇异值分解后得到的矩阵。对角矩阵 D 的伪逆D + 是其非零元素取倒数之后再转置得到的。

当矩阵 A 的列数多于行数时,使用伪逆求解线性方程是众多可能解法中的一种。特别地,x = A+y是方程所有可行解中欧几里得范数||x||2最小的一个。当矩阵 A 的行数多于列数时,可能没有解。在这种情况下,通过伪逆得到的 x使得 Axy 的欧几里得距离$||Ax−y||_2 $最小。

(伪逆这块说实话笔者也没有太看明白,有兴趣的读者可以自己了解,我没太看懂)

迹运算

迹运算返回的是矩阵对角元素的和: Tr(A) = ∑iAi, i 迹运算因为很多原因而有用。若不使用求和符号,有些矩阵运算很难描述,而通过矩阵乘法和迹运算符号可以清楚地表示。例如,迹运算提供了另一种描述矩阵Frobenius范数的方式: $$ ||A||_F=\sqrt{Tr(AA^T)} $$

参考资料:《深度学习》lan Goodfellow Yoshua Bengio Aaron Courvile 著


深度学习笔记2
http://example.com/2025/08/27/《深度学习》笔记2/
作者
牧丛
发布于
2025年8月27日
许可协议