写在前面,本系列主要是对下面这本书做的学习笔记

向量及其运算

基本概念

线性代数是多元函数微积分的基础

定义

向量(Vector)是具有大小和方向的量,是由多个数构成的一维数组,每个数称为向量的分量,向量分量的数量称为向量的维数

向量的表示

物理中的力、速度以及加速度是典型的向量,$n$维向量$x$有$n$个分量,可以写成行向量的形式$(x_1 \cdots x_n)$

通常将向量写成小写黑体斜体字符,如果写成列的形式则称为列向量,这些分量在列方向排列

这些向量的分量是实数,则成为实向量,如果是复数,则成为复向量,$n$维实向量的集合记为$\mathbb{R}^n$

与向量相对的是标量(Scalar),标量只有大小而无方向,物理中的时间、质量以及电流是典型的标量

在数学中通常把向量表示成列向量,而计算机中通常按行存储

二维平面内的一个向量,其在$x$轴方向和$y$轴方向的分量分别为$3$和$1$,写成行向量形式为$\left[ \begin{matrix} 3 & 1 \end{matrix} \right]$

二维平面内的向量

图中的向量以虚线箭头表示,起点为原点,终点是以向量的分量为坐标的点,三维空间中的力是三维向量,写成向量形式为

力的加法遵守平行四边形法则

零向量

所有分量全为$0$的向量称为零向量,即为$0$,它的方向是不确定的

向量与空间的点是一一对应的,向量$x$是以原点为起点,以$x$点为终点

在机器学习中,样本数据通常用向量的形式表达,称为特征向量(Feature Vectos),用于描述样本的特征

但是这里的特征向量和矩阵的特征向量是不同的概念,不要混淆

基本运算

转置运算(Transpose)将列向量变成行向量,将列向量转行向量,向量$x$的转置记为$x^T$

加法

两个向量的加法定义为对应分量相加,要求参与运算的两个向量维数相等

向量$x$和$y$相加记为$x+y$,比如$\left[ \begin{matrix} 1 & 0 & 0 \end{matrix} \right] + \left[ \begin{matrix} 4 & 0 & 1 \end{matrix} \right] = \left[ \begin{matrix} 5 & 2 & 4 \end{matrix} \right]$

这与力的加法的平行四边形法则一致,是其在高维空间的推广

向量的加法

向量满足交换律结合律

减法

两个向量的减法为它们对应分量相减,同样要求参与运算的两个向量维数相等

与向量加法的平行四边形法则相对应,向量减法符合三角形法则,$x-y$的结果是以$y$为起点,以$x$为终点的向量

乘积

向量$x$与标量$k$的乘积$kx$定义为标量与向量的每个分量相乘,比如

乘积运算可以改变向量的大小和方向

加法和数乘满足分配律

内积

两个向量$x$和$y$内积(Inner Product)定义为它们对应分量乘积之和

内积可以记为$x \cdot y$

两个$n$维向量的内积运算需要执行$n$次乘法运算和$n-1$次加法运算

内积运算满足下面的规律

利用内积可以简化线性函数(一次函数)的表述

对于机器学习中广泛使用的线性模型的预测函数$\omega _1x_1 + \cdots \omega _nx_n + b$

定义系数(权重)向量$\omega = (\omega _1 \cdots \omega _n)^T$,输入向量$x = (x_1 \cdots x_n)^T$,$b$为偏置项,预测函数写成向量内积的话为

向量与自身内积的结果为其所有分量的平方和,即$x^Tx=\sum _{i=1}^{n}{x_i^2}$

两个向量的内积为$0$,则称它们正交

正交是几何垂直这一概念在高维空间的推广

阿达玛积

两个向量的阿达玛(Hadamard)积定义为它们对应分量相乘,结果为相同维数的向量,记为$x \odot y$

对于两个向量

它们的阿达玛积为

阿达玛积可以简化问题的表述,在反向传播算法、各种梯度下降法中被使用

向量的范数

定义

向量的范数(Norm)是向量的模(长度)这一概念的推广,向量的$L-p$范数是一个标量,定义为

$p$为整数,常用的是$L1$和$L2$范数,$p$的取值分别为$1$和$2$

$L1$范数是所有分量的绝对值之和

对于向量$x = \left[ \begin{matrix} 1 & -1 & 2 \end{matrix} \right]$的$L1$范数为$||x||_1 = |1|+|-1|+|2| = 4$

$L2$范数也称为向量的模。即向量的长度,定义为

长度为$1$的向量称为单位向量,向量$x = \left[ \begin{matrix} 1 & -1 & 2 \end{matrix} \right]$的$L1$范数为$||x||_2 = \sqrt {1^2+(-1)^2+2^2} = \sqrt {6}$

$L1$范数和$L2$范数被用于构造机器学习的正则化项

向量范数默认指$L2$范数

当$p=\infty$时,称为$L - \infty$范数,其定义为

即向量分量绝对值的最大值,向量$x = \left[ \begin{matrix} 1 & -1 & 2 \end{matrix} \right]$的$L1$范数为$||x||_1 = 2$

$L - \infty$范数是$L-p$范数的极限

性质

向量数乘之后的范数为$||kx|| = |k| \cdot ||x||$,显然有$x^Tx = ||x||_2^2$

对于非$0$向量,通过数乘向量模的倒数,可以将向量单位化(标准化),使其长度为$1$

对于上面的$L2$范数,归一化之后为$\left[ \begin{matrix} \frac {1}{\sqrt 6} & \frac {-1}{\sqrt 6} & \frac {2}{\sqrt 6} \end{matrix} \right]$

向量内积和$L2$范数满足著名的柯西-施瓦茨(Cauchy-Schwarz)不等式

可以通过构造一元二次方程证明

由于$(x+ty)^T (x+ty) = y^Tyt^2 + 2x^Tyt + x^Tx \geq 0$

对于$t$的一元二次方程$y^Tyt^2+2x^Tyt+x^Tx = 0$,只有$x+ty=0$时才有实数解,根据二次方程的判别法则有

即$(x^Ty)^2 \leq ||x||^2 ||y||^2$,当且仅当$x+ty=0$即两个向量成比例时不等式取等号

向量内积、向量模与向量夹角之间的关系

可以表示为$x^Ty = ||x|| \cdot ||y|| \cdot cos \theta$

其中$\theta$为两个向量之间的夹角,其取值范围为$[0, \pi]$,变形后得到向量夹角计算公式

当向量之间的夹角超过$\frac {\pi}{2}$时,它们的内积为负

对于两个长度确定的向量,当夹角为$0$时它们的内积最大,此时$cos \theta=1$;夹角为$\pi$时它们的内积最小,此时$cos \theta=-1$

这一结论常在梯度下降法最速下降法的推导中被使用

对于向量$x = \left[ \begin{matrix} 1 & 1 & 0 \end{matrix} \right]$、$y=\left[ \begin{matrix} 0 & 1 & 1 \end{matrix} \right]$,它们夹角的余弦为

因此它们的夹角为$\frac {\pi}{3}$

对于向量$x = \left[ \begin{matrix} 1 & 0 & 0 \end{matrix} \right]$、$y=\left[ \begin{matrix} 0 & 1 & 0 \end{matrix} \right]$,它们夹角的余弦为

因此它们的夹角为$\frac {\pi}{2}$,两个向量正交,正好是$x$轴和$y$轴

范数满足三角不等式,是平面几何中三角不等式的抽象

将三角不等式两边同时平方,有

以及

欧氏距离

两个向量相减之后的$L2$范数是它们对应的点之间的距离,称为欧氏距离,即$||x-y||$

对于三维空间中的两个点$x_1 = \left[ \begin{matrix} 1 & 2 & 1 \end{matrix} \right]$与$x_2 = \left[ \begin{matrix} 1 & 2 & 3 \end{matrix} \right]$,它们之间的距离为

除了欧氏距离还可以定义其他的距离

一个将两个向量映射为实数的函数$d(x_1,x_2)$只要满足下面的性质,均可以作为距离函数

  • 非负性: 距离必须是非负的,对于$ \forall x_1,x_2 \in \mathbb {R}^n$,均有$d(x_1,x_2) \geq 0$
  • 对称性: 距离是对称的,对于$ \forall x_1,x_2 \in \mathbb {R}^n$,均有$d(x_1,x_2) = d(x_2, x_1)$
  • 三角不等式: 对于$ \forall x_1,x_2,x_3 \in \mathbb {R}^n$,均有$d(x_1,x_2) + d(x_2,x_3) \geq d(x_1, x_2)$

这些性质是欧式几何中距离特性的抽象

解析几何

定义

介绍下线性代数在解析几何中的应用,结论可以从二维平面和三维空间

平面解析几何中直线方程为$ax+by+x=0$,空间解析几何中平面方程为$ax+by+cz+d = 0$

将其推广到$n$维空间,得到超平面(Hyperplane)方程$\omega ^Tx+b = 0$

法向量

超平面中的$\omega$称为法向量,它与超平面内任意两个不同点之间连成的直线垂直

平面的法向量

图中黑色虚线为平面的法向量,它与平面垂直,对于平面内任意两点$x_1$和$x_2$,它们的连线(平面上虚线)均与法向量垂直

事实上,如果这两个点在平面内,则它们满足平面方程,有$\omega ^Tx_1 + b = 0$和$\omega ^Tx_2 + b = 0$

两式相减可以得到$\omega ^T(x_1-x_2) = 0$,因此法向量$\omega$与平面内任意两点之间的连线$x_1x_2$正交

将线性方程式的两侧同时乘以一个非$0$的系数,表示的还是同一个超平面

点到超平面的距离

在平面解析几何中,点$(x,y)$到直接的距离为

在空间解析几何中,点到平面的距离为

将其推广到$n$维空间,根据向量内积和范数可以计算出点到超平面的距离,对于上面定义的超平面,点$x$到它的距离为

这与二维平面、三维空间中点到直线和平面的距离公式在形式上是统一的,在支持向量机的推导过程中会用到

计算点$\left[ \begin{matrix} 1 & 1 & 1 & 1 \end{matrix} \right]$到超平面$x_1-2x_2+x_3-3x_4+1=0$的距离

线性相关性

线性相关

根据数乘和加法运算定义线性组合的概念,有向量组$x_1, \cdots ,x_l$,如果存在一组实数$k_1, \cdots ,k_l$使得

则称向量$x$可由向量组$x_1, \cdots ,x_l$线性表达

右侧称为向量组$x_1, \cdots ,x_l$的线性组合,$k_1, \cdots ,k_l$为组合系数

对于向量组

$x_1 = \left[ \begin{matrix} 1 & 2 & 3 \end{matrix} \right] \qquad x_2 = \left[ \begin{matrix} 1 & 0 & 2 \end{matrix} \right] \qquad x_3 = \left[ \begin{matrix} 0 & 0 & 1 \end{matrix} \right] $

向量$x= x_1+2_x2+x_3 = \left[ \begin{matrix} 3 & 2 & 8 \end{matrix} \right] $,可由该向量组线性表达,组合系数为$\left[ \begin{matrix} 1 & 2 & 1 \end{matrix} \right]$

对于向量组$x_1, \cdots ,x_l$,如果存在一组不全为$0$的数$kx_1, \cdots ,k_l$,使得

则称这组向量线性相关,如果不存在一组不全为$0$的数使得上式成立,则称为这组向量线性无关,也称为线性独立

线性无关

线性相关意味着这组向量存在冗余,至少有一个向量可以由其他向量线性表达,如果$x_1 \neq 0$,则有

比如下面的行向量线性无关

$x_1 = \left[ \begin{matrix} 1 & 0 & 0 \end{matrix} \right] \qquad x_2 = \left[ \begin{matrix} 0 & 1 & 0 \end{matrix} \right] \qquad x_3 = \left[ \begin{matrix} 0 & 0 & 1 \end{matrix} \right] $

给定组合系数$k_1$、$k_2$、$k_3$,有

$k_1 \left[ \begin{matrix} 1 & 0 & 0 \end{matrix} \right] + k_2 \left[ \begin{matrix} 0 & 1 & 0 \end{matrix} \right] + k_3 \left[ \begin{matrix} 0 & 0 & 1 \end{matrix} \right] = \left[ \begin{matrix} k_1 & k_2 & k_3 \end{matrix} \right]$

欲使该向量为$0$,则有$k_1=k_2=k_3=0$,因此这组向量线性无关

下面的行向量线性相关,因为存在系数$\left[ \begin{matrix} 1 & 1 & -1 \end{matrix} \right]$是的向量为$0$

$x_1 = \left[ \begin{matrix} 1 & 1 & 0 \end{matrix} \right] \qquad x_2 = \left[ \begin{matrix} 2 & 2 & 0 \end{matrix} \right] \qquad x_3 = \left[ \begin{matrix} 3 & 3 & 0 \end{matrix} \right] $

极大线性无关组

一个向量组数量最大的线性无关向量子集称为极大线性无关组

给定向量组,如果线性无关,但任意加入一个向量之后线性相关

是极大线性无关组,极大线性无关组不唯一

$n$维向量的极大线性无关组最多有$n$个向量,这意味着任意一个向量均可以由$n$个线性无关的$n$维向量线性表达

向量空间

定义

有$n$维向量的集合$X$,如果在其上定义了加法和数乘运算,且对两种计算封闭,即运算结果仍属于此集合,则称$X$为向量空间(Vector Sapce),也称为线性空间,对于任意的向量$x,y \in X$都有$x+y \in X \qquad kx \in X$,则集合$X$为向量空间

根据线性组合的定义,向量空间中任意向量的线性组合仍属于此空间

设$S$是向量空间$X$的子集,如果$S$对加法和数乘运算都封闭,则称$S$为$X$的子空间

例如,由三维实向量构成的集合$\mathbb {R}^3$是一个线性空间,显然对于任意$x,y \in \mathbb {R}^3$以及$k \in \mathbb {R}^3$,都有

集合$S = { x \in \mathbb {R}^3, x_i > 0 }$,即分量全为正的三维向量的集合不是线性空间,因为它对数乘不封闭

$S$中的向量$x$数乘一个负数,结果向量的分量为负,不再属于该集合

基(维数)

向量空间的极大线性无关组称为空间的,基所包含的向量数称为空间的维数

如果$u_1, \cdots ,u_n$是空间的一组基,空间中的任意向量$x$均可由这组基线性表达$x = k_1u_1 + cdots + k_nu_n$

则$k_1, \cdots k_n$称为向量$x$在这组基下的坐标

正交基

如果基向量$u_1, \cdots ,u_n$相互正交

则称为正交基,如果基向量相互正交且长度均为$1$

则称为标准正交基

向量组$\left[ \begin{matrix} 1 & 0 & 0 \end{matrix} \right] \qquad \left[ \begin{matrix} 0 & 1 & 0 \end{matrix} \right] \qquad \left[ \begin{matrix} 0 & 0 & 1 \end{matrix} \right]$为$\mathbb {R}^3$的一组标准正交基,其方向对应三维空间的$3$个坐标轴方向

需要强调的是,空间的基和标准正交基不唯一

格拉姆-施密特(Gram-Schmidt)正交化

给定一组线性无关的向量,可以根据它们构造出标准正交基,用的是格拉姆-施密特(Gram-Schmidt)正交化

具体方法: 给定一组非$0$且线性无关的向量$x_1, \cdots ,x_l$,格拉姆-施密特正交化先构造出一组正交基$u_1, \cdots ,u_l$

然后将这组正交基进行标准化得到标准正交基$e_1, \cdots ,e_l$

首先选择向量$x_1$作为一个正交基方向,令$u_1=x_1$

然后加入,构造的线性组合,使得它与正交,即

由于正交,因此有

解得$\alpha _{21} = \frac {x_2^Tu_1}{u_1^Tu_1}$

解释下这种做法的几何意义,由于$x_2^Tu_1 = ||x_2||||u_1|| cos \theta$

通过向量投影构造垂直向量

因此$\frac {x_2^Tu_1}{||u_1||} = ||x_2|| cos \theta$就是$x_2$在$u_1$方向上投影向量的长度,是图中直角三角形$ABC$的直角边$AB$的长度,这里$x_2$是三角形的斜边$AC$

由于$\frac {u_1}{||u_1||}$是$u_1$方向的单位向量,$\frac {x_2^Tu_1}{||u_1||} \frac {u_1}{||u_1||} = \frac {x_2^Tu_1}{u_1^Tu_1} u_1$就是$x_2$在$u_1$方向上的投影向量,是图中的向量$AB$

根据向量减法的三角形法则,$x_2- \frac {x_2^Tu_1}{u_1^Tu_1} u_1$就是图中的向量$BC$,与$u_1$垂直

加下来加入$x_3$,构造出$u_3$,是$u_1$、$u_2$和$x_3$的线性组合,使得它与$u_1$及$u_2$均正交

由于$u_3$与$u_1$正交,因此有

正交,,因此可以解得

由于$u_3$与$u_2$正交,因此有

正交,,因此可以解得

以此类推,在加入$x_k$时构造下面的线性组合

由于它与均正交,因此

而$u_j$与$u_i,i=1, \cdots, k-1 ,i \neq j$均正交,从而解得

反复执行上述步骤,可以得到一组正交基$u_1, \cdots , u_l$

将它们分别标准化,得到标准正交基$ \frac {u_1}{||u_1||} , \cdots , \frac {u_l}{||u_l||}$

格拉姆-施密特正交化的几何意义

首先考虑二维的情况

二维平面的格拉姆-施密特正交化

图中向量$\frac {x_2^Tu_1}{u_1^Tu_1}u_1$与$u_1$同向,是向量$x_2$在$x_1$方向的投影,显然$x_2$减掉该投影之后的向量,即向量$u_2$,与$u_1$垂直

下面考虑三维的情况

首先构造出$u_2$,与二维平面的方法相同,保证$u_2$与$u_1$垂直,然后处理$x_3$,首先减掉其在$u_1$方向的投影,保证相减之后与$u_1$垂直,然后减掉在$u_2$方向的投影,保证与$u_2$垂直

三维空间的格拉姆-施密特正交化

下面举例说明,有如下的向量组

首先生成$u_1=x_2= \left[ \begin{matrix} 1 \ 0 \ 1 \end{matrix} \right]$

然后生成$u_2$,组合系数为

因此

最后生成$u_3$,组合系数为

以及

因此

最后对$u_1$、$u_2$和$u_3$进行单位化

即为一组标准正交基

应用之线性回归

应用之线性分类器与支持向量机

矩阵及其运算

基本概念

定义

矩阵$A$是二维数组,一个$m \times n$的矩阵有$m$行和$n$列,每个位置$(i,j)$处的元素$a_{i,j}$是一个数,记为

矩阵通常用大写的黑体、斜体字母表示

矩阵的元素可以是实数,称为实矩阵,元素为复数,称为复矩阵,全体$m \times n$实矩阵的集合记为$\mathbb R ^{m \times n}$

方阵

如果矩阵行数和列数相等,则称为方阵,$n \times n$的方阵称为$n$阶方阵

对称矩阵

如果一个方阵的元素满足,则称为对称矩阵,比如

对角矩阵

矩阵所有行号和列号相等的元素$a_{ii}$的全体称为主对角线,如果一个矩阵出主对角线之外所有的元素均为$0$,则称为对角矩阵

该对角矩阵可以简记为$diag(1,2,3)$,通常将对角矩阵记为$A$

单位矩阵

如果矩阵的主对角线的元素为$1$,其他元素为$0$,则称为单位矩阵,记为$I$

单位矩阵的作用类似于实数中的$1$,在矩阵乘法中会说明,$n$阶单位矩阵记为$I_n$

零矩阵

如果矩阵的所有元素都为$0$,则称为零矩阵,记为$0$,其作用类似于实数中的$0$

上三角矩阵

如果矩阵的主对角线下方的元素全为$0$,则称为上三角矩阵

下三角矩阵

如果矩阵的主对角线上方的元素全为$0$,则称为下三角矩阵

格拉姆(Gram)矩阵

一个向量组格拉姆(Gram)矩阵是一个$n \times n$的矩阵,其每一个矩阵元素为向量的内积,即

由于$x_i^Tx_j = x_j^Tx_i$,因此格拉姆矩阵是一个对称矩阵

对于向量,其格拉姆矩阵为

在机器学习中该矩阵常被使用,比如主成分分析、核主成分分析、线性判别分析、线性回归、logisitic回归以及支持向量机的推导和证明

基本运算

转置

矩阵的转置(Transpose)定义为行和列下标相互交换,一个$m \times n$的矩阵转置之后为$n \times m$的矩阵,矩阵$A$的转置记为$A^T$

加法

矩阵的加法为对应位置的元素相加,需要保证两个矩阵有相同的尺寸,矩阵$A$和$B$相加记为$A+B$

加法和转置满足$(A+B)^T = A^T+B^T$

加法满足交换律和结合律$A+B=B+A \qquad A+B+C = A+(B+C)$

数乘

矩阵和标量的乘法即数乘,定义为标量和矩阵每个元素相乘,矩阵$A$和$k$数乘记为$kA$

数乘和加法满足分配律$k(A+B) = kA + kB$

乘法

矩阵乘法定义为第一个矩阵的每个行向量和第二个矩阵的每个列向量做内积,形成结果矩阵的每个元素,矩阵相乘记为$AB$

要求第一个矩阵的列数要等于第二个矩阵的行数

结果矩阵第$i$行第$j$列位置处的元素为$A$的第$i$行与$B$的第$j$列的内积

结果矩阵的每个元素需要$p$次乘法运算、$p-1$次加法运算得到,结果矩阵有$m \times n$个元素

因此,矩阵乘法需要$m \times n \times p$次乘法和$m \times n \times (p-1)$次加法

使用矩阵乘法可以简化线性方程组的表述,对于如下的线性方程组

定义系数矩阵为

定义解向量和常数向量为

既可以将方程组写成矩阵的形式$Ax=b$

这种表示可以与一元一次方程$ax=b$达成形式上的统一,系数矩阵和常数向量合并之后称为增广矩阵,比如以上的增广矩阵为

阿达玛积

矩阵的阿达玛积定义为对应位置元素乘积形成的矩阵,记为$A \odot B$

矩阵分块表示

对于下面的矩阵

可以将其分块为

其中

如果矩阵的子矩阵为$0$矩阵,或者单位矩阵等特殊类型的矩阵,这边表示会非常有效

如果矩阵$A,B$分块后各块的尺寸以及水平、垂直方向的块数量相容,那可以将块当做标量来计算乘积$AB$

如果各个位置处对应的两个字块尺寸相容,那么可以进行矩阵乘积运算

🌰举个分块乘法的例子

将$A$分为4块

将$B$分块为

因此它们的乘积为

其中

因此

在多态正态分布中,将会对协方差矩阵进行分块

特性

1️⃣单位矩阵与任意矩阵的左乘和右乘都等于该矩阵本身,即

2️⃣矩阵$A$左乘对角矩阵$\Lambda = diag(k_1, \cdots, k_n)$相当于将$A$的第$i$行的所有元素都乘以$k_i$

3️⃣矩阵$A$右乘对角矩阵$\Lambda = diag(k_1, \cdots, k_n)$相当于将$A$的第$i$列的所有元素都乘以$k_i$

4️⃣向量组的格拉姆矩阵可以写成一个矩阵与其转置的乘积

其中是所有向量按列形成的矩阵

5️⃣矩阵的乘法满足结合律

这些由标量乘法的结合律可推得

6️⃣矩阵乘法和加法满足左分配律和右分配律

注意矩阵的乘法不满足交换律,即一般情况下$AB \neq BA$

7️⃣矩阵乘法和转置满足穿脱原则

逆矩阵

定义

逆矩阵对应标量的倒数运算,对于$n$阶矩阵$A$,如果存在另一个$n$阶矩阵$B$,使得它们的乘积为单位矩阵

对于$AB=I$,$B$称为$A$的右逆矩阵,对于$BA=I$,$B$称为$A$的左逆矩阵

如果矩阵的左逆矩阵和右逆矩阵存在,则它们相等,统称为矩阵的逆,记为$A^{-1}$

假设$B_1$是$A$的左逆,$B_2$是$A$的右逆,则有

因此$B_1=B_2$

非奇异矩阵和奇异矩阵

如果矩阵的逆矩阵存在,则称其可逆(Invertable)。可逆矩阵也称为非奇异矩阵,不可逆矩阵也称为奇异矩阵

如果矩阵可逆,则其逆矩阵唯一

假设$B$和$C$都是$A$的逆矩阵,则有$AB=BA=I$和$AC=CA-I$

从而有$CAB=(CA)B=IB=B$和$CAB=C(AB)=CI=C$,因此B=C

对于线性方程组,如果能得到系数矩阵的逆矩阵,方程两边同乘以该逆矩阵,可以得到方程的解

这与一元一次方程的求解形式上是统一的$ax=b \Rightarrow x=a^{-1b}$

如果对角矩阵$A$的主对角线非$0$,则其逆矩阵存在,且逆矩阵为对角矩阵,主对角线元素为矩阵$A$的主对角线元素的逆

可以推出,上三角矩阵的逆矩阵仍然是上三角矩阵

第1个等式与矩阵乘法的转置类似

因此第1个等式成立,这里利用了矩阵乘法的结合律

由于$AA^{-1}=I$根据逆矩阵的定义,第2个等式成立

由于$(A^{-1})^TA^T = (AA^{-1})^T = I^T = I$根据逆矩阵的定义,第3个等式成立

该等式可以证明对称矩阵的逆矩阵也是对称矩阵,用类似的方法可以证明第4个等式成立

矩阵的秩

矩阵的定义为矩阵线性无关的行向量或列向量的最大数量,记为$r(A)$

该矩阵秩为$2$,该矩阵的极大线性无关组为矩阵的前两个行向量或列向量

如果$n$阶方阵的秩为$n$,则称其满秩,矩阵可逆的充分必零条件是满秩

对于$m \times n$的矩阵$A$,其秩满足$r(A) \leq min(m,n)$,即矩阵的秩不超过其行数和列数的较小值

矩阵的秩相关结论

初等行变换

所谓矩阵的初等行变换是指以下3种变换

  1. 用一个非零的数$k$乘矩阵的某一行

  2. 把矩阵的某一行的$k$倍加到另一行,这里的$k$是任意实数

  3. 互换矩阵的两行

🌴初等变换是单位矩阵$I$经过一次初等变换之后得到的矩阵

  1. 对于第一种初等行变化,对应的初等矩阵和逆矩阵分别如下,这意味着将单位矩阵的第$i$行乘以$k$,然后再乘以$\frac{1}{k}$,将变为单位矩阵

  2. 对于第二种初等行变化,对应的初等矩阵和逆矩阵分别如下,意味着将单位矩阵的第$i$行乘以$k$之后加到第$j$行,然后再将第$i$行乘以$-k$之后加到第$j$行,将变为单位矩阵

  3. 对于第三种初等行变化,对应的初等矩阵和逆矩阵相等,这意味着,将单位矩阵的第$i$行和$j$行互换,然后再互换一次,将变为单位矩阵

🍒对矩阵做初等变换,等价于左乘对应的初等矩阵

  1. 对于第一种行变换

  2. 对于第二种行变换

  3. 对于第三种行变换

初等行变换计算逆矩阵

如果矩阵$A$可逆,则可以利用初等行变换将其变换为单位矩阵,对应于一次左乘初等矩阵$P1,P2,\cdots,P_s$

两侧同时右乘$A^{-1}$可以得到

这意味着同样的初等行变换序列,在将矩阵$A$化为单位矩阵的同时,可将矩阵$I$化为$A^{-1}$,这就是逆矩阵

🌰用初等行变换求解$A$的逆矩阵

求解过程如下

python的linalg库中的inv函数实现了逆矩阵的计算

1
2
3
import numpy as np
A = np.array([[1,0,0], [0,1,0], [0,0,5]])
B = np.linalg.inv(A)

正交矩阵

如果一个方阵满足

则称为正交矩阵,正交矩阵的行向量均为单位向量且相互正交,构成标准正交基,对于矩阵按行分块,有

因此有

  • 如果一个矩阵是正交矩阵,根据逆矩阵的定义,有

下面是一个正交矩阵的例子

可以验证其行向量和列向量均为单位向量,且相互正交

  • 正交矩阵的乘积仍然是正交矩阵,如果

  • 正交矩阵的逆矩阵仍然是正交矩阵。如果有

  • 正交矩阵的转置仍然是正交矩阵,因为

而$A^{-1}$是正交矩阵,因此$A^{\mathrm{T}}$也是正交矩阵

矩阵的范数

诱导范数

矩阵$\boldsymbol{W}$的范数定义为

该范数通过向量的L-p范数定义,因此也称为诱导范数(Induced Norm)

式中右侧分母为向量$x$的L-p范数,分子是经过矩阵对应的线性映射作用之后的向量的L-p范数

因此诱导范数的几何意义是矩阵所代表的线性变换对向量进行变换后,向量长度的最大拉伸倍数

谱范数

如果$p=2$,此时诱导范数你为谱范数(Spectral Norm)

F范数

矩阵的Frobenius范数(F范数)定义为

这等价于向量的L2范数,将矩阵按行或列展开之后形成向量,然后计算L2范数

对于下面的矩阵

其$\mathrm{F}$范数为

根据柯西不等式,对于任意的$\boldsymbol{x}$,下面不等式成立

如果$x \neq 0$,上式两边同时除以$|x|$可以得到

因此$(\mathrm{F}$范数)是谱范数的一个上界

矩阵的范数对于分析线性映射函数的特性有重要的作用,典型的应用是深度神经网络稳定性与泛化性能的分析

线性变换

定义

矩阵与向量的乘法可以解释为线性变换(Linear Transformation),它将一个向量变成另外一个向量

对于线性空间$X$,如果在其上定义了一种变换(即映射)$A$,对任意$\boldsymbol{x} 、 y \in X$以及数域中的数$k$均满足

以及

即对加法和数乘具有线性关系,则称这种映射为线性变换

线性变换对向量的加法与数乘运算具有线性

矩阵乘法是一种线性变换,它满足线性变换的定义要求,对任意的向量$x, y \in \mathbb{R}^{n}$以及实数$k$有

几何中的旋转变换是一种线性变换,下面以二维平面的旋转为例进行说明

对于二维平面内的向量,其在极坐标系下的坐标为,从极坐标系到直角坐标系的转换公式为

将极坐标为$(r \quad \alpha)^{\mathrm{T}}$的向量逆时针旋转$\alpha$度之后的结果向量$\boldsymbol{x}^{\prime}$的极坐标为,其直角坐标为

因此旋转变换的变换矩阵为

正交变换

如果一个线性变换能保持向量之间的角度以及向量的长度不变,即变换之后两个向量的夹角不变,且向量的长度不变,则称为正交变换,正交变换对应的矩阵是正交矩阵

下面给出证明: 如果$\boldsymbol{A}$是正交矩阵,使用它对向量$\boldsymbol{x}$进行变换之后的向量长度为

变换之后向量长度不变,对向量$\boldsymbol{x}$和$\boldsymbol{y}$变换之后的内积为

根据向量夹角公式

内积和向量长度均不变,因此保持向量夹角不变

旋转变换是正交变换,以二维平面的旋转矩阵为例,有

旋转变换矩阵是正交矩阵,因此旋转变换是正交变换

几何中的缩放变换也是一种线性变换,对于二维平面的向量,如果有下面的缩放变换矩阵

则变换之后的向量为

这相当于在方向拉伸2倍,在方向拉伸3倍

缩放变换对应的矩阵为对角矩阵,主对角线元素为在该方向上的拉伸倍数,如果为负,则表示反向

缩放变换和旋转变换被广泛应用于数字图像处理、计算机图形学,以及机器视觉等领域,实现对几何体和图像的旋转和缩放等操作

行列式

行列式(Determinant, det)是对矩阵的一种运算,它作用于方阵,将其映射成一个标量

行列式的定义与性质

$n$阶方阵$\boldsymbol{A}$的行列式记为$|\boldsymbol{A}|$或$\operatorname{det}(\boldsymbol{A})$,称为$n$阶行列式。计算公式为

其中为正整数$1,2, \cdots, n$的一个排列,$S_{n}$是这$n$个正整数所有排列构成的集合, 显然有 种排列

这里为排列的逆序数

对于一个排列,如果,但,则称为一个逆序

排列中所有逆序的数量称为排列的逆序数

下面举例说明,对于3个正整数$1,2,3$,其所有排列的集合$S_{n}$为

排列$3,2,1$的所有逆序为

因此其逆序数为3

排列$2,1,3$的所有逆序为

因此其逆序数为1

根据定义,$n$阶行列式的求和项有$n!$ 项,每个求和项中的表示按行号递增的顺序从$\boldsymbol{A}$的每一行各抽取一个元素相乘

且这些元素的列号不能重复,它们的列号的一个排列

这里决定了求和项的符号,它意味着如果这些元素的列号排列的逆序数为偶数,则其值为1;如果为奇数,则为-1

$n!$ 种排列中逆序数为奇数的排列和逆序数为偶数的排列各占一半,此求和项中正号和负号各占一半

下面按照定义计算3阶行列式的值

下面推导2阶和3阶行列式的计算公式,2阶矩阵的行列式的计算公式为

下面的2阶行列式值为

3阶矩阵的行列式的计算公式为

下面的3阶行列式值为

行列式可以表示平行四边形与平行六面体的有向面积和体积,也是线性变换的伸缩因子

如果将方阵看作线性变换,则其行列式的绝对值表示该变换导致的体积元变化系数

雅克比行列式被广泛应用于多元函数微分与积分的计算,代表了多元换元后的比例量

按照定义,一个行列式可以按照行或列进行递归展开,称为拉普拉斯展开(Laplace Expan-sion)

其中

是去掉矩阵$\boldsymbol{A}$的第$i$行和第$j$ 后的$n-1$阶矩阵的行列式,并且带有符号$(-1)^{i+j}, i+j$为行号和列号之和,称代数余子式,不带符号的子行列式则称为余子式

下面的行列式可以按第一行展开为

特殊行列式的值

某一行(列)全为0的行列式值为0,根据拉普拉斯展开可以得到此结论,根据行列式的定义也可以直接得到此结果,$n!$ 个求和项中每一项都必然包含某一 行列的一个元素,根据此结论,下面的行列式值为0

根据定义,如果一个矩阵为对角矩阵,则其行列式为矩阵主对角线元素的乘积,这是因为$n !$ 个求和项中,除了全部由主对角线元素构成的项之外,其他的项的乘积中都含有0

下面的对角矩阵的行列式值为

单位矩阵的行列式为1

上三角矩阵和下三角矩阵的行列式为其主对角线元素的乘积,这是因为$n$ ! 个求和项中,除了全部由主对角线元素构成的项之外,其他的项的乘积中都含有0

根据这一结论有

行列式的重要性质

行列式具有多线性,可以按照某一行或列的线性组合拆分成两个行列式之和

因为

按照这一结论有

如果行列式的两行或列相等,那么行列式的值为0,即

下面给出证明,假设行列式的第$i$行和第$k$行相等,$n!$ 个求和项可以分成两组,即

由于且排列的逆序数的奇偶性相反(二者通过一次置换可以互相得到),因此这两项的符号相反,故行列式的值为0

根据这一结论,下面的行列式为0

根据这一结论可以构造出可逆矩阵的逆矩阵,对于矩阵

假设的代数余子式,利用它们构造如下的伴随矩阵

根据拉普拉斯展开,第$i$行与其代数余子式的内积为行列式本身

第$i$行与第$j, j \neq i$行的代数余子式的内积为0,这是因为它是第$j$行与第$i$行相等的行列式的拉普拉斯展开,其值为0

因此有

如果$|\boldsymbol{A}| \neq 0$,则有

因此

这也证明了矩阵$\boldsymbol{A}$可逆的充分必要条件是$|\boldsymbol{A}| \neq 0$

如果把行列式的某一行元素都乘以$k$,则行列式变为之前的$k$倍,即

如果将行列式的两行交换,行列式反号

如果一个行列式的两行成比例关系,其值为0

行列式的一行加上另一行的$k$倍,行列式值不变

按照这一结论,下面两个行列式的值相等

可以通过这种变换将矩阵化为三角矩阵,然后计算其行列式的值

根据拉普拉斯展开可以证明下面的结论成立

如果矩阵$A$和$B$是尺寸相同的$n$阶矩阵,则有

即矩阵乘积的行列式等于矩阵行列式的乘积,下面给出证明,由于

将$n+1$行乘以加到第1行,第行乘以加到第1行,… , 将第行乘以加到第1行,可以得到

对第$2 \sim n$行执行类似的操作,将上式右侧行列式的左上角全部消为0,最后可以得到

上式第3步将行列式左侧的$n$列与右侧的$n$列对换,因此出现$(-1)^{n}$,第4步利用了拉普拉斯展开,第5步利用了对角矩阵的行列式计算公式,通常使用它计算矩阵乘积的行列式

根据上式可以直接得到下面的结论: 如果矩阵可逆,则其行列式不为0,且其逆矩阵的行列式等于行列式的逆,即

这是因为$A A^{-1}=I$,因此

矩阵与标量乘法的行列式为

其中$n$为矩阵的阶数,这可以根据行列式的定义直接证明,所有求和项均变为,因此最后出现$\alpha^{n}$,根据这一结论有

矩阵转置之后行列式不变

这可以根据行列式的定义以及行列对换进行证明

正交矩阵的行列式为$\pm 1$,如果$A$是正交矩阵,则有

因此$|\boldsymbol{A}|=\pm 1$

计算方法

行列式的计算分为手动计算与编程计算两种方式

手动计算

对于手动计算,重点介绍将矩阵化为上三角矩阵的方法

上三角矩阵或下三角矩阵的行列式是易于许算的,等于其主对角线元素的乘积

根据下面的初等行变换

  1. 将行列式的两行交换
  2. 将行列式的某一行乘以$k$倍之后加到另外一行

可以将行列式化为上三角形式,根据前面介绍的行列式的性质,第一种变换使得行列式的值反号,第二种变换保证行列式的值不变

下面举例说明,对于下面的行列式

将其化为上三角矩阵,然后计算行列式的值

编程计算

Python中linalg的det函数实现了计算方阵行列式的功能,下面是计算矩阵行列式的示例代码

1
2
3
4
import numpy  
A = np.array([[1,0,0],[0,1,0],[0,0,5]])
d = np.linalg.det(A)
print(d)

程序运行结果为5,对角矩阵的行列式为主对角线元素的乘积