Q1:推导矩阵乘法 C=AB 的 FLOPs 计算公式(设
,
)
啥是矩阵乘法和 FLOPs
咱先来说说矩阵乘法,矩阵乘法就是把两个矩阵按照一定规则算出一个新矩阵。就像 A 是一个 m 行 n 列的矩阵, B 是一个 n 行 p 列的矩阵,它们相乘得到的 C 就是一个 m 行 p 列的矩阵。而 FLOPs 呢,就是每秒浮点运算次数,说白了就是计算过程中做了多少乘法和加法这样的运算。
具体运算过程
矩阵 C 里的每个元素 cij 是咋算出来的呢?它是用 A 矩阵第 i 行的元素和 B 矩阵第 j 列的元素对应相乘,然后把这些乘积加起来得到的,也就是 。
举个例子,假如 A 是一个 2 行 3 列的矩阵, B 是一个 3 行 2 列的矩阵,那 C 就是一个 2 行 2 列的矩阵。算 c11 的时候,就是 a11b11+a12b21+a13b31 ,这里面有 3 次乘法和 2 次加法。
计算总的运算次数
对于 C 矩阵里的每一个元素,都得做 n 次乘法和 n−1 次加法。 C 矩阵一共有多少个元素呢?它有 m 行 p 列,所以就有 m×p 个元素。
那总的乘法次数就是每个元素的乘法次数乘以元素个数,也就是 m×p×n 次。总的加法次数就是每个元素的加法次数乘以元素个数,也就是 m×p×(n−1) 次。
一次浮点运算可以是一次乘法,也可以是一次加法,所以总的 FLOPs 就是乘法次数和加法次数加起来,也就是 m×p×n+m×p×(n−1)=2mnp−mp 。不过呢,当 n 比较大的时候, mp 跟 2mnp 比起来就小很多啦,所以一般就近似认为矩阵乘法 C=AB 的 FLOPs 是 2mnp 。
Q2:证明 SVD 分解
中奇异值的稳定性(对扰动 A+E 的误差分析)
SVD 分解是啥
SVD 分解就是把一个矩阵 A 拆分成三个矩阵相乘的形式, 。这里面 U 和 V 都是正交矩阵,简单来说就是它们的列向量都是相互垂直的,而且向量的长度都是 1 。

最低0.47元/天 解锁文章
1972

被折叠的 条评论
为什么被折叠?



