2.3线性代数

1.

变量是未知的标量,标量是只有一个元素的张量,标量是向量的元素或者分量

2.矩阵

aij 第i行j列的元素

矩阵的转置,如果B=AT 那么Bij=Aji 对称矩阵:A=AT

对于形状相同的矩阵可以进行按元素计算

3.张量算法

两个矩阵的按元素乘法称为Hadamard积

将张量乘以或加上一个标量不会改变张量的形状,其中张量的每个元素都将与标量相加或相乘。

4.求和与平均值(降维与非降维)

降维求和

求和的时候会降维,使之变成标量进行运算

1)axis=0是一列一列的计算最后得到4个数 axis=1是一行一行的计算最后得到5个数 (5,4)代表着五行四列 也或者一行四个元素 axis=1给出的解释是"指定axis=1将通过汇总所有列的元素降维(轴1)" 但其实他是一行一行相加 最后得到的数字是5 (一列有五个元素)那么是否可以认为,对于axis 和 dim 都可以说变化最后体现在n维上 axis转换(如下图)所以对于axis=(n-1)和dim=(n-1)最后都体现出行(第一维度)的变化

对于cat函数就是扩展这一行 对于sum就是压缩这一行 (dim/axis=1)

这里的变化就是最直观的形状上的变化,因为对于axis降维函数来说,相当于把数字压缩成一行 本质是对列进行操作 但是反映出来我们看到或者得到的是行(当axis=0时) 为了方便记忆我这么变换了一下说法 为了函数什么的统一理解,不过后续发现很多直接记忆就可以的话再重申(毕竟目前对我来说这个还是有一点点绕 到底怎么记住维度呢 代表的都是什么变换呢) 个人有个人理解,欢迎讨论!

2)A.sum(axis=0,1)=a.sum()沿行列求和和直接求和是一样的

降维求平均值

因为mean()函数只支持浮点型or复数型,所以单纯整数会报错

A.mean(axis=0)=A.sum(axis=0)/A.numel()

非降维求和

保留他的轴数或者行数

如果我们想沿某个轴计算A元素的累积总和, 比如axis=0(按行计算),可以调用cumsum函数。 此函数不会沿任何轴降低输入张量的维度。

拿axis=1说明:第一列是初始数字,最后一列就是他们的和(和降维求和结果相同) 而其他的则是 第二列则是沿着行方向,以每行第一个元素为基础,依次加上该行后续元素。比如第一行的1是第一个元素0加上第二个元素1,第二行的9是第一个元素4加上第二个元素5(假设原始张量第二行第二列值为5 ) 总之,是按照指定轴方向进行累积求和运算

5.点积

1.相同位置 按元素乘积 的和

2.权重为非负数且和为1时,点积表示加权平均

3.当两个向量规范化得到单位长度后,点积表示夹角的余弦

6.矩阵向量积

Q. 为什么行向量x==列向量 那么列向量x的矩阵向量积==行向量吗?

A. 1)点积的结果是一个标量,在计算ax时,对a的每一行都进行这样的点积操作,因为a有m行,所以得到m个标量,这些标量构成了一个ax维的列向量

2)a的列向量表现出来的是a11,.....,a1n 实际上不符合矩阵是二维结构这个要求 列向量和x的点积是标量

(m,)的向量可以看作是(m,1)的列矩阵

矩阵乘法 (m, n) * (n,) 的语境下,框架会自动将那个 (n,) 的向量当作 (n, 1) 的列向量来处理,然后输出一个 (m, 1) 的列向量,最后再为了方便显示,将其"压缩"回一维形式 (m,) 展示给我们。

(m,n)m行n列 (n,1)n行1列 行数由第一个矩阵m决定 列数由第二个矩阵的1决定 最后得到(m,1)m行1列 >>其实我还是有一点点不懂

举一个例子

这里4是 第一行(1,2,3)分别和(2,1,0)按元素相乘再求和得到的 13是(4,5,6)与(2,1,0)点积得到 有几行最后得到几个数

7.矩阵矩阵积/矩阵乘法

依旧是A决定行数B决定列数 类似于矩阵向量积 m*k @ k*n=m*n m行n列

看下面这个例子 但注意(m,k)(k,n)这个k一定要相等方便对应维度

8.小练

1.验证可以使用2.1学到的逻辑运算符来验证

3.逻辑分析 :对于A,A.T表示他的转置矩阵 Aij=A.Tji (A+A.T)12=A12+A.T12=A12+A21 (A+A.T)21=A21+A.T21=A21+A12 结果相同 所以也是

对称矩阵:A=A.T,方阵代表m=n行数等于列数的矩阵

如果是普通矩阵就会是这种情况:

4.len(x)访问第0维(最高纬度)的长度 也称访问向量的维度(这里的维度和一维二维不一样),你可以理解为这一维度有几个部分

5.对于多个维度的张量 len()表示他最高维度的部分数 对于一维向量来说 len()表示长度(这个长度就是我们数值的长度)

6.对于方阵来说是可以进行的 因为你对某一维求和得到的结果和行or列数相同

但对于普通的矩阵 你得到的行数or列数是肯定有出入的 没办法保证完全相同,无法进行运算

Q不是学习了广播机制,为什么不能进行呢

A 广播机制是需要保证维度对齐要不相等要不一方为1的(不存在==1)对于下面这个来说 (4,3)得到的是(3,) 对(3,4)来说得到的是(4,)无法对其 无法运行

7.(3,4)(2,4)(2,3)根据结果你会发现 对哪个维度求和就把哪个维度取消了相当于(这里对于维度0,1,2我和之前dim一个解释 0,1,2一次从最高维度向最低维度)

其实根据这个练习对于上面的二维 降维求和,可以这么记忆,就可以往下延申猜出是哪个部分进行计算得到答案

相关推荐
workflower20 分钟前
装备企业的 AI 路线图
人工智能·深度学习·机器学习·设计模式·机器人
AKAMAI29 分钟前
Linode接口及默认防火墙现已全面开放使用
人工智能·云计算
前端开发江鸟1 小时前
RAG 回答错了,问题到底出在召回、重排,还是生成?
人工智能
美狐美颜SDK开放平台1 小时前
直播app开发如何实现主播级美颜效果?美颜sdk开发方案详解
人工智能·音视频·美颜sdk·视频美颜sdk·美颜api
东方小月1 小时前
从零开发一个 Coding Agent(四):使用状态机校验大模型事件流
前端·人工智能·后端
大龄码农有梦想1 小时前
使用大模型服务如何保证数据安全?企业 AI 安全、私有化部署与治理实践
人工智能·私有化部署·数据安全·信创·ai agent·智能体·智能体开发平台
冬奇Lab2 小时前
每日一个开源项目(第170篇):CodeWiki - ACL 2026 论文级代码库自动文档生成,递归多 Agent 架构
人工智能·开源·资讯
lxw18449125142 小时前
Claude-Code企业级培训教程
人工智能
冬奇Lab2 小时前
代码库知识库系列(01):技术全景——为什么代码理解比文档检索难十倍
人工智能
MartinYeung52 小时前
[论文学习]迈向自主医疗人工智能智能体:MIRA系统深度分析
人工智能·学习