Description

该博文为动手学深度学习v2-线性代数 配套笔记

Notes

范数

矩阵的范数是衡量矩阵“大小”的标量。
Frobenius范数:Frobenius范数是将矩阵中每个元素的平方和的平方根。对于一个列的矩阵,它的Frobenius范数为

即将矩阵每一个元素的平方求和再开根号(有点像求向量长度的矩阵版)

正定、正交、置换矩阵

正定:

正交:每一列都是单位长度,且互相正交

特征向量和特征值


对称矩阵总是有特征向量

特征向量即不被矩阵改变方向的向量,只改变长度;前后长度的比例就是特征值

Implementations

标量,向量,矩阵

1
2
3
4
5
6
7
x=torch.tensor([1.0])#标量
y=torch.tensor([1.0,2.0,3.0,4.0])#向量
y.shape #只有一个元素,因为只有一个轴
A=y.reshape(2,2)#向量转矩阵
A.T#转置
A*B#矩阵按元素乘
A.sum()#元素和

降维

1
2
3
4
5
A_sum_axis0 = A.sum(axis=0)# 对某轴求和降维
A.sum(axis=[0, 1]) # 对行求和之后对列求和
A.mean(), A.sum() / A.numel()# 求平均

sum_A = A.sum(axis=1, keepdims=True)#求和但不降维

矩阵点积、向量积、矩阵乘法

点积:

1
torch.sum(x * y)# 通过执行按元素乘法,然后进行求和来表示两个向量的点积

向量积:使用torch.mv

1
torch.mv(A, x)

矩阵乘法:

1
torch.mm(A, B)

L2范数

$$
||x||2=\sqrt(\sum x{(i,j)}^2)
$$

1
2
3
u = torch.tensor([3.0, -4.0])
torch.norm(u)
torch.abs(u).sum()# L1范数

在机器学习中,范数用于量化预测值和检验集结果之间的距离,以进行优化.