2.3 线性代数 【李沐动手学深度学习】

本文介绍了线性代数的基础概念,包括标量、向量、矩阵和张量,详细阐述了它们的运算性质,如矩阵乘法、降维、点积等,并探讨了在深度学习中的应用,如张量的Hadamard积和范数计算。此外,还涉及到了线性代数在矩阵计算中的重要性,如求导和梯度等。
摘要由CSDN通过智能技术生成

目录

2.3.0  预备知识

2.3.1 标量

2.3.2  向量

2.3.3 矩阵

2.3.4 张量

 2.3.5 张量算法的基本性质

2.3.6 降维

​编辑

 2.3.7 非降维求和

2.3.8  点积

2.3.9  矩阵-向量积

2.3.10  矩阵-矩阵乘法

2.3.11 范数

小结

练习

矩阵计算


2.3.0  预备知识

 

 (矩阵乘法相当于 空间扭曲)

特征向量的直观理解:不被矩阵改变方向的向量

                                    对称矩阵总是可以找到特征向量

2.3.1 标量

x = torch.tensor(3.0)
y = torch.tensor(2.0)

2.3.2  向量

x = torch.arange(4)

# 访问张量长度
print(len(4))

#通过张量的索引来访问任一元素
print(x[3])

2.3.3 矩阵

A = torch.arange(20).reshape(5, 4)

# 矩阵的转置
print(A.T)

2.3.4 张量

向量是标量的推广,矩阵是向量的推广,可以构建具有更多轴的数据结构

X = torch.arange(24).reshape(2, 3, 4)

给定具有相同形状的任意两个张量,任何按元素二元运算的结果都将是相同形状的张量

两个矩阵的按元素乘法称为Hadamard积(Hadamard product)(数学符号⊙⊙)

 2.3.5 张量算法的基本性质

# 创建张量
A = torch.arange(20, dtype=torch.float32).reshape(5, 4)
B = A.clone()

# 矩阵乘法(得到5*4)
​A * B

2.3.6 降维

二维降维变一维,三维降维变二维

# 计算张量所有元素的和
A.sum()

# 指定张量沿哪一个轴来同股票求和降低维度
A_sum_axis0 = A.sum(axis=0)       # 沿0轴降维(纵轴 👆)
A_sum_axis1 = A.sum(axis=1)       # 沿1轴降维(横轴 👈)

关于降维的补充笔记:

 2.3.7 非降维求和

在调用函数来计算总和或均值时保持轴数不变

sum_A = A.sum(axis=1, keepdims=True)   # 不删除第二位,而是将第二位改成“1”

2.3.8  点积

torch.dot(x, y)

# 也可以这样求
torch.sum(x * y)   # 对应元素相乘求和

2.3.9  矩阵-向量积

2.3.10  矩阵-矩阵乘法

矩阵乘法

2.3.11 范数

范数就是向量元素平方和的平方根

torch.norm(u)

小结

  • 标量、向量、矩阵和张量是线性代数中的基本数学对象。
  • 向量泛化自标量,矩阵泛化自向量。
  • 标量、向量、矩阵和张量分别具有零、一、二和任意数量的轴。
  • 一个张量可以通过summean沿指定的轴降低维度。
  • 两个矩阵的按元素乘法被称为他们的Hadamard积。它与矩阵乘法不同。
  • 在深度学习中,我们经常使用范数,如𝐿1L1范数、𝐿2L2范数和Frobenius范数。
  • 我们可以对标量、向量、矩阵和张量执行各种操作。

练习

  1. 证明一个矩阵𝐀A的转置的转置是𝐀A,即(𝐀⊤)⊤=𝐀(A⊤)⊤=A。
  2. 给出两个矩阵𝐀A和𝐁B,证明“它们转置的和”等于“它们和的转置”,即𝐀⊤+𝐁⊤=(𝐀+𝐁)⊤A⊤+B⊤=(A+B)⊤。
  3. 给定任意方阵𝐀A,𝐀+𝐀⊤A+A⊤总是对称的吗?为什么?
  4. 我们在本节中定义了形状(2,3,4)(2,3,4)的张量Xlen(X)的输出结果是什么?
  5. 对于任意形状的张量X,len(X)是否总是对应于X特定轴的长度?这个轴是什么?
  6. 运行A/A.sum(axis=1),看看会发生什么。你能分析原因吗?
  7. 考虑一个具有形状(2,3,4)(2,3,4)的张量,在轴0、1、2上的求和输出是什么形状?
  8. linalg.norm函数提供3个或更多轴的张量,并观察其输出。对于任意形状的张量这个函数计算得到什么?

矩阵计算

标量求导:最基本的求导公式;导数是切线的斜率

亚导数将导数拓展到不可微的函数

(例子)

梯度:将导数拓展到向量

标量对标量求导 --- 标量

向量对标量求导 ---  向量(列向量关于标量的导数是列向量

标量对向量求导 --- 向量(标量关于列向量的导数是行向量

向量对向量求导 --- 矩阵

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值