1. 线性代数
向量的一些公式
-
∣ ∣ a ∣ ∣ ||a|| ∣∣a∣∣ 表示向量 a 的范数,课上没有讲范数的概念
-
其中第一条为求向量的二范数
-
第四条表示如果a为标量,那么向量 ∣ ∣ a ⋅ b ∣ ∣ ||a·b|| ∣∣a⋅b∣∣ 的长度等于 ∣ a ∣ ⋅ ∣ ∣ b ∣ ∣ |a|·||b|| ∣a∣⋅∣∣b∣∣ 的长度
矩阵
矩阵的一个比较重要的范数:
对称矩阵的转置等于其本身
特征向量
对于一个矩阵来说,如果它乘以一个向量后该向量的方向未改变,那么这个向量被称为特征向量。代替这个矩阵的值被称为特征值:
碎碎念
这部分个人感觉就是讲一些比较生硬的概念,这部分我只把我觉得可能会重要一些的内容记下来了。如果后续再遇到了这些内的话再去查阅资料就行了
2. 线性代数的实现
- 标量由只有一个元素的张量表示
- 向量就是由标量值组成的列表,可以通过索引访问元素
- 可以通过
len
来返回张量的长度,shape
来返回张量的形状
- 可以用
T
来转置一个矩阵
- 可以通过
clone
来分配新内存来复制
- 矩阵和标量相加相当于给标量每个元素加上该标量,相乘同理
- 可以通过
sum()
来获取总和,可以指定维度,还可以通过mean()
来求平均值,同样可以指定维度
- 可以在计算总和时保持维度不变
- 假如参数为False会怎么样呢
cumsum
可以进行累加求和
- 可以用
torch.dot
来计算元素的点积,也可以先按位乘然后求和来计算点积
- 视频中有
torch.mv
但是没有解释,还好我有gpt
- 可以用
torch.norn()
求二范数
- 求L1范数需要先取绝对值后求和
按特定轴求和
- 假设有一个五行四列的矩阵,
shape
为 [5, 4] ,那么其中的 axis 对应就分别为 0, 1,意思是按列的 axis 为 0 ,按行的 axis 为 1 - 如果按 axis = 0 求和,那么就会把 5 这一维消掉,如果按 axis = 1 求和,那么就会把 4 这一维消掉。但是如果
keepdims=True
还是可以保留维度的,只不过把它变成1,比如 [1, 4] 或者 [5, 1]。总结就是按哪一维求和就消掉哪个维度。 - 可以对多个维度求和,结果和上面的描述相同