A 线性代数
线性代数主要包含向量、向量空间(或称线性空间)以及向量的线性变换和有限维的线性方程组。
A.1 向量和向量空间
A.1.1 向量
标量(Scalar)是一个实数,只有大小,没有方向。标量一般用斜体小写英文字母 a,b,ca, b, ca,b,c 来表示。向量(Vector)是由一组实数组成的有序数组,同时具有大小和方向。一个 NNN 维向量 a\boldsymbol{a}a 是由 NNN 个有序实数组成,表示为
a=a1,a2,⋯ ,aN(A.1)\boldsymbol{a} = a_1, a_2, \\cdots, a_N \tag{A.1}a=a1,a2,⋯,aN(A.1)
其中 ana_nan 称为向量 a\boldsymbol{a}a 的第 nnn 个分量,或第 nnn 维。向量符号一般用黑斜体小写英文字母 a,b,c\boldsymbol{a}, \boldsymbol{b}, \boldsymbol{c}a,b,c,或小写希腊字母 α,β,γ\alpha, \beta, \gammaα,β,γ 等来表示。
A.1.2 向量空间
向量空间(Vector Space),也称线性空间(Linear Space),是指由向量组成的集合,并满足以下两个条件:
(1)向量加法 +:向量空间 V\mathcal{V}V 中的两个向量 a\boldsymbol{a}a 和 b\boldsymbol{b}b,它们的和 a+b\boldsymbol{a} + \boldsymbol{b}a+b 也属于空间 V\mathcal{V}V;
(2)标量乘法 ⋅:向量空间 V\mathcal{V}V 中的任一向量 a\boldsymbol{a}a 和任一标量 ccc,它们的乘积 c⋅ac \cdot \boldsymbol{a}c⋅a 也属于空间 V\mathcal{V}V。
欧氏空间 一个常用的线性空间是欧氏空间(Euclidean Space)。一个定义在实数域上的欧式空间通常表示为 RN\mathbb{R}^NRN,其中 NNN 为空间维度(Dimension)。欧氏空间中的向量加法和标量乘法定义为:
a1,a2,⋯ ,aN+b1,b2,⋯ ,bN=a1+b1,a2+b2,⋯ ,aN+bN(A.2)a_1, a_2, \\cdots, a_N + b_1, b_2, \\cdots, b_N = a_1 + b_1, a_2 + b_2, \\cdots, a_N + b_N \tag{A.2}a1,a2,⋯,aN+b1,b2,⋯,bN=a1+b1,a2+b2,⋯,aN+bN(A.2)
c⋅a1,a2,⋯ ,aN=ca1,ca2,⋯ ,caN(A.3)c \cdot a_1, a_2, \\cdots, a_N = ca_1, ca_2, \\cdots, ca_N \tag{A.3}c⋅a1,a2,⋯,aN=ca1,ca2,⋯,caN(A.3)
其中 a,b,c∈Ra, b, c \in \mathbb{R}a,b,c∈R 为标量。
线性子空间 向量空间 V\mathcal{V}V 的线性子空间 U\mathcal{U}U 是 V\mathcal{V}V 的一个子集,并且满足向量空间的条件(向量加法和标量乘法)。
线性无关 线性空间 V\mathcal{V}V 中的 MMM 个向量 {v1,v2,⋯ ,vM}\{\boldsymbol{v}_1, \boldsymbol{v}_2, \cdots, \boldsymbol{v}_M\}{v1,v2,⋯,vM},如果对任意的一组标量 λ1,λ2,⋯ ,λM\lambda_1, \lambda_2, \cdots, \lambda_Mλ1,λ2,⋯,λM,满足 λ1v1+λ2v2+⋯+λMvM=0\lambda_1\boldsymbol{v}_1 + \lambda_2\boldsymbol{v}_2 + \cdots + \lambda_M\boldsymbol{v}_M = 0λ1v1+λ2v2+⋯+λMvM=0,则必然 λ1=λ2=⋯=λM=0\lambda_1 = \lambda_2 = \cdots = \lambda_M = 0λ1=λ2=⋯=λM=0,那么 {v1,v2,⋯ ,vM}\{\boldsymbol{v}_1, \boldsymbol{v}_2, \cdots, \boldsymbol{v}_M\}{v1,v2,⋯,vM} 是线性无关的,也称为线性独立的。
基向量 NNN 维向量空间 V\mathcal{V}V 的基(Base)B={e1,e2,⋯ ,eN}\mathcal{B} = \{\boldsymbol{e}_1, \boldsymbol{e}_2, \cdots, \boldsymbol{e}_N\}B={e1,e2,⋯,eN} 是 V\mathcal{V}V 的有限子集,其元素之间线性无关。向量空间 V\mathcal{V}V 中所有的向量都可以按唯一的方式表达为 B\mathcal{B}B 中向量的线性组合。对任意 v∈V\boldsymbol{v} \in \mathcal{V}v∈V,存在一组标量 (λ1,λ2,⋯ ,λN)(\lambda_1, \lambda_2, \cdots, \lambda_N)(λ1,λ2,⋯,λN) 使得
v=λ1e1+λ2e2+⋯+λNeN(A.4)\boldsymbol{v} = \lambda_1\boldsymbol{e}_1 + \lambda_2\boldsymbol{e}_2 + \cdots + \lambda_N\boldsymbol{e}_N \tag{A.4}v=λ1e1+λ2e2+⋯+λNeN(A.4)
其中基 B\mathcal{B}B 中的向量称为基向量(Base Vector)。如果基向量是有序的,则标量 (λ1,λ2,⋯ ,λN)(\lambda_1, \lambda_2, \cdots, \lambda_N)(λ1,λ2,⋯,λN) 称为向量 v\boldsymbol{v}v 关于基 B\mathcal{B}B 的坐标(Coordinate)。
NNN 维空间 V\mathcal{V}V 的一组标准基(Standard Basis)为
e1=1,0,0,⋯ ,0(A.5)\boldsymbol{e}_1 = 1, 0, 0, \\cdots, 0 \tag{A.5}e1=1,0,0,⋯,0(A.5)
e2=0,1,0,⋯ ,0(A.6)\boldsymbol{e}_2 = 0, 1, 0, \\cdots, 0 \tag{A.6}e2=0,1,0,⋯,0(A.6)
⋯(A.7)\cdots \tag{A.7}⋯(A.7)
eN=0,0,0,⋯ ,1(A.8)\boldsymbol{e}_N = 0, 0, 0, \\cdots, 1 \tag{A.8}eN=0,0,0,⋯,1(A.8)
V\mathcal{V}V 中的任一向量 v=v1,v2,⋯ ,vN\boldsymbol{v} = v_1, v_2, \\cdots, v_Nv=v1,v2,⋯,vN 可以唯一地表示为
v1,v2,⋯ ,vN=v1e1+v2e2+⋯+vNeN(A.9)v_1, v_2, \\cdots, v_N = v_1\boldsymbol{e}_1 + v_2\boldsymbol{e}_2 + \cdots + v_N\boldsymbol{e}_N \tag{A.9}v1,v2,⋯,vN=v1e1+v2e2+⋯+vNeN(A.9)
v1,v2,⋯ ,vNv_1, v_2, \cdots, v_Nv1,v2,⋯,vN 也称为向量 v\boldsymbol{v}v 的笛卡尔坐标(Cartesian Coordinate)。
内积 一个 NNN 维线性空间中的两个向量 a\boldsymbol{a}a 和 b\boldsymbol{b}b,其内积(Inner Product)为
⟨a,b⟩=∑n=1Nanbn(A.10)\langle \boldsymbol{a}, \boldsymbol{b} \rangle = \sum_{n=1}^{N} a_n b_n \tag{A.10}⟨a,b⟩=n=1∑Nanbn(A.10)
内积也称为点积(Dot Product)或标量积(Scalar Product)。
正交 如果向量空间中两个向量的内积为 0,则它们正交(Orthogonal)。如果向量空间中一个向量 v\boldsymbol{v}v 与子空间 U\mathcal{U}U 中的每个向量都正交,那么向量 v\boldsymbol{v}v 和子空间 U\mathcal{U}U 正交。
A.1.3 范数
范数(Norm)是一个表示向量"长度"的函数,为向量空间内的所有向量赋予非零的正长度或大小。对于一个 NNN 维向量 v\boldsymbol{v}v,一个常见的范数函数为 ℓp\ell_pℓp 范数,
ℓp(v)≡∥v∥p=(∑n=1N∣vn∣p)1/p(A.11)\ell_p(\boldsymbol{v}) \equiv \|\boldsymbol{v}\|p = \left(\sum{n=1}^{N} |v_n|^p\right)^{1/p} \tag{A.11}ℓp(v)≡∥v∥p=(n=1∑N∣vn∣p)1/p(A.11)
其中 p≥0p \geq 0p≥0 为一个标量的参数。常用的 ppp 的取值有 1,2,∞ 等。
ℓ1\ell_1ℓ1 范数 ℓ1\ell_1ℓ1 范数为向量的各个元素的绝对值之和。
∥v∥1=∑n=1N∣vn∣(A.12)\|\boldsymbol{v}\|1 = \sum{n=1}^{N} |v_n| \tag{A.12}∥v∥1=n=1∑N∣vn∣(A.12)
ℓ2\ell_2ℓ2 范数 ℓ2\ell_2ℓ2 范数为向量的各个元素的平方和再开平方。
∥v∥2=∑n=1Nvn2=vTv(A.13)\|\boldsymbol{v}\|2 = \sqrt{\sum{n=1}^{N} v_n^2} = \sqrt{\boldsymbol{v}^T\boldsymbol{v}} \tag{A.13}∥v∥2=n=1∑Nvn2 =vTv (A.13)
ℓ2\ell_2ℓ2 范数又称为 Euclidean 范数或者 Frobenius 范数。从几何角度,向量也可以表示为从原点出发的一个带箭头的有向线段,其 ℓ2\ell_2ℓ2 范数为线段的长度,也常称为向量的模。
ℓ∞\ell_\inftyℓ∞ 范数 ℓ∞\ell_\inftyℓ∞ 范数为向量的各个元素的最大绝对值,
∥v∥∞=max{v1,v2,⋯ ,vN}(A.14)\|\boldsymbol{v}\|_\infty = \max\{v_1, v_2, \cdots, v_N\} \tag{A.14}∥v∥∞=max{v1,v2,⋯,vN}(A.14)
A.1.4 常见的向量
全 0 向量 指所有元素都为 0 的向量,用 0\boldsymbol{0}0 表示。全 0 向量为笛卡尔坐标系中的原点。
全 1 向量 指所有元素都为 1 的向量,用 1\boldsymbol{1}1 表示。
one-hot 向量 为有且只有一个元素为 1,其余元素都为 0 的向量。one-hot 向量是在数字电路中的一种状态编码,指对任意给定的状态,状态寄存器中只有 1 位为 1,其余位都为 0。
A.2 矩阵
A.2.1 线性映射
线性映射(Linear Mapping)是指从线性空间 X\mathcal{X}X 到线性空间 Y\mathcal{Y}Y 的一个映射函数 f:X→Yf : \mathcal{X} \rightarrow \mathcal{Y}f:X→Y,并满足:对于 X\mathcal{X}X 中任何两个向量 u\boldsymbol{u}u 和 v\boldsymbol{v}v 以及任何标量 ccc,有
f(u+v)=f(u)+f(v)(A.15)f(\boldsymbol{u} + \boldsymbol{v}) = f(\boldsymbol{u}) + f(\boldsymbol{v}) \tag{A.15}f(u+v)=f(u)+f(v)(A.15)
f(cv)=cf(v)(A.16)f(c\boldsymbol{v}) = cf(\boldsymbol{v}) \tag{A.16}f(cv)=cf(v)(A.16)
两个有限维欧氏空间的映射函数 f:RN→RMf : \mathbb{R}^N \rightarrow \mathbb{R}^Mf:RN→RM 可以表示为
y=Ax≜a11x1+a12x2+⋯+a1NxNa21x1+a22x2+⋯+a2NxN⋮aM1x1+aM2x2+⋯+aMNxN(A.17)\boldsymbol{y} = \boldsymbol{A}\boldsymbol{x} \triangleq \begin{bmatrix} a_{11}x_1 + a_{12}x_2 + \cdots + a_{1N}x_N \\ a_{21}x_1 + a_{22}x_2 + \cdots + a_{2N}x_N \\ \vdots \\ a_{M1}x_1 + a_{M2}x_2 + \cdots + a_{MN}x_N \end{bmatrix} \tag{A.17}y=Ax≜ a11x1+a12x2+⋯+a1NxNa21x1+a22x2+⋯+a2NxN⋮aM1x1+aM2x2+⋯+aMNxN (A.17)
其中 A\boldsymbol{A}A 是一个由 MMM 行 NNN 列个元素排列成的矩形阵列,称为 M×NM \times NM×N 的矩阵(Matrix):
A=a11a12⋯a1Na21a22⋯a2N⋮⋮⋱⋮aM1aM2⋯aMN(A.18)\boldsymbol{A} = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1N} \\ a_{21} & a_{22} & \cdots & a_{2N} \\ \vdots & \vdots & \ddots & \vdots \\ a_{M1} & a_{M2} & \cdots & a_{MN} \end{bmatrix} \tag{A.18}A= a11a21⋮aM1a12a22⋮aM2⋯⋯⋱⋯a1Na2N⋮aMN (A.18)
向量 x∈RN\boldsymbol{x} \in \mathbb{R}^Nx∈RN 和 y∈RM\boldsymbol{y} \in \mathbb{R}^My∈RM 为两个空间中的向量。x\boldsymbol{x}x 和 y\boldsymbol{y}y 可以分别表示为 N×1N \times 1N×1 的矩阵和 M×1M \times 1M×1 的矩阵:
x=x1x2⋮xN,y=y1y2⋮yM(A.19)\boldsymbol{x} = \begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_N \end{bmatrix}, \boldsymbol{y} = \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_M \end{bmatrix} \tag{A.19}x= x1x2⋮xN ,y= y1y2⋮yM (A.19)
这种表示形式称为列向量,即只有一列的矩阵。如果没有特别说明,本书默认向量为列向量。
为简化书写、方便排版起见,本书约定行向量(即 1×N1 \times N1×N 的矩阵)用逗号隔离的向量 x1,x2,⋯ ,xNx_1, x_2, \\cdots, x_Nx1,x2,⋯,xN 表示;列向量用分号隔开的向量 x=x1;x2;⋯ ;xN\boldsymbol{x} = x_1; x_2; \\cdots; x_Nx=x1;x2;⋯;xN 表示,或用行向量的转置 x1,x2,⋯ ,xNTx_1, x_2, \\cdots, x_N^Tx1,x2,⋯,xNT 表示。
矩阵 A∈RM×N\boldsymbol{A} \in \mathbb{R}^{M \times N}A∈RM×N 定义了一个从空间 RN\mathbb{R}^NRN 到空间 RM\mathbb{R}^MRM 的线性映射。一个矩阵 A\boldsymbol{A}A 从左上角数起的第 mmm 行第 nnn 列上的元素称为第 m,nm,nm,n 项,通常记为 Amn\\boldsymbol{A}{mn}Amn 或 amna{mn}amn。
A.2.2 仿射变换
仿射变换(Affine Transformation)是指通过一个线性变换和一个平移,将一个向量空间变换成另一个向量空间的过程。
令 A∈RN×N\boldsymbol{A} \in \mathbb{R}^{N \times N}A∈RN×N 为 N×NN \times NN×N 的实数矩阵,x∈RN\boldsymbol{x} \in \mathbb{R}^Nx∈RN 是 NNN 维向量空间中的点,仿射变换可以表示为
y=Ax+b(A.20)\boldsymbol{y} = \boldsymbol{A}\boldsymbol{x} + \boldsymbol{b} \tag{A.20}y=Ax+b(A.20)
其中 b∈RN\boldsymbol{b} \in \mathbb{R}^Nb∈RN 为平移项。当 b=0\boldsymbol{b} = \boldsymbol{0}b=0 时,仿射变换就退化为线性变换。
仿射变换可以实现线性空间中的旋转、平移、缩放变换。仿射变换不改变原始空间的相对位置关系,具有以下性质:
- 共线性(Collinearity)不变:在同一条约直线上的三个或三个以上的点,在变换后依然在一条直线上;
- 比例不变:不同点之间的距离比例在变换后不变;
- 平行性不变:两条平行线在转换后依然平行;
- 凸性不变:一个凸集(Convex Set)在转换后依然是凸的。
A.2.3 矩阵操作
加 如果 A\boldsymbol{A}A 和 B\boldsymbol{B}B 都为 M×NM \times NM×N 的矩阵,则 A\boldsymbol{A}A 和 B\boldsymbol{B}B 的加也是 M×NM \times NM×N 的矩阵,其每个元素是 A 和 B 相应元素相加,即
A+Bmn=amn+bmn(A.21)\\boldsymbol{A} + \\boldsymbol{B}{mn} = a{mn} + b_{mn} \tag{A.21}A+Bmn=amn+bmn(A.21)
乘积 假设有两个矩阵 A\boldsymbol{A}A 和 B\boldsymbol{B}B 分别表示两个线性映射 g:RK→RMg : \mathbb{R}^K \rightarrow \mathbb{R}^Mg:RK→RM 和 f:RN→RKf : \mathbb{R}^N \rightarrow \mathbb{R}^Kf:RN→RK,则其复合线性映射
(g∘f)(x)=g(f(x))=g(Bx)=A(Bx)=(AB)x(A.22)(g \circ f)(\boldsymbol{x}) = g(f(\boldsymbol{x})) = g(\boldsymbol{B}\boldsymbol{x}) = \boldsymbol{A}(\boldsymbol{B}\boldsymbol{x}) = (\boldsymbol{A}\boldsymbol{B})\boldsymbol{x} \tag{A.22}(g∘f)(x)=g(f(x))=g(Bx)=A(Bx)=(AB)x(A.22)
其中 AB\boldsymbol{A}\boldsymbol{B}AB 表示矩阵 A\boldsymbol{A}A 和 B\boldsymbol{B}B 的乘积,定义为
ABmn=∑k=1Kamkbkn(A.23)\\boldsymbol{A}\\boldsymbol{B}{mn} = \sum{k=1}^{K} a_{mk}b_{kn} \tag{A.23}ABmn=k=1∑Kamkbkn(A.23)
两个矩阵的乘积仅当第一个矩阵的列数和第二个矩阵的行数相等时才能定义。如 A\boldsymbol{A}A 是 M×KM \times KM×K 矩阵和 B\boldsymbol{B}B 是 K×NK \times NK×N 矩阵,则乘积 AB\boldsymbol{A}\boldsymbol{B}AB 是一个 M×NM \times NM×N 的矩阵。
矩阵的乘法满足结合律和分配律:
(1)结合律:(AB)C=A(BC)(\boldsymbol{A}\boldsymbol{B})\boldsymbol{C} = \boldsymbol{A}(\boldsymbol{B}\boldsymbol{C})(AB)C=A(BC)
(2)分配律:(A+B)C=AC+BC(\boldsymbol{A} + \boldsymbol{B})\boldsymbol{C} = \boldsymbol{A}\boldsymbol{C} + \boldsymbol{B}\boldsymbol{C}(A+B)C=AC+BC,C(A+B)=CA+CB\boldsymbol{C}(\boldsymbol{A} + \boldsymbol{B}) = \boldsymbol{C}\boldsymbol{A} + \boldsymbol{C}\boldsymbol{B}C(A+B)=CA+CB
转置 M×NM \times NM×N 的矩阵 A\boldsymbol{A}A 的转置(Transposition)是一个 N×MN \times MN×M 的矩阵,记为 AT\boldsymbol{A}^TAT,AT\boldsymbol{A}^TAT 的第 mmm 行第 nnn 列的元素是原矩阵 A\boldsymbol{A}A 的第 nnn 行第 mmm 列的元素,
ATmn=Anm(A.24)\\boldsymbol{A}\^T{mn} = \\boldsymbol{A}{nm} \tag{A.24}ATmn=Anm(A.24)
Hadamard 积 矩阵 A\boldsymbol{A}A 和矩阵 B\boldsymbol{B}B 的 Hadamard 积(Hadamard Product)也称为逐点乘积,为 A\boldsymbol{A}A 和 B\boldsymbol{B}B 中对应的元素相乘。
A⊙Bmn=amnbmn(A.25)\\boldsymbol{A} \\odot \\boldsymbol{B}{mn} = a{mn}b_{mn} \tag{A.25}A⊙Bmn=amnbmn(A.25)
一个标量 ccc 与矩阵 A\boldsymbol{A}A 乘积为 A\boldsymbol{A}A 的每个元素是 A\boldsymbol{A}A 的相应元素与 ccc 的乘积
cAmn=camn(A.26)c\\boldsymbol{A}{mn} = ca{mn} \tag{A.26}cAmn=camn(A.26)
Kronecker 积 如果 A\boldsymbol{A}A 是 M×NM \times NM×N 的矩阵,B\boldsymbol{B}B 是 S×TS \times TS×T 的矩阵,那么它们的 Kronecker 积(Kronecker Product)是一个 MS×NTMS \times NTMS×NT 的矩阵:
A⊗B=a11Ba12B⋯a1NBa21Ba22B⋯a2NB⋮⋮⋱⋮aM1BaM2B⋯aMNB(A.27)\boldsymbol{A} \otimes \boldsymbol{B} = \begin{bmatrix} a_{11}\boldsymbol{B} & a_{12}\boldsymbol{B} & \cdots & a_{1N}\boldsymbol{B} \\ a_{21}\boldsymbol{B} & a_{22}\boldsymbol{B} & \cdots & a_{2N}\boldsymbol{B} \\ \vdots & \vdots & \ddots & \vdots \\ a_{M1}\boldsymbol{B} & a_{M2}\boldsymbol{B} & \cdots & a_{MN}\boldsymbol{B} \end{bmatrix} \tag{A.27}A⊗B= a11Ba21B⋮aM1Ba12Ba22B⋮aM2B⋯⋯⋱⋯a1NBa2NB⋮aMNB (A.27)
外积 两个向量 a∈RM\boldsymbol{a} \in \mathbb{R}^Ma∈RM 和 b∈RN\boldsymbol{b} \in \mathbb{R}^Nb∈RN 的外积(Outer Product)是一个 M×NM \times NM×N 的矩阵,定义为
a⊗b=a1b1a1b2⋯a1bNa2b1a2b2⋯a2bN⋮⋮⋱⋮aMb1aMb2⋯aMbN=abT(A.28)\boldsymbol{a} \otimes \boldsymbol{b} = \begin{bmatrix} a_1b_1 & a_1b_2 & \cdots & a_1b_N \\ a_2b_1 & a_2b_2 & \cdots & a_2b_N \\ \vdots & \vdots & \ddots & \vdots \\ a_Mb_1 & a_Mb_2 & \cdots & a_Mb_N \end{bmatrix} = \boldsymbol{a}\boldsymbol{b}^T \tag{A.28}a⊗b= a1b1a2b1⋮aMb1a1b2a2b2⋮aMb2⋯⋯⋱⋯a1bNa2bN⋮aMbN =abT(A.28)
其中 a⊗bmn=ambn\\boldsymbol{a} \\otimes \\boldsymbol{b}_{mn} = a_m b_na⊗bmn=ambn。
向量化 矩阵的向量化(Vectorization)是将矩阵表示为一个列向量。令 A=aijM×N\boldsymbol{A} = a_{ij}^{M \times N}A=aijM×N,向量化算子 vec(⋅)\text{vec}(\cdot)vec(⋅) 定义为
vec(A)=a11,a21,⋯ ,aM1,a12,a22,⋯ ,aM2,⋯ ,a1N,a2N,⋯ ,aMNT\text{vec}(\boldsymbol{A}) = a_{11}, a_{21}, \\cdots, a_{M1}, a_{12}, a_{22}, \\cdots, a_{M2}, \\cdots, a_{1N}, a_{2N}, \\cdots, a_{MN}^Tvec(A)=a11,a21,⋯,aM1,a12,a22,⋯,aM2,⋯,a1N,a2N,⋯,aMNT
迹 方块矩阵 A\boldsymbol{A}A 的对角线元素之和称为它的迹(Trace),记为 tr(A)\text{tr}(\boldsymbol{A})tr(A)。尽管矩阵的乘法不满足交换律,但它们的迹相同,即 tr(AB)=tr(BA)\text{tr}(\boldsymbol{A}\boldsymbol{B}) = \text{tr}(\boldsymbol{B}\boldsymbol{A})tr(AB)=tr(BA)。
行列式 方块矩阵 A\boldsymbol{A}A 的行列式是一个将其映射到标量的函数,记作 det(A)\det(\boldsymbol{A})det(A) 或 ∣A∣|\boldsymbol{A}|∣A∣。行列式可以看作有向面积或体积的概念在欧氏空间中的推广。在 NNN 维欧氏空间中,行列式描述的是一个线性变换对"体积"所造成的影响。
一个 N×NN \times NN×N 的方块矩阵 A\boldsymbol{A}A 的行列式定义为:
det(A)=∑σ∈SNsgn(σ)∏n=1Nan,σ(n)(A.29)\det(\boldsymbol{A}) = \sum_{\sigma \in S_N} \text{sgn}(\sigma) \prod_{n=1}^{N} a_{n,\sigma(n)} \tag{A.29}det(A)=σ∈SN∑sgn(σ)n=1∏Nan,σ(n)(A.29)
其中 SNS_NSN 是 {1,2,⋯ ,N}\{1, 2, \cdots, N\}{1,2,⋯,N} 的所有排列的集合,σ\sigmaσ 是其中一个排列,σ(n)\sigma(n)σ(n) 是元素 nnn 在排列 σ\sigmaσ 中的位置,sgn(σ)\text{sgn}(\sigma)sgn(σ) 表示排列 σ\sigmaσ 的符号差,定义为
sgn(σ)={1σ 中的逆序对有偶数个−1σ 中的逆序对有奇数个(A.30)\text{sgn}(\sigma) = \begin{cases} 1 & \sigma \text{ 中的逆序对有偶数个} \\ -1 & \sigma \text{ 中的逆序对有奇数个} \end{cases} \tag{A.30}sgn(σ)={1−1σ 中的逆序对有偶数个σ 中的逆序对有奇数个(A.30)
秩 一个矩阵 A\boldsymbol{A}A 的列秩是 A\boldsymbol{A}A 的线性无关的列向量数量,行秩是 A\boldsymbol{A}A 的线性无关的行向量数量。一个矩阵的列秩和行秩总是相等的,简称为秩(Rank)。
一个 M×NM \times NM×N 的矩阵 A\boldsymbol{A}A 的秩最大为 min(M,N)\min(M, N)min(M,N)。若 rank(A)=min(M,N)\text{rank}(\boldsymbol{A}) = \min(M, N)rank(A)=min(M,N),则称矩阵为满秩的。如果一个矩阵不满秩,说明其包含线性相关的列向量或行向量,其行列式为 0。
两个矩阵的乘积 AB\boldsymbol{A}\boldsymbol{B}AB 的秩 rank(AB)≤min(rank(A),rank(B))\text{rank}(\boldsymbol{A}\boldsymbol{B}) \leq \min(\text{rank}(\boldsymbol{A}), \text{rank}(\boldsymbol{B}))rank(AB)≤min(rank(A),rank(B))。
范数 矩阵的范数有很多种形式,其中常用的 ℓp\ell_pℓp 范数定义为
∥A∥p=(∑m=1M∑n=1N∣amn∣p)1/p(A.31)\|\boldsymbol{A}\|p = \left(\sum{m=1}^{M} \sum_{n=1}^{N} |a_{mn}|^p\right)^{1/p} \tag{A.31}∥A∥p=(m=1∑Mn=1∑N∣amn∣p)1/p(A.31)
A.2.4 矩阵类型
对称矩阵 对称矩阵(Symmetric Matrix)指其转置等于自己的矩阵,即满足 A=AT\boldsymbol{A} = \boldsymbol{A}^TA=AT。
对角矩阵 对角矩阵(Diagonal Matrix)是一个主对角线之外的元素皆为 0 的矩阵。一个对角矩阵 A\boldsymbol{A}A 满足
Amn=0∀m,n∈{1,⋯ ,N},and m≠n(A.32)\\boldsymbol{A}_{mn} = 0 \quad \forall m, n \in \{1, \cdots, N\}, \text{and } m \neq n \tag{A.32}Amn=0∀m,n∈{1,⋯,N},and m=n(A.32)
一个 N×NN \times NN×N 的对角矩阵 A\boldsymbol{A}A 也可以记为 diag(a)\text{diag}(\boldsymbol{a})diag(a),a\boldsymbol{a}a 为一个 NNN 维向量,并满足
Ann=an(A.33)\\boldsymbol{A}_{nn} = a_n \tag{A.33}Ann=an(A.33)
N×NN \times NN×N 的对角矩阵 A=diag(a)\boldsymbol{A} = \text{diag}(\boldsymbol{a})A=diag(a) 和 NNN 维向量 b\boldsymbol{b}b 的乘积为一个 NNN 维向量
Ab=diag(a)b=a⊙b(A.34)\boldsymbol{A}\boldsymbol{b} = \text{diag}(\boldsymbol{a})\boldsymbol{b} = \boldsymbol{a} \odot \boldsymbol{b} \tag{A.34}Ab=diag(a)b=a⊙b(A.34)
其中 ⊙\odot⊙ 表示按元素乘积,即 a⊙bn=anbn,1≤n≤N\\boldsymbol{a} \\odot \\boldsymbol{b}_n = a_n b_n, \quad 1 \leq n \leq Na⊙bn=anbn,1≤n≤N。
单位矩阵 单位矩阵(Identity Matrix)是一种特殊的对角矩阵,其主对角线元素为 1,其余元素为 0。NNN 阶单位矩阵 IN\boldsymbol{I}_NIN,是一个 N×NN \times NN×N 的方块矩阵,可以记为 IN=diag(1,1,⋯ ,1)\boldsymbol{I}_N = \text{diag}(1, 1, \cdots, 1)IN=diag(1,1,⋯,1)。
一个 M×NM \times NM×N 的矩阵 A\boldsymbol{A}A 和单位矩阵的乘积等于其本身,即
AIN=IMA=A(A.35)\boldsymbol{A}\boldsymbol{I}_N = \boldsymbol{I}_M\boldsymbol{A} = \boldsymbol{A} \tag{A.35}AIN=IMA=A(A.35)
逆矩阵 对于一个 N×NN \times NN×N 的方块矩阵 A\boldsymbol{A}A,如果存在另一个方块矩阵 B\boldsymbol{B}B 使得
AB=BA=IN(A.36)\boldsymbol{A}\boldsymbol{B} = \boldsymbol{B}\boldsymbol{A} = \boldsymbol{I}_N \tag{A.36}AB=BA=IN(A.36)
其中 IN\boldsymbol{I}_NIN 为单位阵,则称 A\boldsymbol{A}A 是可逆的。矩阵 B\boldsymbol{B}B 称为矩阵 A\boldsymbol{A}A 的逆矩阵(Inverse Matrix),记为 A−1\boldsymbol{A}^{-1}A−1。
一个方阵的行列式等于 0 当且仅当该方阵不可逆。
正定矩阵 对于一个 N×NN \times NN×N 的对称矩阵 A\boldsymbol{A}A,如果对于所有的非零向量 x∈RN\boldsymbol{x} \in \mathbb{R}^Nx∈RN 都满足
xTAx>0(A.37)\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x} > 0 \tag{A.37}xTAx>0(A.37)
则 A\boldsymbol{A}A 为正定矩阵(Positive-Definite Matrix)。如果 xTAx≥0\boldsymbol{x}^T\boldsymbol{A}\boldsymbol{x} \geq 0xTAx≥0,则 A\boldsymbol{A}A 是半正定矩阵(Positive-Semidefinite Matrix)。
正交矩阵 如果一个 N×NN \times NN×N 的方块矩阵 A\boldsymbol{A}A 的逆矩阵等于其转置矩阵,即
AT=A−1(A.38)\boldsymbol{A}^T = \boldsymbol{A}^{-1} \tag{A.38}AT=A−1(A.38)
则 A\boldsymbol{A}A 为正交矩阵(Orthogonal Matrix)。
正交矩阵满足 ATA=AAT=IN\boldsymbol{A}^T\boldsymbol{A} = \boldsymbol{A}\boldsymbol{A}^T = \boldsymbol{I}_NATA=AAT=IN,即正交矩阵的每一行(列)向量和自身的内积为 1,和其他行(列)向量的内积为 0。
Gram 矩阵 向量空间中一组向量 a1,a2,⋯ ,aN\boldsymbol{a}_1, \boldsymbol{a}_2, \cdots, \boldsymbol{a}Na1,a2,⋯,aN 的 Gram 矩阵(Gram Matrix)G\boldsymbol{G}G 是内积的对称矩阵,其元素 Gmn=amTan\\boldsymbol{G}{mn} = \boldsymbol{a}_m^T\boldsymbol{a}_nGmn=amTan。
A.2.5 特征值与特征向量
对一个 N×NN \times NN×N 的矩阵 A\boldsymbol{A}A,如果存在一个标量 λ\lambdaλ 和一个非零向量 v\boldsymbol{v}v 满足
Av=λv(A.39)\boldsymbol{A}\boldsymbol{v} = \lambda\boldsymbol{v} \tag{A.39}Av=λv(A.39)
则 λ\lambdaλ 和 v\boldsymbol{v}v 分别称为矩阵 A\boldsymbol{A}A 的特征值(Eigenvalue)和特征向量(Eigenvector)。
当用矩阵 A\boldsymbol{A}A 对它的特征向量 v\boldsymbol{v}v 进行线性映射时,得到的新向量只是在 v\boldsymbol{v}v 的长度上缩放 λ\lambdaλ 倍。给定一个矩阵的特征值,其对应的特征向量的数量是无限多的。令 u\boldsymbol{u}u 和 v\boldsymbol{v}v 是矩阵 A\boldsymbol{A}A 的特征值 λ\lambdaλ 对应的特征向量,则 αu\alpha\boldsymbol{u}αu 和 u+v\boldsymbol{u} + \boldsymbol{v}u+v 也是特征值 λ\lambdaλ 对应的特征向量(α\alphaα 为任意实数)。
如果矩阵 A\boldsymbol{A}A 是一个 N×NN \times NN×N 的实对称矩阵,那么存在实数 λ1,⋯ ,λN\lambda_1, \cdots, \lambda_Nλ1,⋯,λN,以及 NNN 个互相正交的单位向量 v1,⋯ ,vN\boldsymbol{v}_1, \cdots, \boldsymbol{v}_Nv1,⋯,vN,使得 vn\boldsymbol{v}_nvn 为矩阵 A\boldsymbol{A}A 的特征值为 λn\lambda_nλn 的特征向量(1≤n≤N1 \leq n \leq N1≤n≤N)。单位向量 v\boldsymbol{v}v 的模为 1,即 vTv=1\boldsymbol{v}^T\boldsymbol{v} = 1vTv=1。
A.2.6 矩阵分解
一个矩阵通常可以用一些比较"简单"的矩阵来表示,称为矩阵分解(Matrix Decomposition, or Matrix Factorization)。
A.2.6.1 特征分解
一个 N×NN \times NN×N 的方块矩阵 A\boldsymbol{A}A 的特征分解(Eigendecomposition)定义为
A=QΛQ−1(A.40)\boldsymbol{A} = \boldsymbol{Q}\boldsymbol{\Lambda}\boldsymbol{Q}^{-1} \tag{A.40}A=QΛQ−1(A.40)
其中 Q\boldsymbol{Q}Q 为 N×NN \times NN×N 的方块矩阵,其每一列都为 A\boldsymbol{A}A 的特征向量,Λ\boldsymbol{\Lambda}Λ 为对角矩阵,其每一个对角元素分别为 A\boldsymbol{A}A 的一个特征值。
如果 A\boldsymbol{A}A 为实对称矩阵,那么其不同特征值对应的特征向量相互正交。A\boldsymbol{A}A 可以被分解为
A=QΛQT(A.41)\boldsymbol{A} = \boldsymbol{Q}\boldsymbol{\Lambda}\boldsymbol{Q}^T \tag{A.41}A=QΛQT(A.41)
其中 Q\boldsymbol{Q}Q 为正交矩阵。
A.2.6.2 奇异值分解
一个 M×NM \times NM×N 的矩阵 A\boldsymbol{A}A 的奇异值分解(Singular Value Decomposition,SVD)定义为
A=UΣVT(A.42)\boldsymbol{A} = \boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T \tag{A.42}A=UΣVT(A.42)
其中 U\boldsymbol{U}U 和 V\boldsymbol{V}V 分别为 M×MM \times MM×M 和 N×NN \times NN×N 的正交矩阵,Σ\boldsymbol{\Sigma}Σ 为 M×NM \times NM×N 的矩形对角矩阵。Σ\boldsymbol{\Sigma}Σ 对角线上的元素称为奇异值(Singular Value),一般按从大到小排列。
根据公式 (A.42),AAT=UΣVTVΣUT=UΣ2UT\boldsymbol{A}\boldsymbol{A}^T = \boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T\boldsymbol{V}\boldsymbol{\Sigma}\boldsymbol{U}^T = \boldsymbol{U}\boldsymbol{\Sigma}^2\boldsymbol{U}^TAAT=UΣVTVΣUT=UΣ2UT,ATA=VΣUTUΣVT=VΣ2VT\boldsymbol{A}^T\boldsymbol{A} = \boldsymbol{V}\boldsymbol{\Sigma}\boldsymbol{U}^T\boldsymbol{U}\boldsymbol{\Sigma}\boldsymbol{V}^T = \boldsymbol{V}\boldsymbol{\Sigma}^2\boldsymbol{V}^TATA=VΣUTUΣVT=VΣ2VT。因此,U\boldsymbol{U}U 和 V\boldsymbol{V}V 分别为 AAT\boldsymbol{A}\boldsymbol{A}^TAAT 和 ATA\boldsymbol{A}^T\boldsymbol{A}ATA 的特征向量,A\boldsymbol{A}A 的非零奇异值为 AAT\boldsymbol{A}\boldsymbol{A}^TAAT 或 ATA\boldsymbol{A}^T\boldsymbol{A}ATA 的非零特征值的平方根。
由于一个大小为 M×NM \times NM×N 的矩阵 A\boldsymbol{A}A 可以表示空间 RN\mathbb{R}^NRN 到空间 RM\mathbb{R}^MRM 的一种线性映射,因此奇异值分解相当于将这个线性映射分解为 3 个简单操作:
- 先使用 V\boldsymbol{V}V 在原始空间中进行坐标旋转;
- 用 Σ\boldsymbol{\Sigma}Σ 对旋转后的每一维进行缩放。如果 M>NM > NM>N,则补 M−NM - NM−N 个 0;相反,如果 M<NM < NM<N,则舍去最后的 N−MN - MN−M 维;
- 使用 U\boldsymbol{U}U 进行再一次的坐标旋转。
令 KKK 为矩阵 A\boldsymbol{A}A 的非零奇异值的数量(矩阵 A\boldsymbol{A}A 的非零奇异值数量等于矩阵的秩,即 K=rank(A)<min(M,N)K = \text{rank}(\boldsymbol{A}) < \min(M, N)K=rank(A)<min(M,N)),矩阵 A\boldsymbol{A}A 可以写为
A=∑k=1KσkukvkT(A.43)\boldsymbol{A} = \sum_{k=1}^{K} \sigma_k \boldsymbol{u}_k\boldsymbol{v}_k^T \tag{A.43}A=k=1∑KσkukvkT(A.43)
=UKΣKVKT(A.44)= \boldsymbol{U}_K\boldsymbol{\Sigma}_K\boldsymbol{V}_K^T \tag{A.44}=UKΣKVKT(A.44)
其中 UK=u1,⋯ ,uK\boldsymbol{U}_K = \\boldsymbol{u}_1, \\cdots, \\boldsymbol{u}_KUK=u1,⋯,uK 和 VK=v1,⋯ ,vK\boldsymbol{V}_K = \\boldsymbol{v}_1, \\cdots, \\boldsymbol{v}_KVK=v1,⋯,vK 分别为 M×KM \times KM×K 和 N×KN \times KN×K 的矩阵,ΣK=diag(σ1,⋯ ,σK)\boldsymbol{\Sigma}_K = \text{diag}(\sigma_1, \cdots, \sigma_K)ΣK=diag(σ1,⋯,σK) 为 K×KK \times KK×K 的对角矩阵。公式 (A.44) 也称为紧凑的奇异值分解(Compact SVD)。如果令 K<rank(A)K < \text{rank}(\boldsymbol{A})K<rank(A),并舍去小的奇异值,则公式 (A.44) 也称为截断的奇异值分解(Truncated SVD)。在实际应用中,通常使用截断的奇异值分解来提高计算效率,但是截断的奇异值分解只是一种近似的矩阵分解,不能精确重构出原始矩阵。