《动手学深度学习》——线性代数
数学
矩阵
矩阵是一个按照长方阵列排列的复数或实数集合。向量将标量从零阶推广到一阶,矩阵将向量从一阶推广到二阶。
数学中,通常用粗体、大写字母来表示(例如,X、Y和Z)
数学表示法使用 来表示矩阵,其由行和列的实值标量组成。我们可以将任意矩阵视 为一个表格,其中每个元素aij属于第i行第j列:
对于任意 ,的形状是或。
访问元素
我们可以通过行索引和列索引来访问矩阵中的标量元素aij,例如。为了表示起来简单,
只有在必要时才会将逗号插入到单独的索引中,例如
运算
转置(transpose)
当我们交换矩阵的行和列时,结果称为矩阵的转置(transpose)。
通常用来表示矩阵的转置,如果, 则对于任意i和j,都有。
哈达玛积(Hadamard积)
两个矩阵的按元素乘法称为Hadamard积(Hadamard product)(数学符号⊙)。
矩阵向量积
矩阵乘积
特殊矩阵
方阵
当矩阵具有相同数量的行和列时,其形状将变为正方形;因此,它被称为方阵(square matrix)
对称矩阵(symmetric matrix)
作为方阵的一种特殊类型,对称矩阵。A等于其转置:。
编程
矩阵在代码中表示为具有两个轴的张量。
矩阵
A = torch.arange(20).reshape(5, 4)
B = torch.tensor([[1, 2, 3], [2, 0, 4], [3, 4, 5]])
A, B
输出
(tensor([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15],
[16, 17, 18, 19]]),
tensor([[1, 2, 3],
[2, 0, 4],
[3, 4, 5]]))
转置
B.T
输出
tensor([[1, 2, 3],
[2, 0, 4],
[3, 4, 5]])