Fundamentals in ML

Batched Matrix Multiplication

图中前面的 (b1,b2b_1, b_2b1,b2) 表示 批次维度(batch dimensions) ,也就是"有多少个矩阵同时在做乘法"。在 batched matrix multiplication 中,最后两维 (n,m) 与 (m,p) 按普通矩阵乘法规则相乘,而前面所有维度 (这里是 b1,b2b_1, b_2b1,b2)并不参与数值运算,只用于索引不同的矩阵批次;它们必须相等或满足广播规则,结果中这些维度会被原样保留下来.

Broadcasting

我们允许矩阵与向量直接相加 ,虽然在线性代数的严格定义里这本来是未定义的操作;具体做法是规定结果矩阵 C 的每个元素满足 Cx,y=Ax,y+byC_{x,y}=A_{x,y}+b_yCx,y=Ax,y+by​,也就是说向量 b 被当作在行方向上复制,加到矩阵 A 的每一行上,从而得到一个同形状的矩阵,而无需显式构造一个"每一行都等于 b"的大矩阵

规则


第 1 条(右到左比较维度)

If the two arrays differ in their number of dimensions, the shape of the one with fewer dimensions is padded with ones on its leading (left) side.

意思是:如果两个数组的维度数不同 ,就先把"维度少的那个"在左边补 1 ,直到两个数组的维度数一样;注意这是概念上的补 1,不是实际创建新数据。例如形状 (n,) 和 (b,n) 比较时,把 (n,) 看成 (1,n)。

第 2 条(维度为1的拉伸)

If the shape of the two arrays does not match in any dimension, the array with shape equal to 1 in that dimension is stretched to match the other shape.

意思是:在某一个维度上,如果两个数组大小不同,但其中一个等于 1,那么这个等于 1 的维度会被**拉伸(复制)**到和另一个一样大;这就是"广播"的核心。例如 (1,n) 和 (b,n) 运算时,前者会在第一个维度被复制 (b) 次。

第 3 条

If in any dimension the sizes disagree and neither is equal to 1, an error is raised.

意思是:如果在某个维度上两个大小不相等 ,而且都不等于 1,那就没法广播,运算直接报错;例如 (2,n) 和 (3,n) 在第一维上既不相等又都不为 1,因此是非法的。

举例子(维度循环有点问题)

右对齐 → 逐轴检查 → 有 1 就拉伸 → 否则报错

例题


相关推荐
小糖学代码7 小时前
LLM系列:2.pytorch入门:9.神经网络的学习
人工智能·python·深度学习·神经网络·学习·机器学习
liuyunshengsir7 小时前
手写最基础的大模型推理并使用Profile监控GPU性能消耗情况
人工智能·深度学习·机器学习
硅谷秋水9 小时前
《自动驾驶系统开发》英文版《Autonomous Driving Hanbook》推荐
人工智能·深度学习·机器学习·计算机视觉·语言模型·自动驾驶
啦啦啦_99999 小时前
案例之 逻辑回归_癌症预测
算法·机器学习·逻辑回归
惊鸿一博9 小时前
自动驾驶_一段式端到端_三条技术路线_UniAD_SparseDrive_概述
人工智能·机器学习·自动驾驶
我是大聪明.9 小时前
大模型Tokenizer原理:BPE、WordPiece与子词编码的核心机制深度解析
人工智能·线性代数·算法·机器学习·矩阵
威尔逊·柏斯科·希伯理9 小时前
机器学习-特征工程
人工智能·机器学习
地球资源数据云10 小时前
2015年中国30米分辨率沼泽湿地空间分布数据集
大数据·数据结构·数据库·人工智能·机器学习
郝学胜-神的一滴10 小时前
深度学习核心:损失函数完全解析 —— 从原理到 PyTorch 实战
人工智能·pytorch·python·深度学习·机器学习
数据与后端架构提升之路10 小时前
自动驾驶数据闭环中,Video Clip 的多模态特征到底怎么提取?
人工智能·机器学习·自动驾驶