线性代数部分
线性代数是深度学习的基础前置知识之一,下面就线性代数的一些知识做一些总结。
标量、向量、矩阵和张量
标量(scalar):一个单独的数,就是一个标量。
向量(vector):一个向量是一列数,这些数是有序排列的。可以用 x i x_{i} xi 来表示向量中的元素。如果一个向量有 n n n 个元素,那么这个向量属于实数集 R \mathbb{R} R 的 n n n 次笛卡尔乘积构成的集合。
x = [ x 1 x 2 x 3 . . . x n ] \boldsymbol{x}= \begin{bmatrix} x_{1}\\x_{2}\\x_{3}\\...\\x_{n} \end{bmatrix} x=⎣⎢⎢⎢⎢⎡x1x2x3...xn⎦⎥⎥⎥⎥⎤
符号和约定: 我们可以定义一个包含下标索引的集合 S = { 1 , 3 , 4 } S=\{1,3,4 \} S={1,3,4},用 x S x_{S} xS来指定 x 1 , x 3 , x 4 x_{1},x_{3},x_{4} x1,x3,x4 ,用 x − S x_{-S} x−S来指定除 x 1 , x 3 , x 4 x_{1},x_{3},x_{4} x1,x3,x4 以外的元素。
矩阵(matrix):矩阵是一个二维数组,其中每个元素都能被两个索引所确定。如果一个实数矩阵
A
A
A的高度为
m
m
m,宽度为
n
n
n ,那么我们说
A
∈
R
m
×
n
\boldsymbol{A}\in\mathbb{R}^{m \times n}
A∈Rm×n。我们使用不加粗的斜体形式来表示元素,索引之间用逗号隔开。
A
=
[
A
1
,
1
.
.
.
A
1
,
n
.
.
.
.
.
.
A
m
,
1
.
.
.
A
m
,
n
]
\boldsymbol{A}=\begin{bmatrix} A_{1,1} &&...&&A_{1,n} \\ ...& & &&...\\ A_{m,1}&&... & &A_{m,n} \end{bmatrix}
A=⎣⎡A1,1...Am,1......A1,n...Am,n⎦⎤
符号和约定: 我们使用“ : ”来表示单个坐标轴的全体。例如 A 1 , : A_{1,:} A1,:表示 A 1 , 1 , A 1 , 2 , A 1 , 3 , . . . , A 1 , n A_{1,1},A_{1,2},A_{1,3},...,A_{1,n} A1,1,A1,2,A1,3,...,A1,n ,即表示第一行所有元素。
A i , : A_{i,:} Ai,: 表示第 i i i行所有元素
A : , j A_{:,j} A:,j 表示第 j j j列所有元素
张量(tensor):在某些情况下,会讨论坐标超过两维的数组。一般的,一个数组中的元素分布在若干维度坐标的规则网络中,我们称之为张量。我们使用 A 来表示张量 “A”。张量A中坐标为 ( i , j , k ) (i,j,k) (i,j,k)的元素记为 A i , j , k A_{i,j,k} Ai,j,k。
矩阵
矩阵的基本定义和运算
转置(transpose):是矩阵的重要操作之一,我们将矩阵
A
\boldsymbol{A}
A的转置表示为
A
T
\boldsymbol{A^{T}}
AT。
(
A
T
)
i
,
j
=
A
j
,
i
(\boldsymbol{A^{T}})_{i,j}=A_{j,i}
(AT)i,j=Aj,i
从直观上看,矩阵的转置是以对角线为轴的两边元素翻转互换,如图。
矩阵相加: 如果两个矩阵形状相同,那么他们就能相加。两矩阵相加就是指对应元素相加。
C
=
A
+
B
\boldsymbol{C=A+B}
C=A+B即
C
i
,
j
=
A
i
,
j
+
B
i
,
j
C_{i,j}=A_{i,j}+B_{i,j}
Ci,j=Ai,j+Bi,j
矩阵与标量相乘、相加: 只需将矩阵上的每一个元素与该标量相乘、相加。
D
=
a
⋅
B
+
c
\boldsymbol{D=} a \cdot \boldsymbol{B} +c
D=a⋅B+c即
D
i
,
j
=
a
⋅
B
i
,
j
+
c
D_{i,j}=a\cdot B_{i,j}+c
Di,j=a⋅Bi,j+c
在实际计算中,我们允许矩阵和向量相加,然后生成另一个矩阵:
C
=
A
+
b
\boldsymbol{C=A+b}
C=A+b ,其中
C
i
,
j
=
A
i
,
j
+
b
j
C_{i,j}=A_{i,j}+b_{j}
Ci,j=Ai,j+bj,也就是说,我们直接将向量
b
\boldsymbol{b}
b和矩阵
A
\boldsymbol{A}
A的每一行相加。这种隐式地将向量
b
\boldsymbol{b}
b直接复制到很多位置的方式,成为广播(broadcasting)。
注:Python中有这种机制,能实现矩阵计算的简化
矩阵和矩阵、向量相乘:
矩阵乘积(matrix product):两个矩阵的乘积结果是一个新矩阵。矩阵能相乘的条件是,矩阵
A
\boldsymbol{A}
A的列数和
B
\boldsymbol{B}
B的行数相等。若矩阵
A
\boldsymbol{A}
A的形状为
m
×
n
m\times n
m×n ,矩阵
B
\boldsymbol{B}
B的形状为
n
×
p
n\times p
n×p,那么结果得到的矩阵
C
\boldsymbol{C}
C的形状为
m
×
p
m \times p
m×p。
C
=
A
B
\boldsymbol{C=AB}
C=AB
乘法的运算操作定义为:
C
i
,
j
=
∑
k
A
i
,
k
B
k
,
j
C_{i,j}=\sum_{k} A_{i,k}B_{k,j}
Ci,j=k∑Ai,kBk,j
直观地说,
C
i
,
j
C_{i,j}
Ci,j是矩阵
A
\boldsymbol{A}
A的第i行和矩阵
B
\boldsymbol{B}
B的第j列元素对应相乘再求和。
要注意,简单地将两个矩阵(同阶矩阵)的对应元素对应相乘不是矩阵的乘相乘,这样的运算我们称之为元素对应乘积(element-wise product)或者哈达玛积(Hadamard product),记为 A ⨀ B \boldsymbol{A \bigodot B} A⨀B
矩阵乘积满足分配率和结合律:
A
(
B
+
C
)
=
A
B
+
A
C
\boldsymbol{A(B+C)=AB+AC}
A(B+C)=AB+AC
A
B
C
=
A
(
B
C
)
\boldsymbol{ABC=A(BC)}
ABC=A(BC)
需要注意,矩阵乘积并非所有都满足交换律。
相同维度的向量 x x x和 y y y的点积(dot product)可以看成是矩阵乘积 x T y x^{T}y xTy。因此,矩阵乘积计算步骤中的 C i , j C_{i,j} Ci,j可以看成是矩阵 A 和 B A和B A和B i行与j列的点积。
矩阵乘积的转置:
(
A
B
)
T
=
(
B
T
A
T
)
\boldsymbol{(AB)^{T}=(B^{T}A^{T})}
(AB)T=(BTAT)
注意,标量的转置是其自身。我们可以有如下等式,它可以帮助我们化简一些式子。
x T y = ( x T y ) T = y T x \boldsymbol{x^{T}y=(x^{T}y)^{T}=y^{T}x} xTy=(xTy)T=yTx
向量和矩阵构成线性方程组:
我们可以通过如下的形式表示一个方程组:
A
x
=
b
\boldsymbol{Ax=b}
Ax=b
即为:
A
i
,
:
x
=
b
i
\boldsymbol{A_{i,:}x}=b_{i}
Ai,:x=bi
更明确点,可以展开为:
A
1
,
1
x
1
+
A
1
,
2
x
2
+
.
.
.
+
A
1
,
n
x
n
=
b
1
\boldsymbol{A_{1,1}x_{1}+A_{1,2}x_{2}+...+A_{1,n}x_{n}=}b_{1}
A1,1x1+A1,2x2+...+A1,nxn=b1
A
2
,
1
x
1
+
A
2
,
2
x
2
+
.
.
.
+
A
2
,
n
x
n
=
b
2
\boldsymbol{A_{2,1}x_{1}+A_{2,2}x_{2}+...+A_{2,n}x_{n}=}b_{2}
A2,1x1+A2,2x2+...+A2,nxn=b2
.
.
.
...
...
A
3
,
1
x
1
+
A
3
,
2
x
2
+
.
.
.
+
A
3
,
n
x
n
=
b
n
\boldsymbol{A_{3,1}x_{1}+A_{3,2}x_{2}+...+A_{3,n}x_{n}=}b_{n}
A3,1x1+A3,2x2+...+A3,nxn=bn
可见,矩阵提供了一个简洁的线性方程组表示。对强迫症玩家很友好
单位矩阵和逆矩阵
单位矩阵
单位矩阵(identity matrix):任意一个向量和单位矩阵作乘积运算,该向量保持不变。我们将维持n维向量保持不变的单位矩阵记为
I
n
\boldsymbol{I_{n}}
In,给出如下定义:
I
n
x
=
x
,
∀
x
∈
R
n
\boldsymbol{I_{n}x=x},\forall \boldsymbol{x} \in \mathbb{R}^{n}
Inx=x,∀x∈Rn
单位矩阵的主对角线都是1,其余位置都为0,如图,给出一个3阶单位矩阵的例子,它能保持任意一个3阶向量和它相乘后不变。
I
3
=
[
1
0
0
0
1
0
0
0
1
]
\boldsymbol{I_{3}}=\begin{bmatrix}1&0&0 \\0&1&0 \\0&0&1 \end{bmatrix}
I3=⎣⎡100010001⎦⎤
逆矩阵
逆矩阵(matrix inversion):逆矩阵十分重要,其地位相当于实数概念里面的倒数。我们将矩阵
A
\boldsymbol{A}
A的逆,记为
A
−
1
\boldsymbol{A}^{-1}
A−1,满足以下条件:
A
A
−
1
=
I
n
\boldsymbol{AA^{-1}=I_{n}}
AA−1=In
逆矩阵可用于求解线性方程组,其求解过程如下:
A
x
=
b
\boldsymbol{Ax=b}
Ax=b
A
−
1
A
x
=
A
−
1
b
\boldsymbol{A^{-1}Ax=A^{-1}b}
A−1Ax=A−1b
I
n
x
=
A
−
1
b
\boldsymbol{I_{n}x=A^{-1}b}
Inx=A−1b
x
=
A
−
1
b
\boldsymbol{x=A^{-1}b}
x=A−1b
可见,若能找到一个逆矩阵
A
−
1
\boldsymbol{A^{-1}}
A−1,我们就能解线性方程组。
注意:并不是所有的矩阵都存在逆矩阵,对于这些没有逆矩阵的矩阵,我们可以求其伪逆矩阵,使用伪逆矩阵能尽可能接近真正的解
线性相关和生成子空间
若矩阵 A − 1 \boldsymbol{A^{-1}} A−1存在,那么对于线性方程组 A x = b \boldsymbol{Ax=b} Ax=b就存在唯一的解。但是,对于一些情况而言,方程组的解并不存在,或者有无穷多个解。
为了分析方程组有多少个解,这里给出两种思路:
1.使用相关定理:
通过比较系数矩阵和增广矩阵的秩(rank),可以得出方程组的解有多少个的结论。
如果系数矩阵的秩r(A)小于增广矩阵的秩r(A,b),r(A)<r(A,b),那么方程组无解。
如果系统矩阵的秩小于方程组未知数个数,r(A)=r(A,b)<n,那么方程组有多个解。
如果系统矩阵的秩等于方程组未知数个数,r(A)=r(A,b)=n,那么方程组有唯一解。
2.书中给出了另一种思路:
可以将
A
\boldsymbol{A^{}}
A的列向量看作是从原点(origin)(零向量)出发的不同方向,向量
x
\boldsymbol{x}
x中的每一个元素则指导着应该沿着这些方向走多少距离,即
x
i
{x_{i}}
xi表示要沿着第
i
i
i个列向量(方向)走多远:
A
x
=
∑
i
x
i
A
:
,
i
\boldsymbol{Ax=\sum_{i}}x_{i}\boldsymbol{A_{:,i}}
Ax=i∑xiA:,i
(个人的理解:矩阵其实是一种运动的表示形式(空间的线性变换),而向量则是一个对象,对向量施加以运动就是矩阵乘以向量)
这种操作被称为线性组合(linear combination)。就形式上,一组向量的线性组合,是对应的常数系数与每个向量的乘积和:
∑
i
c
i
v
(
i
)
\sum_{i}c_{i}\boldsymbol{v^{(i)}}
i∑civ(i)
一组向量的生成子空间(span)是原始向量线性组合后所能达到的点的集合。设
a
1
,
a
2
,
a
3
,
.
.
.
a
s
∈
R
n
\boldsymbol{a_{1},a_{2},a_{3},...a_{s} \in \mathbb{R}^{n}}
a1,a2,a3,...as∈Rn,则这组向量的所有线性组合得到的向量集合U:
U
=
{
x
∣
x
=
k
1
a
1
+
k
2
a
2
+
+
.
.
.
+
k
s
a
s
,
k
1
,
k
2
,
.
.
.
,
k
s
∈
R
}
U=\{ \boldsymbol{x | x=}k_{1}\boldsymbol{a_{1}}+k_{2}\boldsymbol{a_{2}}++...+k_{s}\boldsymbol{a_{s}} , k_{1},k_{2},...,k_{s} \in \mathbb{R}\}
U={x∣x=k1a1+k2a2++...+ksas,k1,k2,...,ks∈R}
集合
U
U
U即为向量组
{
a
1
,
a
2
,
a
3
,
.
.
.
a
s
}
\{\boldsymbol{a_{1},a_{2},a_{3},...a_{s} \}}
{a1,a2,a3,...as}所生成的子空间。
确定 A x = b \boldsymbol{Ax=b} Ax=b是否有解,就相当于确定 b \boldsymbol{b} b 是否在 A \boldsymbol{A} A 的列向量的生成子空间中。这个特别的生成子空间,被称为 A \boldsymbol{A} A的列空间(column space)或者 A \boldsymbol{A} A的值域(range)。
在向量组中,有部分向量能被其他向量所表示,那么这些向量就是“冗余的”,这种冗余被称为线性相关(linear dependence),如果向量组中任意一个向量都不能被其他向量表示,那么我们称这组向量是线性无关的(linearly independent)。这也意味着,如果一个矩阵的列空间能覆盖整个 R m \mathbb{R}^{m} Rm,那么它至少包含一组 m m m个线性无关的向量。
一个列向量线性相关的方阵被称为奇异(singular)方阵,奇异的方阵没有逆矩阵。
范数
我们使用范数(norm)的函数来衡量向量的大小,对于
L
p
L^{p}
Lp范数定义如下:
∥
x
∥
p
=
(
∑
i
∣
x
i
∣
p
)
1
/
p
\|\boldsymbol{x} \|_{p}=(\sum_{i}|x_{i}|^{p})^{1/p}
∥x∥p=(i∑∣xi∣p)1/p
其中
p
∈
R
,
p
⩾
1
p \in \mathbb{R},p\geqslant 1
p∈R,p⩾1
范数是将向量映射到非负值的函数。从直观上看,向量x的范数衡量的是原点到点x的距离。若要给出更严格的定义,范数是满足如下性质的函数:
f
(
x
)
=
0
⇒
x
=
0
f(\boldsymbol{x})=0 \Rightarrow \boldsymbol{x}=0
f(x)=0⇒x=0
f ( x + y ) ≤ f ( x ) + f ( y ) f(\boldsymbol{x+y})\leq f(\boldsymbol{x})+ f(\boldsymbol{y}) f(x+y)≤f(x)+f(y)
∀ a ∈ R , f ( a x ) = ∣ a ∣ f ( x ) \forall a \in\R,f(a\boldsymbol{x})=|a|f(\boldsymbol{x}) ∀a∈R,f(ax)=∣a∣f(x)
当 p = 2 p=2 p=2时, L 2 L^{2} L2范数被称为欧几里得范数(Euclidean norm)。它的几何意义是原点出发到向量 x \boldsymbol{x} x确定的点的欧几里得距离。在机器学习中,欧几里得范数经常会出现,所以常常简化为 ∥ x ∥ \| x\| ∥x∥。
最大范数
最大范数(max norm)指的是
L
∞
L^{\infty}
L∞范数,这个范数表示向量中具有最大幅值的元素的绝对值:
∥
x
∥
∞
=
m
a
x
∣
x
i
∣
\|x\|_{\infty}=max|x_{i}|
∥x∥∞=max∣xi∣
Frobenius范数
我们希望衡量一个矩阵的大小,可以使用Frobenius范数,对矩阵所有元素平方求和再开方(和向量的L2范数类似):
∥
A
∥
F
=
∑
i
,
j
A
i
,
j
2
\|\boldsymbol{A}\|_{F}=\sqrt{\sum_{i,j}A^{2}_{i,j}}
∥A∥F=i,j∑Ai,j2
两个向量的点积也可用范数来表示: x T y = ∥ x ∥ 2 ∥ y ∥ 2 cos θ \boldsymbol{x^{T}y=\| x \|_{2}\|y\|_{2}\cos \theta } xTy=∥x∥2∥y∥2cosθ
特殊类型的矩阵和向量
对角矩阵(diagonal matrix):主对角线非零,其他位置全是零。单位矩阵 I I I就是个对角矩阵。我们使用 d i a g ( v ) diag(\boldsymbol{v}) diag(v)来表示对角元素由向量 v \boldsymbol{v} v给出的对角方阵。对角方阵存在逆矩阵,当且仅当主对角线上的元素都是非零值时。 d i a g ( v ) − 1 = d i a g ( [ 1 / v 1 , . . . , 1 / v n ] T ) diag(\boldsymbol{v})^{-1}=diag([1/v_{1},...,1/v_{n}]^{T}) diag(v)−1=diag([1/v1,...,1/vn]T)
对称矩阵(symmetric matrix):它的转置是其自身。
A
=
A
T
\boldsymbol{A}=\boldsymbol{A}^{T}
A=AT
正交矩阵(orthogonal matrix):指行向量和列向量分别标准正交的方阵:
A
A
T
=
A
T
A
=
I
\boldsymbol{AA^{T}=A^{T}A=I}
AAT=ATA=I
也就意味着:
A
−
1
=
A
T
\boldsymbol{A^{-1}=A^{T}}
A−1=AT
向量正交: x T y = 0 \boldsymbol{x^{T}y=0} xTy=0,则称这两个向量正交(orthogonal)。如果这两个向量都不是零向量,那么他们之间的夹角是90度。在 R n \R^{n} Rn中至多有 n n n个范数非零的向量相互正交。如果这些向量相互正交,且范数都为1,我们称他们是标准正交(orthonormal)的,也就是它们是一组标准正交基。
特征分解
分解是研究一个复杂事物的必备手段,就像画画也需要将复杂的物体分割成简单的几何体那样。从复杂的事物分解出最基本的,通用的简单事物,以便于我们能快速理解和拓展应用。
在整数中,我们可以将整数分解为质因数,例如:12=2x2x3,我们就可以知道12能被2或3整除,而不能被5整除。在矩阵中,我们也可以通过分解虎阵来发现矩阵那些不明显的性质。
特征分解是最常用的矩阵分解之一,它能将矩阵分解成一组特征向量和特征值,以此来反应矩阵的一些性质。
特征向量:方阵
A
\boldsymbol{A}
A的特征向量(eigenvector):是指一个向量
v
\boldsymbol{v}
v在于
A
\boldsymbol{A}
A相乘以后,相当于对该向量进行线性缩放。
A
v
=
λ
v
\boldsymbol{Av=}\lambda\boldsymbol{v}
Av=λv
其中, λ \lambda λ被称为特征向量 v \boldsymbol{v} v对应的特征值。(我们也可以定义左特征向量,但常用的还是右特征向量)
特征向量我们通常只考虑单位特征向量
假设矩阵
A
\boldsymbol{A}
A有n个线性无关的特征向量
{
v
1
,
.
.
.
,
v
n
}
\{ \boldsymbol{v}^{1},...,\boldsymbol{v}^{n}\}
{v1,...,vn}对应特征值
{
λ
1
,
.
.
.
,
λ
n
}
\{\lambda_{1},...,\lambda_{n} \}
{λ1,...,λn},令矩阵
V
=
[
v
1
,
.
.
.
,
v
n
]
\boldsymbol{V=[\boldsymbol{v}^{1},...,\boldsymbol{v}^{n}]}
V=[v1,...,vn],向量
λ
=
[
λ
1
,
.
.
.
,
λ
n
]
\boldsymbol{\lambda}=[\lambda_{1},...,\lambda_{n}]
λ=[λ1,...,λn],那么矩阵
A
\boldsymbol{A}
A的特征分解可以记为:
A
=
V
d
i
a
g
(
λ
)
V
−
1
\boldsymbol{A=Vdiag(\lambda)V^{-1}}
A=Vdiag(λ)V−1
注意,不是每一个矩阵都能分解成特征向量和特征值,但对于实对称矩阵来说,它必定可以进行特征分解,得到实特征向量和实特征值。
A
=
Q
Λ
Q
−
1
\boldsymbol{A=Q\Lambda Q^{-1}}
A=QΛQ−1
其中
Q
\boldsymbol{Q}
Q是
A
\boldsymbol{A}
A的特征向量构成的正交矩阵,
Λ
\boldsymbol{\Lambda}
Λ 是特征值对角矩阵。由于
Q
\boldsymbol{Q}
Q是正交矩阵,我们可以将
A
\boldsymbol{A}
A看做沿着向量
v
i
\boldsymbol{v^{i}}
vi伸缩
λ
i
\lambda_{i}
λi倍的空间。
奇异值分解
矩阵分解的另一种方式,即奇异值分解(singular value decomposition,SVD),它将矩阵分解成奇异向量(singular vector)和奇异值(singular value)。每个实数矩阵都有一个奇异值分解,但不一定有特征分解。例如,非方阵矩阵就没有特征分解,我们只能用奇异值分解。
奇异值分解有着类似于特征分解的形式:
A
=
U
D
V
T
\boldsymbol{A=UDV^{T}}
A=UDVT
其中,若 A \boldsymbol{A} A是一个 m × n m\times n m×n的矩阵,那么 U \boldsymbol{U} U是 m × m m \times m m×m方阵, D \boldsymbol{D} D是 m × n m\times n m×n矩阵, V V V是 n × n n \times n n×n矩阵。矩阵 U \boldsymbol{U} U和 V \boldsymbol{V} V都定义为方阵。
注意:矩阵D不一定是方阵
矩阵
D
D
D:对角线上的元素被称为奇异值。
矩阵
U
U
U:其列向量被称为左奇异向量。
矩阵
V
V
V:其列向量被称为右奇异向量。
SVD最有用的性质是将求逆拓展到非方阵矩阵上。
伪逆
对于非方阵而言,没有逆矩阵的定义。对于下面问题:
A
x
=
y
\boldsymbol{Ax=y}
Ax=y
我们希望能找到一个逆矩阵
B
\boldsymbol{B}
B,通过左乘逆矩阵求解。
x
=
B
y
\boldsymbol{x=By}
x=By
但事事不总能如人愿,有时候我们无法用唯一的映射将A映射到B。
(个人的理解:如果这个矩阵是将高维空间向低维空间压缩的一个变换,那么我们无法找到它的逆,因为低纬度是无法一 一映射到高纬度的)
对于这种问题的一种解法是 Moore-Penrose 伪逆,这是一类广义逆。
矩阵
A
\boldsymbol{A}
A的伪逆定义如下:
A
+
=
lim
a
→
0
(
A
T
A
+
a
I
)
−
1
A
T
\boldsymbol{A^{+}=\lim_{a \to 0}(A^{T}A+aI)^{-1}A^{T}}
A+=a→0lim(ATA+aI)−1AT
实际计算中,我们使用如下公式:
A + = V D + U T \boldsymbol{A^{+}=VD^{+}U^{T}} A+=VD+UT
其中, U , D , V \boldsymbol{U,D,V} U,D,V是矩阵奇异值分解后得到的。对角矩阵 D \boldsymbol{D} D的伪逆 D + \boldsymbol{D^{+}} D+是非零元素取到数再转置。
当A的列数多于行数时,使用伪逆解法得到的解是所有可行解中欧几里得范数最小的。
当A的列数小于行数时,方程可能无解,此时通过伪逆解得的x,使得Ax和y的欧几里得距离最小,即Ax尽可能接近y。
迹运算
迹(trace)是矩阵主对角元素的和。记为:
T
r
(
A
)
=
∑
i
A
i
,
i
\boldsymbol{Tr(A)=\sum_{i}}A_{i,i}
Tr(A)=i∑Ai,i
迹运算提供了另一种描述Frobenius范数的方法:
∥
A
∥
F
=
T
r
(
A
A
T
)
\|A\|_{F}=\sqrt {Tr(\boldsymbol{AA^{T}})}
∥A∥F=Tr(AAT)
迹的良好性质:
t r ( A ) = t r ( A T ) tr(A)=tr(A^{T}) tr(A)=tr(AT) A的迹和A转置的迹相等
t r ( A B C ) = t r ( C A B ) = t r ( B C A ) tr(ABC)=tr(CAB)=tr(BCA) tr(ABC)=tr(CAB)=tr(BCA) 矩阵最后一个挪到前面,迹不变
a = t r ( a ) a=tr(a) a=tr(a) 常数的迹是其本身
行列式
行列式,记为det(A),是将方阵A映射到实数的函数。