CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数

线性代数回顾与参考

1 基本概念和符号

线性代数提供了一种紧凑地表示和运算“线性方程组”的方法。例如,考虑以下方程组:

4x15x2=132x1+3x2=9.4x_{\scriptscriptstyle 1} - 5x_{\scriptscriptstyle 2} = -13\\ -2x_{\scriptscriptstyle 1} + 3x_{\scriptscriptstyle 2} = 9.

这是两个方程和两个变量,正如你从高中代数中所知,你可以找到 x1x_1x2x_2 的唯一解(除非方程以某种方式退化,例如,如果第二个方程只是第一个的倍数,但在上面的情况下,实际上只有一个唯一解)。 在矩阵表示法中,我们可以更紧凑地表达:

Ax=bAx= b

其中

A=[4523],b=[139].A=\begin{bmatrix} 4 & -5 \\ -2 & 3 \end{bmatrix}, b=\begin{bmatrix} -13 \\ 9 \end{bmatrix}.

我们可以看到,以这种形式分析线性方程有许多优点(包括明显的节省空间)。

1.1 基本符号

我们使用以下符号:

  • ARm×nA \in \Bbb{R}^{m \times n}表示一个mmnn列的矩阵,其中AA的各项都是实数。

  • xRn\boldsymbol{x} \in \Bbb{R}^{n}表示具有nn个元素的向量。按照惯例,nn维向量。通常被认为是nn11列的矩阵,称为列向量。如果我们想表示一个行向量: 具有 11 行和nn列的矩阵 - 我们通常写xT\boldsymbol{x}^T(这里xT\boldsymbol{x}^T表示x\boldsymbol{x}的转置,我们稍后将定义它)。

  • xix_i表示向量x\boldsymbol{x}的第ii个元素:
    x=[x1x2xn].\boldsymbol{x}=\begin{bmatrix} x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}.

  • 我们用符号aija_{\scriptscriptstyle ij}(or AijA_{ij}, Ai,jA_{i,j})表示AA的第ii行第jj列元素:

    A=[a11a12a1na21a22a2nam1am2amn].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}.

  • 我们将AA的第jj列表示为aja^j or A:,jA_{:,j}

    A=[|||a1a2an|||].A = \begin{bmatrix} \text{\textbar} & \text{\textbar} & & \text{\textbar} \\ a^1 & a^2 & \cdots & a^n \\ \text{\textbar} & \text{\textbar} & & \text{\textbar} \end{bmatrix}.

  • 我们将AA的第ii行表示为aiTa_i^T or Ai,:A_{i,:}

    A=[a1Ta2TamT].A = \begin{bmatrix} \text{\textemdash} & a_1^T & \text{\textemdash} \\ \text{\textemdash} & a_2^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_m^T & \text{\textemdash} \\ \end{bmatrix}.

  • 在许多情况下,将矩阵视为列向量或行向量的集合是非常重要和方便的。一般来说,在数学上(和概念上)向量级别上的操作比标量级别上的操作会更简洁。表示矩阵的列或行没有通用约定,因此你可以使用任何符号明确定义它。

2 矩阵乘法

矩阵ARm×nA \in \Bbb{R}^{m \times n}和矩阵BRn×pB \in \Bbb{R}^{n \times p}的乘积仍然是一个矩阵C=ABRm×pC = AB \in \Bbb{R}^{m \times p},其中Cij=k=1nAikBkjC_{ij} = \displaystyle\sum_{k=1}^n {A_{ik}B_{kj}}.
请注意,为了使矩阵乘积存在,AA中的列数必须等于BB中的行数。有很多方法可以查看矩阵乘法,我们将从检查一些特殊情况开始。

2.1 向量-向量乘法

给两个向量x,yRn\boldsymbol{x},\boldsymbol{y} \in \Bbb{R}^n, xTy\boldsymbol{x}^T \boldsymbol{y}通常称为向量的内积或者点积,结果是个实数:

xTyR=[x1x2xn][y1y2yn]=i=1nxiyi\boldsymbol{x}^T \boldsymbol{y} \in \Bbb{R} = \begin{bmatrix}x_1 & x_2 & \cdots & x_n\end{bmatrix} \begin{bmatrix}y_1 \\ y_2 \\ \vdots \\ y_n \end{bmatrix} = \sum_{i=1}^n{x_iy_i}

请注意,内积实际上只是矩阵乘法的特例。xTy=yTx\boldsymbol{x}^T \boldsymbol{y} = \boldsymbol{y}^T \boldsymbol{x} 始终成立。
给定向量xRm,yRn\boldsymbol{x} \in \Bbb{R}^m , \boldsymbol{y} \in \Bbb{R}^n(mm不一定等于nn), xyTRm×n\boldsymbol{x} \boldsymbol{y}^T \in \Bbb{R}^{m \times n}叫向量外积,它是一个矩阵,由(xyT)ij=xiyj(\boldsymbol{x} \boldsymbol{y}^T)_{ij} = x_iy_j组成,也就是(i.e.):

xyTRm×n=[x1x2xm][y1y2yn]=[x1y1x1y2x1ynx2y1x2y2x2ynxmy1xmy2xmyn]\boldsymbol{x} \boldsymbol{y}^T \in \Bbb{R}^{m \times n}= \begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_m \end{bmatrix} \begin{bmatrix}y_1 & y_2 & \cdots & y_n\end{bmatrix}= \begin{bmatrix} x_1y_1 & x_1y_2 & \cdots & x_1y_n \\ x_2y_1 & x_2y_2 & \cdots & x_2y_n \\ \vdots & \vdots & \ddots & \vdots \\ x_my_1 & x_my_2 & \cdots & x_my_n \end{bmatrix}

举一个外积如何使用的一个例子:让1Rn\boldsymbol{1}\in \Bbb{R}^{n}表示一个nn维向量,其元素都等于 1,此外,考虑矩阵ARm×nA \in \Bbb{R}^{m \times n},其列全部是某个向量 xRm\boldsymbol{x} \in R^{m}。 我们可以使用外积紧凑地表示矩阵 AA:

A=[|||xxx|||]=[x1x1x1x2x2x2xmxmxm]=[x1x2xm][111]=x1TA=\begin{bmatrix} \text{\textbar} & \text{\textbar} & & \text{\textbar} \\ x & x & \cdots & x \\ \text{\textbar} & \text{\textbar} & & \text{\textbar} \end{bmatrix}= \begin{bmatrix} x_{1} & x_{1} & \cdots & x_{1} \\ x_{2} & x_{2} & \cdots & x_{2} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m} & x_{m} & \cdots & x_{m} \end{bmatrix}= \begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_m \end{bmatrix} \begin{bmatrix}1 & 1 & \cdots & 1\end{bmatrix}=\boldsymbol{x}\boldsymbol{1}^T

2.2 矩阵-向量乘法

给定矩阵 ARm×nA \in \mathbb{R}^{m \times n},向量 xRn\boldsymbol{x} \in \mathbb{R}^{n} , 它们的积是一个向量 y=AxRm\boldsymbol{y} = A\boldsymbol{x} \in \mathbb{R}^{m}。 有几种方法可以查看矩阵向量乘法。

如果我们按行写AA,那么我们可以表示AxA\boldsymbol{x}为:

y=Ax=[a1Ta2TamT]x=[a1Txa2TxamTx]\boldsymbol{y} = A\boldsymbol{x} = \begin{bmatrix} \text{\textemdash} & a_1^T & \text{\textemdash} \\ \text{\textemdash} & a_2^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_m^T & \text{\textemdash} \\ \end{bmatrix}\boldsymbol{x}= \begin{bmatrix} a_1^T\boldsymbol{x} \\ a_2^T\boldsymbol{x} \\ \vdots \\ a_m^T\boldsymbol{x} \end{bmatrix}

换句话说,第iiyy的元素是AA的第ii行和x\boldsymbol{x}的内积,即:yi=aiTxy_i=a_{i}^{T} \boldsymbol{x}

同样的, 可以把 AA 写成列的方式,如下:

y=Ax=[|||a1a2an|||][x1x2xn]=[a1]x1+[a2]x2++[an]xn(1)\boldsymbol{y} = A\boldsymbol{x} = \begin{bmatrix} \text{\textbar} & \text{\textbar} & & \text{\textbar} \\ a^1 & a^2 & \cdots & a^n \\ \text{\textbar} & \text{\textbar} & & \text{\textbar} \end{bmatrix} \begin{bmatrix}x_1 \\ x_2 \\ \vdots \\ x_n \end{bmatrix}= [a^1]x_1 + [a^2]x_2 + \cdots +[a^n]x_n \label{1}\tag{1}

换句话说,y\boldsymbol{y}AA的列的线性组合,其中线性组合的系数由x\boldsymbol{x}的元素给出。

到目前为止,我们一直是矩阵右乘一个列向量,但也可以是矩阵左乘一个行向量。如这样表示:yT=xTA\boldsymbol{y}^T = \boldsymbol{x}^TA 其中ARm×nA \in \mathbb{R}^{m \times n}xRm\boldsymbol{x} \in \mathbb{R}^{m}yRn\boldsymbol{y} \in \mathbb{R}^{n}。 和以前一样,我们可以用两种可行的方式表达yT\boldsymbol{y}^T,这取决于我们是否根据行或列表达AA.

首先,我们把AA用列表示:

yT=xTA=xT[|||a1a2an|||]=[xTa1xTa2xTan]\boldsymbol{y}^T = \boldsymbol{x}^TA = \boldsymbol{x}^T \begin{bmatrix} \text{\textbar} & \text{\textbar} & & \text{\textbar} \\ a^1 & a^2 & \cdots & a^n \\ \text{\textbar} & \text{\textbar} & & \text{\textbar} \end{bmatrix}= \begin{bmatrix}\boldsymbol{x}^Ta^1 & \boldsymbol{x}^Ta^2 & \cdots & \boldsymbol{x}^Ta^n \end{bmatrix}

这表明yT\boldsymbol{y}^T的第ii个元素等于x\boldsymbol{x}AA的第ii列的内积。

最后,根据行表示AA,我们得到了向量-矩阵乘积的最终表示:

yT=xTA=[x1x2xn][a1Ta2TamT]=x1[a1T]+x2[a2T]++xn[anT]\begin{aligned} \boldsymbol{y}^T &= \boldsymbol{x}^TA \\&= \begin{bmatrix} x_1 & x_2 & \cdots & x_n \end{bmatrix} \begin{bmatrix} \text{\textemdash} & a_1^T & \text{\textemdash} \\ \text{\textemdash} & a_2^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_m^T & \text{\textemdash} \\ \end{bmatrix}\\&= x_1\begin{bmatrix}\text{\textemdash} & a_1^T & \text{\textemdash}\end{bmatrix}+ x_2\begin{bmatrix}\text{\textemdash} & a_2^T & \text{\textemdash}\end{bmatrix}+ \cdots + x_n\begin{bmatrix}\text{\textemdash} & a_n^T & \text{\textemdash}\end{bmatrix} \end{aligned}

所以我们看到yT\boldsymbol{y}^TAA的行的线性组合,其中线性组合的系数由x\boldsymbol{x}的元素给出。

2.3 矩阵-矩阵乘法

有了这些知识,我们现在可以看看四种不同的(当然是等价的)查看矩阵与矩阵乘法C=ABC = AB的方法。

首先,我们可以将矩阵-矩阵乘法视为一组向量-向量乘积。 从定义中可以得出:最明显的观点是CC的(i,ji,j)元素等于AA的第ii行和BB的的jj列的内积。如下所示:

C=AB=[a1Ta2TamT][|||b1b2bp|||]=[a1b1a1b2a1bpa2b1a2b2a2bpamb1amb2ambp]C = AB = \begin{bmatrix} \text{\textemdash} & a_1^T & \text{\textemdash} \\ \text{\textemdash} & a_2^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_m^T & \text{\textemdash} \\ \end{bmatrix} \begin{bmatrix} \text{\textbar} & \text{\textbar} & & \text{\textbar} \\ b^1 & b^2 & \cdots & b^p \\ \text{\textbar} & \text{\textbar} & & \text{\textbar} \end{bmatrix}= \begin{bmatrix} a_1b_1 & a_1b_2 & \cdots & a_1b_p \\ a_2b_1 & a_2b_2 & \cdots & a_2b_p \\ \vdots & \vdots & \ddots & \vdots \\ a_mb_1 & a_mb_2 & \cdots & a_mb_p \end{bmatrix}

这里的矩阵ARm×n,BRn×pA \in \Bbb{R}^{m \times n} , B \in \Bbb{R}^{n \times p} , 向量aiRn,bjRna_i \in \Bbb{R}^n , b^j \in \Bbb{R}^n ,所以它们可以计算内积。当我们用行表示 AA 和用列表示 BB 时,这是最“自然”的表示。
另外,我们可以用列表示 AA,用行表示 BB。这种表示导致将 ABAB 解释为外积之和,这种表示则复杂得多。象征性地,

C=AB=[|||a1a2an|||][b1Tb2TbnT]=i=1naibiTC = AB = \begin{bmatrix} \text{\textbar} & \text{\textbar} & & \text{\textbar} \\ a^1 & a^2 & \cdots & a^n \\ \text{\textbar} & \text{\textbar} & & \text{\textbar} \end{bmatrix} \begin{bmatrix} \text{\textemdash} & b_1^T & \text{\textemdash} \\ \text{\textemdash} & b_2^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & b_n^T & \text{\textemdash} \\ \end{bmatrix}= \sum_{i=1}^n{a^ib_i^T}

换句话说,ABAB等于所有的AA的第ii列和BBii行的外积的和。因此,在这种情况下, aiRma^i \in \mathbb{R}^ mbiRpb_i \in \mathbb{R}^p, 外积aibiTa^ib_i^T的维度是m×pm×p,与CC的维度一致。

其次,我们还可以将矩阵-矩阵乘法视为一组矩阵-向量乘法。如果我们把BB用列表示,我们可以将CC的列视为AABB的列(矩阵-向量)的乘积。如下所示:

C=AB=A[|||b1b2bp|||]=[|||Ab1Ab2Abp|||](2)C = AB = A \begin{bmatrix} \text{\textbar} & \text{\textbar} & & \text{\textbar} \\ b^1 & b^2 & \cdots & b^p \\ \text{\textbar} & \text{\textbar} & & \text{\textbar} \end{bmatrix}= \begin{bmatrix} \text{\textbar} & \text{\textbar} & & \text{\textbar} \\ Ab^1 & Ab^2 & \cdots & Ab^p \\ \text{\textbar} & \text{\textbar} & & \text{\textbar} \end{bmatrix} \label{2}\tag{2}

这里CC的第ii列由矩阵-向量乘积给出,右边的向量为ci=Abic_i = Ab_i

最后,我们有类似的观点,我们用行表示AA,并将CC的行视为AA的行和BB之间的矩阵-向量乘积。如下所示:

C=AB=[a1Ta2TamT]B=[a1TBa2TBamTB]C = AB = \begin{bmatrix} \text{\textemdash} & a_1^T & \text{\textemdash} \\ \text{\textemdash} & a_2^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_m^T & \text{\textemdash} \\ \end{bmatrix}B= \begin{bmatrix} \text{\textemdash} & a_1^TB & \text{\textemdash} \\ \text{\textemdash} & a_2^TB & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_m^TB & \text{\textemdash} \\ \end{bmatrix}

这里CC的第ii行由矩阵-向量乘积给出:ciT=aiTBc_i^T = a_i^T B

将矩阵乘法剖析到如此大的程度似乎有点矫枉过正,特别是当所有这些观点都紧跟在我们在本节开头给出的初始定义(C=ABC=AB)之后。

这些不同方法的直接优势在于它们允许您在向量的级别/单位而不是标量上进行操作。 为了完全理解线性代数而不会迷失在复杂的索引操作中,关键是操作尽可能大(向量而不是标量)的概念。[1]

实际上所有的线性代数都是在处理某种矩阵乘法,多花一些时间对这里提出的观点进行直观的理解是非常必要的。

除此之外,你还应该了解一些更高级别的矩阵乘法的基本性质:

  • 矩阵乘法结合律: (AB)C=A(BC)(AB)C = A(BC)
  • 矩阵乘法分配律: A(B+C)=AB+ACA(B + C) = AB + AC
  • 矩阵乘法一般是不可交换的; 也就是说,通常ABBAAB \ne BA。 (例如,假设ARm×nA \in \mathbb{R}^ {m \times n}, BRn×pB \in \mathbb{R}^ {n \times p},如果mmqq不相等,矩阵乘积BABA甚至不存在!)

如果您不熟悉这些性质,请花点时间自己验证它们。 例如,为了检查矩阵乘法的结合性,假设ARm×nA \in \mathbb{R}^ {m \times n}, BRn×pB \in \mathbb{R}^ {n \times p}CRp×qC \in \mathbb{R}^ {p \times q}。 注意ABRm×pAB \in \mathbb{R}^ {m \times p},所以(AB)CRm×q(AB)C \in \mathbb{R}^ {m \times q}。 类似地,BCRn×qBC \in \mathbb{R}^ {n \times q},所以A(BC)Rm×qA(BC) \in \mathbb{R}^ {m \times q}。 因此,所得矩阵的维度一致。 为了验证矩阵乘法的结合性,检查(AB)C(AB)C的(i,ji,j)元素是否等于A(BC)A(BC)的(i,ji,j)元素。 我们可以使用矩阵乘法的定义直接验证这一点:

((AB)C)ij=k=1p(AB)ikCkj=k=1p(l=1nAilBlk)Ckj=k=1p(l=1nAilBlkCkj)=l=1n(k=1pAilBlkCkj)=l=1nAil(k=1pBlkCkj)=l=1nAil(BC)lj=(A(BC))ij\begin{aligned} % aligned &= 等号对齐 ((A B) C)_{ij} &= \sum_{k=1}^p{(AB)_{ik}C_{kj}} = \sum_{k=1}^p \Bigg( \sum_{l=1}^n{A_{il}B_{lk}} \Bigg) C_{kj} \\ &=\sum_{k=1}^p \Bigg( \sum_{l=1}^n{A_{il}B_{lk}C_{kj}}\Bigg) = \sum_{l=1}^n \Bigg( \sum_{k=1}^p{A_{il}B_{lk}C_{kj}}\Bigg)\\ &=\sum_{l=1}^nA_{il}\Bigg(\sum_{k=1}^p{B_{lk}C_{kj}}\Bigg) = \sum_{l=1}^n{A_{il}(BC)_{lj}} = (A(BC))_{ij} \end{aligned}

这里,第一个和最后两个等式简单地使用了矩阵乘法的定义,第三个和第五个等式使用了标量乘法对加法的分配性质,第四个等式使用了标量加法的交换性和结合性。 这种通过简化为简单标量性质来证明矩阵性质的技术会经常出现,因此请确保您熟悉它。

3 操作及其性质

在本节中,我们将介绍矩阵和向量的几种操作和性质。 希望其中的大部分内容都可以帮您复习,此笔记可以作为参考。

3.1 单位矩阵和对角矩阵

单位矩阵IRn×nI \in \Bbb{R}^{n \times n}表示,它是一个方阵,对角线的元素是 1,其余元素都是 0。可以这样表示:

Iij={1i=j0ij.I_{ij} = \begin{cases} 1 & i=j \\ 0 & i \neq j \end{cases}.

对于所有矩阵ARm×nA \in \mathbb{R}^ {m \times n},有:
AI=A=IAAI=A=IA
注意,在某种意义上,上面单位矩阵的表示法是不明确的,因为它没有指定II的维数。通常,II的维数是从上下文推断出来的,以便使矩阵乘法成为可能。 例如,在上面的等式中,AI=AAI = A中的IIn×nn\times n矩阵,而A=IAA = IA中的IIm×mm\times m矩阵。

对角矩阵的非对角元素全为 0。对角阵通常表示为:D=diag(d1,d2,,dn)D=diag(d_1, d_2,\cdots, d_n),其中:

Dij={dii=j0ij.D_{ij} = \begin{cases} d_i & i=j \\ 0 & i \neq j \end{cases}.

很明显,单位矩阵I=diag(1,1,,1)I= diag(1, 1, \cdots , 1)

3.2 转置

矩阵的转置是指翻转矩阵的行和列。给定一个矩阵ARm×nA \in \Bbb{R}^{m \times n},它的转置ATRn×mA^T \in \Bbb{R}^{n \times m} ,其中的元素为:

(AT)ij=Aji.(A^T)_{ij} = A_{ji}.

事实上,我们在描述行向量时已经使用了转置,因为列向量的转置自然是行向量。

转置有以下性质,且很容易验证:

  • (AT)T=A(A^T)^T = A
  • (AB)T=BTAT(AB)^T = B^TA^T
  • (A+B)T=AT+BT(A+B)^T = A^T + B^T

3.3 对称矩阵

如果A=ATA = A^T,那么方阵ARn×nA \in \Bbb{R}^{n \times n}对称的。

  • 元素满足aij=aji,i,ja_{ij} = a_{ji} , \forall i,j
  • A=ATA = A^T
  • 对于任意方阵AAA+ATA + A^T是对称的
  • 对角矩阵都是对称矩阵

如果A=ATA = -A^T,那么它就是反对称的。

  • 元素满足aij=aji,i,ja_{ij} = -a_{ji} , \forall i,j,所以当i=ji=j时,aij=0a_{ij} = 0
  • A,BA,B都为反对称矩阵,则A±BA \plusmn B仍为反对称矩阵[2]
  • AA为反对称矩阵,BB为对称矩阵,则ABBAAB-BA为对称矩阵[3]

很容易证明,对于任何矩阵ARn×nA \in \mathbb{R}^ {n \times n},矩阵A+ATA + A^ T是对称的,矩阵AATA -A^T是反对称的[2:1]

由此得出,任意方矩阵ARn×nA \in \mathbb{R}^ {n \times n}可以表示为对称矩阵和反对称矩阵的和,所以:

A=12(A+AT)+12(AAT)A=\frac{1}{2}(A+A^T)+\frac{1}{2}(A-A^T)

事实证明,对称矩阵在实践中用到很多,它们有很多很好的性质,我们很快就会看到它们。
通常将大小为nn的所有对称矩阵的集合表示为Sn\mathbb{S}^n,因此ASnA \in \mathbb{S}^n意味着AA是对称的n×nn\times n矩阵。

3.4 矩阵的迹

方矩阵ARn×nA \in \mathbb{R}^ {n \times n},表示为tr(A)\operatorname{tr} (A)(或者trA\operatorname{tr} A,括号显然是隐含的),是矩阵中对角元素的总和:

trA=i=1nAii\operatorname{tr} A=\sum_{i=1}^{n} A_{i i}

如 CS229 讲义中所述,迹具有以下性质(如下所示):

  • 对于矩阵ARn×nA \in \mathbb{R}^ {n \times n},则:trA=trAT\operatorname{tr}A =\operatorname{tr}A^T
  • 对于矩阵A,BRn×nA,B \in \mathbb{R}^ {n \times n},则:tr(A+B)=trA+trB\operatorname{tr}(A + B) = \operatorname{tr}A + \operatorname{tr}B
  • 对于矩阵ARn×nA \in \mathbb{R}^ {n \times n}tRt \in \mathbb{R},则:tr(tA)=ttrA\operatorname{tr}(tA) = t\operatorname{tr}A.
  • 对于矩阵 AA, BBABAB 为方阵, 则:trAB=trBA\operatorname{tr}AB = \operatorname{tr}BA
  • 对于矩阵 AA, BB, CC, ABCABC为方阵(包含 1*1 的矩阵-标量), 则:trABC=trBCA=trCAB\operatorname{tr}ABC = \operatorname{tr}BCA=\operatorname{tr}CAB, 同理,更多矩阵的积也是有这个性质。

我们给出第四个性质的证明。假设ARm×nA \in \mathbb{R}^ {m \times n}BRn×mB \in \mathbb{R}^ {n \times m}(因此ABRm×mAB \in \mathbb{R}^ {m \times m}是方阵)。 观察到BARn×nBA \in \mathbb{R}^ {n \times n}也是一个方阵,因此对它们进行迹的运算是有意义的。 要证明trAB=trBA\operatorname{tr}AB = \operatorname{tr}BA,注意:

trAB=i=1m(AB)ii=i=1m(j=1nAijBji)=i=1mj=1nAijBji=j=1ni=1mBjiAij=j=1n(i=1mBjiAij)=j=1n(BA)jj=trBA\begin{aligned} \operatorname{tr} A B &=\sum_{i=1}^{m}(A B)_{i i}=\sum_{i=1}^{m}\left(\sum_{j=1}^{n} A_{i j} B_{j i}\right) \\ &=\sum_{i=1}^{m} \sum_{j=1}^{n} A_{i j} B_{j i}=\sum_{j=1}^{n} \sum_{i=1}^{m} B_{j i} A_{i j} \\ &=\sum_{j=1}^{n}\left(\sum_{i=1}^{m} B_{j i} A_{i j}\right)=\sum_{j=1}^{n}(B A)_{j j}=\operatorname{tr} B A \end{aligned}

这里,第一个和最后两个等式使用了迹运算符和矩阵乘法的定义。 重点在第四个等式,使用标量乘法的交换性来反转每个乘积中的项的顺序,以及标量加法的交换性和结合性来重新排列求和的顺序。

3.5 范数

向量的范数x\|x\|是非正式度量的向量的“长度” 。 例如,我们有常用的欧几里德或2\ell_{2}范数,

x2=i=1nxi2\|x\|_{2}=\sqrt{\sum_{i=1}^{n} x_{i}^{2}}

注意:x22=xTx\|x\|_{2}^{2}=x^{T} x

更正式地,范数是满足 4 个性质的函数(f:RnRf : \mathbb{R}^{n} \rightarrow \mathbb{R}):

  1. 对于所有的 xRnx \in \mathbb{R}^ {n}, f(x)0f(x) \geq 0(非负性).
  2. 当且仅当x=0x = 0 时,f(x)=0f(x) = 0 (确定性).
  3. 对于所有xRnx \in \mathbb{R}^ {n},tRt\in \mathbb{R},则 f(tx)=tf(x)f(tx) = \left| t \right|f(x) (正齐次性).
  4. 对于所有 x,yRnx,y \in \mathbb{R}^ {n}, f(x+y)f(x)+f(y)f(x + y) \leq f(x) + f(y) (三角不等式)

其他范数的例子,如:1\ell_1范数:

x1=i=1nxi\|x\|_{1}=\sum_{i=1}^{n}|x_{i}|

\ell_{\infty }范数:

x=maxixi\|x\|_{\infty}=\max_{i}\left|x_{i}\right|

事实上,到目前为止所提出的所有三个范数都是p\ell_p范数族的例子,它们由实数p1p \geq 1参数化,并定义为:

xp=(i=1nxip)1/p\|x\|_{p}=\left(\sum_{i=1}^{n}\left|x_{i}\right|^{p}\right)^{1 / p}

也可以为矩阵定义范数,例如Frobenius范数:

AF=i=1mj=1nAij2=tr(ATA)\|A\|_{F}=\sqrt{\sum_{i=1}^{m} \sum_{j=1}^{n} A_{i j}^{2}}=\sqrt{\operatorname{tr}\left(A^{T} A\right)}

还有很多其他范数,但它们超出了这个复习材料的范围。

3.6 线性相关性和秩

一个向量集合{x1,x2,xn}Rm\{ x_1,x_2, \cdots x_n \} \subset \mathbb{R}^m, 如果没有向量可以表示为其余向量的线性组合,则称称该向量是线性无关的。 相反,如果属于该组的一个向量可以表示为其余向量的线性组合,则称该向量是线性相关的。 也就是说,如果:

xj=i=1,ijnαixix_{j}=\sum_{i=1,i \neq j}^{n} \alpha_{i} x_{i}

存在α1,αnR\alpha_1,\cdots \alpha_{n} \in \mathbb{R},那么向量x1,x2,xnx_1,x_2, \cdots x_n是线性相关的; 否则,向量是线性无关的。
另一种线性相关的描述(存在不全为零的数αi\alpha_{i},使得等式成立):

i=1nαixi=0,αi0\sum_{i=1}^{n} \alpha_{i} x_{i} = 0,\exists \alpha_i \neq 0

例如,向量:

x1=[123]x2=[415]x3=[231]x_{1}= \begin{bmatrix} 1 \\ 2 \\ 3 \end{bmatrix} \quad x_{2}= \begin{bmatrix} 4 \\ 1 \\ 5 \end{bmatrix} \quad x_{3}= \begin{bmatrix} 2 \\ -3 \\ -1 \end{bmatrix}

是线性相关的,因为:x3=2x1+x2x_3=-2x_1+x_2

矩阵ARm×nA \in \mathbb{R}^{m \times n}列秩是构成线性无关集合的AA的最大列子集的大小。 由于术语的多样性,这通常简称为AA的线性无关列的数量。同样,行秩是构成线性无关集合的AA的最大行数。
对于任何矩阵ARm×nA \in \mathbb{R}^{m \times n},事实证明AA的列秩等于AA的行秩(尽管我们不会证明这一点),因此两个量统称为AA,用 rank(A)\text{rank}(A)表示。 以下是秩的一些基本性质:

  • 对于 ARm×nA \in \mathbb{R}^{m \times n}rank(A)min(m,n)\text{rank}(A) \leq min(m, n),如果(A)=min(m,n)\text(A) = \text{min} (m, n),则: AA 被称作满秩
  • 对于 ARm×nA \in \mathbb{R}^{m \times n}rank(A)=rank(AT)\text{rank}(A) = \text{rank}(A^T)
  • 对于 ARm×nA \in \mathbb{R}^{m \times n},BRn×pB \in \mathbb{R}^{n \times p} ,rank(AB)min(rank(A),rank(B))\text{rank}(AB) \leq \text{min} ( \text{rank}(A), \text{rank}(B))
  • 对于 A,BRm×nA,B \in \mathbb{R}^{m \times n}rank(A+B)rank(A)+rank(B)\text{rank}(A + B) \leq \text{rank}(A) + \text{rank}(B)

3.7 方阵的逆

方阵ARn×nA \in \mathbb{R}^{n \times n}表示为A1A^{-1},并且是这样的唯一矩阵:

A1A=I=AA1A^{-1}A=I=AA^{-1}

请注意,并非所有矩阵都具有逆。 例如,非方形矩阵根据定义没有逆(存在伪逆[4])。 然而,对于一些方形矩阵AAA1A^{-1}也可能不存在。 特别是,如果A1A^{-1}存在,我们说AA可逆的或非奇异的,否则就是不可逆奇异[5]

为了使方阵 A 具有逆A1A^{-1},则AA必须是满秩。 我们很快就会发现,除了满秩之外,还有许多其它的充分必要条件。
以下是逆的性质; 假设A,BRn×nA,B \in \mathbb{R}^{n \times n},而且是非奇异的:

  • (A1)1=A(A^{-1})^{-1} = A
  • (AB)1=B1A1(AB)^{-1} = B^{-1}A^{-1}
  • (A1)T=(AT)1(A^{-1})^{T} =(A^{T})^{-1}因此,该矩阵通常表示为ATA^{-T}

作为如何使用逆的示例,考虑线性方程组,Ax=bAx = b,其中ARn×nA \in \mathbb{R}^{n \times n}x,bRx,b\in \mathbb{R}, 如果AA是非奇异的(即可逆的),那么x=A1bx = A^{-1}b。 (如果ARm×nA \in \mathbb{R}^{m \times n},不是方阵,这公式还有用吗? - 伪逆[4:1]

3.8 正交矩阵

如果 xTy=0x^Ty=0,则两个向量x,yRnx,y\in \mathbb{R}^{n}正交的。如果x2=1\|x\|_2=1,则向量xRnx\in \mathbb{R}^{n}归一化。如果一个方阵URn×nU\in \mathbb{R}^{n \times n}的所有列彼此正交并被归一化,则方阵UU正交矩阵(注意在讨论向量与矩阵时的意义不一样,两个向量正交只需要内积为 0,正交矩阵是各列相互正交并且被归一化)。

它可以从正交性和正态性的定义中得出:

UTU=I=UUTU^ TU = I = U U^T

换句话说,正交矩阵的逆是其转置。 注意,如果UU不是方阵, 即,URm×n,n<mU\in \mathbb{R}^{m \times n}, n < m ,但其列仍然是正交的,则UTU=IU^TU = I,但是UUTIUU^T \neq I。所以正交矩阵一定是方阵

正交矩阵的另一个好的特性是在具有正交矩阵的向量上操作不会改变其欧几里德范数,即(i.e.):

Ux2=x2(3)\|U x\|_{2}=\|x\|_{2} \label{3}\tag{3}

对于任何 xRnx\in \mathbb{R}^n , URn×nU\in \mathbb{R}^{n \times n}是正交矩阵。

3.9 矩阵的值域和零空间

张成一个向量集合{x1,x2,xn}\{ x_1,x_2, \cdots x_n \}可以表示为一个向量集合{x1,xn}\{ x_1, \cdots x_n \}的所以线性组合:

span({x1,xn})={v:v=i=1nαixi,αiR}\operatorname{span}(\{x_1, \cdots x_n \}) = \Bigg\{v:v=\sum_{i=1}^n{\alpha_i x_i}, \alpha_i \in \Bbb{R} \Bigg\}

可以看到,如果{x1,xn}\{x_{1}, \cdots x_{n}\}是一组nn个线性无关的向量,其中每个xiRnx_i \in \mathbb{R}^{n},则span({x1,xn})=Rn\text{span}(\{x_{1}, \ldots x_{n}\})=\mathbb{R}^{n}。 换句话说,任何向量vRnv\in \mathbb{R}^{n}都可以写成x1x_1xnx_n的线性组合。
向量yRmy\in \mathbb{R}^{m}投影{x1,xn}\{x_{1}, \ldots x_{n}\}所张成的空间(这里我们假设xiRmx_i \in \mathbb{R}^{m})得到向量vspan({x1,,xn})v \in \operatorname{span}(\{x_{1}, \ldots, x_{n}\}),由欧几里德范数vy2\|v - y\|_2可以得知,这样vv尽可能接近yy

我们将投影表示为Proj(y;{x1,xn})\operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right),并且可以将其正式定义为:

Proj(y;{x1,xn})=argminvspan({x1,,xn})yv2\operatorname{Proj}\left(y ;\left\{x_{1}, \ldots x_{n}\right\}\right)=\operatorname{argmin}_{v \in \operatorname{span}\left(\left\{x_{1}, \ldots, x_{n}\right\}\right)}\|y-v\|_{2}

矩阵ARm×nA\in \mathbb{R}^{m \times n}值域(有时也称为列空间),表示为R(A)\mathcal{R}(A),是AA的列所张成的空间。换句话说,

R(A)={vRm:v=Ax,xRn}\mathcal{R}(A)=\left\{v \in \mathbb{R}^{m} : v=A x, x \in \mathbb{R}^{n}\right\}

做一些技术性的假设(即AA是满秩且n<mn <m),向量yRmy \in \mathbb{R}^{m}AA的值域的投影由下式给出:

Proj(y;A)=argminvR(A)vy2=A(ATA)1ATy\operatorname{Proj}(y ; A)=\operatorname{argmin}_{v \in \mathcal{R}(A)}\|v-y\|_{2}=A\left(A^{T} A\right)^{-1} A^{T} y

这个最后的方程应该看起来非常熟悉,因为它几乎与我们在课程中(我们将很快再次得出)得到的公式:与参数的最小二乘估计一样。
看一下投影的定义,显而易见,这实际上是我们在最小二乘问题中最小化的目标(除了范数的平方这里有点不一样,这不会影响找到最优解),所以这些问题自然是非常相关的。

AA只包含一列时,aRma \in \mathbb{R}^{m},这给出了向量投影到一条线上的特殊情况:

Proj(y;a)=aaTaTay\operatorname{Proj}(y ; a)=\frac{a a^{T}}{a^{T} a} y

一个矩阵ARm×nA\in \mathbb{R}^{m \times n}零空间 N(A)\mathcal{N}(A) 是所有乘以AA时等于 0 向量的集合,即:

N(A)={xRn:Ax=0}\mathcal{N}(A)=\left\{x \in \mathbb{R}^{n} : A x=0\right\}

注意,R(A)\mathcal{R}(A)中的向量的大小为mm,而 N(A)\mathcal{N}(A) 中的向量的大小为nn,因此R(AT)\mathcal{R}(A^T)N(A)\mathcal{N}(A) 中的向量的大小均为Rn\mathbb{R}^{n}。 事实上,还有很多例子。 证明:

{w:w=u+v,uR(AT),vN(A)}=Rn and R(AT)N(A)={0}\left\{w : w=u+v, u \in \mathcal{R}\left(A^{T}\right), v \in \mathcal{N}(A)\right\}=\mathbb{R}^{n} \text { and } \mathcal{R}\left(A^{T}\right) \cap \mathcal{N}(A)=\{\mathbf{0}\}

换句话说,R(AT)\mathcal{R}(A^T)N(A)\mathcal{N}(A) 是不相交的子集,它们一起跨越Rn\mathbb{R}^{n}的整个空间。 这种类型的集合称为正交补,我们用R(AT)=N(A)\mathcal{R}(A^T)= \mathcal{N}(A)^{\perp}表示。

3.10 行列式

一个方阵ARn×nA \in \mathbb{R}^{n \times n}行列式是函数det\text {det}Rn×nRn\mathbb{R}^{n \times n} \rightarrow \mathbb{R}^{n},并且表示为A\left| A \right|或者detA\text{det} A(有点像迹运算符,我们通常省略括号)。在代数上,我们可以写出 A 的行列式的明确公式,但不幸的是,这并不能直观地理解它的含义。 相反,我们将从提供行列式的几何解释开始,然后访问其一些特定的代数性质。

给定一个矩阵:

[a1Ta2TanT]\begin{bmatrix} \text{\textemdash} & a_1^T & \text{\textemdash} \\ \text{\textemdash} & a_2^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_n^T & \text{\textemdash} \\ \end{bmatrix}

考虑通过采用AA行向量a1,anRna_{1}, \ldots a_{n}\in \mathbb{R}^{n}的所有可能线性组合形成的点SRnS \subset \mathbb{R}^{n}的集合,其中线性组合的系数都在 0 和 1 之间; 也就是说,集合SSspan({a1,an})\text{span}(\{a_{1}, \ldots a_{n}\})受到系数α1,αn\alpha_{1}, \ldots \alpha_{n}的限制的线性组合,α1,,αn\alpha_1, \cdots ,\alpha_n满足0αi1,i=1,,n0 \leq \alpha_{i} \leq 1, i=1, \ldots, n。从形式上看,

S={vRn:v=i=1nαiai where 0αi1,i=1,,n}S=\left\{v \in \mathbb{R}^{n} : v=\sum_{i=1}^{n} \alpha_{i} a_{i} \text { where } 0 \leq \alpha_{i} \leq 1, i=1, \ldots, n\right\}

事实证明,AA的行列式的绝对值是对集合SS的“体积”的度量[6]

比方说:一个2×22 \times2的矩阵(4):

A=[1332](4)A= \begin{bmatrix} 1 & 3 \\ 3 & 2 \end{bmatrix} \label{4}\tag{4}

它的矩阵的行是:

a1=[13]a2=[32]a_{1}=\left[\begin{array}{l}{1} \\ {3}\end{array}\right] \quad a_{2}=\left[\begin{array}{l}{3} \\ {2}\end{array}\right]

对应于这些行对应的集合SS如图 1 所示。对于二维矩阵,SS通常具有平行四边形的形状。 在我们的例子中,行列式的值是A=7\left| A \right| = -7(可以使用本节后面显示的公式计算),因此平行四边形的面积为 7。(请自己验证!)

在三维中,集合SS对应于一个称为平行六面体的对象(一个有倾斜边的三维框,这样每个面都有一个平行四边形)。行定义SS3×33×3矩阵 S 的行列式的绝对值给出了平行六面体的三维体积。在更高的维度中,集合SS是一个称为nn维平行体的对象。

(0, 0)
(0, 0)
a1
a1
(1, 3)
(1, 3)
a2
a2
(3, 2)
(3, 2)
(4, 5)
(4, 5)
Viewer does not support full SVG 1.1

图 1:(4)中给出的2×22×2矩阵AA的行列式的图示。 这里,a1a_1a2a_2是对应于AA行的向量,并且集合SS对应于平行四边形区域。 这个行列式的绝对值,detA=7\left| \text{det} A \right| = 7,即平行四边形的面积。

在代数上,行列式满足以下三个性质(所有其他性质都遵循这些性质,包括通用公式):

  1. 单位阵的行列式为 1, I=1\left| I \right|= 1(几何上,单位超立方体的体积为 1)。

  2. 给定一个矩阵 ARn×nA \in \mathbb{R}^{n \times n}, 如果我们将AA中的一行乘上一个标量tRt \in \mathbb{R},那么新矩阵的行列式是tAt\left| A \right|

    [ta1Ta2TamT]=tA\left|\begin{bmatrix} \text{\textemdash} & t a_1^T & \text{\textemdash} \\ \text{\textemdash} & a_2^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_m^T & \text{\textemdash} \\ \end{bmatrix}\right| = t|A|

    几何上,将集合SS的一个边乘以系数tt,体积也会增加一个系数tt

  3. 如果我们交换任意两行在aiTa_i^TajTa_j^T,那么新矩阵的行列式是A-\left| A \right|,例如:
    [a2Ta1TamT]=A\left|\begin{bmatrix} \text{\textemdash} & a_2^T & \text{\textemdash} \\ \text{\textemdash} & a_1^T & \text{\textemdash} \\ & \vdots & \\ \text{\textemdash} & a_m^T & \text{\textemdash} \\ \end{bmatrix}\right| = -|A|
    你一定很奇怪,满足上述三个性质的函数的存在并不多。事实上,这样的函数确实存在,而且是唯一的(我们在这里不再证明了)。

从上述三个性质中得出的几个性质包括:

  • 对于 ARn×nA \in \mathbb{R}^{n \times n}, A=AT\left| A \right| = \left| A^T \right|
  • 对于 A,BRn×nA,B \in \mathbb{R}^{n \times n}, AB=AB\left| AB \right|= \left| A \right|\left| B \right|
  • 对于 ARn×nA \in \mathbb{R}^{n \times n},如果A=0\left| A \right|= 0 有且只有当AA是奇异的(即不可逆)(如果 AA 是奇异的,那么它没有满秩,因此它的列是线性相关的。在这种情况下,集合 SS 对应于 nn 维空间中的“平面”,因此体积为零。)
  • 对于 ARn×nA \in \mathbb{R}^{n \times n} 同时,AA为非奇异的,则:A1=1/A\left| A ^{−1}\right| = 1/\left| A \right|

在给出行列式的一般定义之前,我们定义,对于ARn×nA \in \mathbb{R}^{n \times n}Ai,jR(n1)×(n1)A_{\bcancel i, \bcancel j}\in \mathbb{R}^{(n-1) \times (n-1)}是由于删除第ii行和第jj列而产生的矩阵。 行列式的一般(递归)公式是:

A=i=1n(1)i+jaijA\i,\j( for any j1,,n)=j=1n(1)i+jaijA\i,\j( for any i1,,n)\begin{aligned}|A| &=\sum_{i=1}^{n}(-1)^{i+j} a_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } j \in 1, \ldots, n) \\ &=\sum_{j=1}^{n}(-1)^{i+j} a_{i j}\left|A_{\backslash i, \backslash j}\right| \quad(\text { for any } i \in 1, \ldots, n) \end{aligned}

对于 AR1×1A \in \mathbb{R}^{1 \times 1},初始情况为A=a11\left| A \right|= a_{11}。如果我们把这个公式完全展开为 ARn×nA \in \mathbb{R}^{n \times n},就等于n!n!nn阶乘)不同的项。因此,对于大于3×33×3的矩阵,我们几乎没有明确地写出完整的行列式方程。然而,3×33×3大小的矩阵的行列式方程是相当常见的,建议好好地了解它们:

[a11]=a11[a11a12a21a22]=a11a22a12a21[a11a12a13a21a22a23a31a32a33]=a11a22a33+a12a23a31+a13a21a32a11a23a32a12a21a33a13a22a31\begin{aligned} \left|\left[a_{11}\right]\right| &=a_{11} \\ \left|\left[\begin{array}{ll}{a_{11}} & {a_{12}} \\ {a_{21}} & {a_{22}}\end{array}\right]\right|&=a_{11} a_{22}-a_{12} a_{21} \\ \left|\left[\begin{array}{l}{a_{11}} & {a_{12}} & {a_{13}} \\ {a_{21}} & {a_{22}} & {a_{23}} \\ {a_{31}} & {a_{32}} & {a_{33}}\end{array}\right]\right| &= \begin{array}{c}{a_{11} a_{22} a_{33}+a_{12} a_{23} a_{31}+a_{13} a_{21} a_{32}} \\ {-a_{11} a_{23} a_{32}-a_{12} a_{21} a_{33}-a_{13} a_{22} a_{31}} \end{array} \end{aligned}

矩阵ARn×nA \in \mathbb{R}^{n \times n}经典伴随矩阵(通常称为伴随矩阵[7])表示为adj(A)\operatorname{adj}(A),并定义为:

adj(A)Rn×n,(adj(A))ij=(1)i+jA\j,\i\operatorname{adj}(A) \in \mathbb{R}^{n \times n}, \quad(\operatorname{adj}(A))_{i j}=(-1)^{i+j}\left|A_{\backslash j, \backslash i}\right|

(注意索引A\j,\iA_{\backslash j, \backslash i}中的变化)。可以看出,对于任何非奇异ARn×nA \in \mathbb{R}^{n \times n}

A1=1Aadj(A)A^{-1}=\frac{1}{|A|} \operatorname{adj}(A)

虽然这是一个很好的“显式”的逆矩阵公式,但我们应该注意,从数字上讲,有很多更有效的方法来计算逆矩阵。

3.11 二次型和半正定矩阵

给定方矩阵ARn×nA \in \mathbb{R}^{n \times n}和向量xRnx \in \mathbb{R}^{n},标量xTAxx^T Ax被称为二次型。 写得清楚些,我们可以看到:

xTAx=i=1nxi(Ax)i=i=1nxi(j=1nAijxj)=i=1nj=1nAijxixjx^{T} A x=\sum_{i=1}^{n} x_{i}(A x)_{i}=\sum_{i=1}^{n} x_{i}\left(\sum_{j=1}^{n} A_{i j} x_{j}\right)=\sum_{i=1}^{n} \sum_{j=1}^{n} A_{i j} x_{i} x_{j}