如何通俗的解释矩阵的条件数?

您所在的位置:网站首页 matlab求条件数 如何通俗的解释矩阵的条件数?

如何通俗的解释矩阵的条件数?

2023-03-26 03:53| 来源: 网络整理| 查看: 265

尝试不用严谨的数学推导,而用相对直观的角度来说明。

对于任何一个 m*n 的矩阵A,都可以使用用奇异值分解:

A = U ΣV^T

其中:

U和V均为正交矩阵,可以看作旋转矩阵

Σ为对角矩阵,可以看作伸缩矩阵

也就是说,对于矩阵A,如果其作用于向量x (Ax),根据奇异值分解,Ax = (UΣV^T)x,其本质就是将向量x先使用V^T矩阵进行旋转(变基),再使用Σ进行伸缩(Σ这个对角矩阵上的各个值称为奇异值,也就是在各个基向量方向上伸缩的幅度),最后使用U矩阵“旋转回去”。

理解了这个过程,可以直观上看到,当矩阵A作用于向量x时,主要是各个奇异值的大小决定了结果的“扰动情况”。如果某个奇异值很大,那么在对应的方向上,如果x稍微变化一点点,则结果在对应的方向上会放大很多。如果某个奇异值很小(接近0),那么在对应的方向上,如果x稍微变化一点点,则结果在对应的方向上会缩小很多。

所谓条件数就是衡量最大奇异值和最小奇异值之比的。比较理想的情况是最大奇异值和最小奇异值的比接近1,也就是差不多大小,这样在各个方向上,x的微小变换,对Ax结果的影响也不会很大。这个特性对于机器学习非常有用,因为我们的样本往往还有微小的噪声,如果因为微小的噪声导致我们的模型差别很大,那么这个模型就是不可靠的。

以上说明比较粗暴,可能有细节不严谨的地方,目的是帮助直观上理解条件数,严格推理还需要数学证明。

PS: 觉得有帮助的同学给个赞呗~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3