LLM大模型中的基础数学工具——矩阵运算与分解

Q1:推导矩阵乘法 C=AB 的 FLOPs 计算公式(设 A\in R^{m\times n},B \in R^{n \times p}

啥是矩阵乘法和 FLOPs

咱先来说说矩阵乘法,矩阵乘法就是把两个矩阵按照一定规则算出一个新矩阵。就像 A 是一个 m 行 n 列的矩阵, B 是一个 n 行 p 列的矩阵,它们相乘得到的 C 就是一个 m 行 p 列的矩阵。而 FLOPs 呢,就是每秒浮点运算次数,说白了就是计算过程中做了多少乘法和加法这样的运算。

具体运算过程

矩阵 C 里的每个元素 cij​ 是咋算出来的呢?它是用 A 矩阵第 i 行的元素和 B 矩阵第 j 列的元素对应相乘,然后把这些乘积加起来得到的,也就是 c_{ij}=\sum_{k=1}^{n}a_{ik}b_{kj} 。

举个例子,假如 A 是一个 2 行 3 列的矩阵, B 是一个 3 行 2 列的矩阵,那 C 就是一个 2 行 2 列的矩阵。算 c11​ 的时候,就是 a11​b11​+a12​b21​+a13​b31​ ,这里面有 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=U\Sigma V^T 中奇异值的稳定性(对扰动 A+E 的误差分析)

SVD 分解是啥

SVD 分解就是把一个矩阵 A 拆分成三个矩阵相乘的形式, A=U\Sigma V^T 。这里面 U 和 V 都是正交矩阵,简单来说就是它们的列向量都是相互垂直的,而且向量的长度都是 1 。 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨顿

唵嘛呢叭咪吽

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值