深度学习中的线性代数3:矩阵的操作和性质

深度学习中的线性代数3:矩阵的操作和性质

接上一篇:刘博:深度学习中的线性代数2:矩阵乘法

3. 矩阵的操作和性质

3.1 单位矩阵和对角矩阵

单位矩阵

定义:所有对角元素均为1,其他元素都是0的方阵。

I_{ij} = \left\{  \begin{array}{}1 & i = j\\0 & i \ne j \end{array} \right.

表达式: I \in R^{n \times n}

性质: AI = A = IA

对角矩阵

定义:除对角元素外,其他元素都是0的矩阵。

D_{ij} = \left\{ \begin{array}{ll} d_i & i = j \\ 0 & i \ne j \end{array}  \right.

表达式: D = diag(d_1,d_2, \dots,d_n)

显然,单位矩阵是对角矩阵的特殊情况 I = diag(1,1,\dots,1)

3.2 转置

定义:矩阵的转置,就是“交换”矩阵的行和列。

表达式:  (A^T)_{ij} = A_{ji}

性质:

  • (A^T)^T = A
  • (AB)^T = B^TA^T
  • (A+ B)^T = A^T +B^T

3.3 对称矩阵

定义:对于方阵 A \in R^{n \times n} ,如果  A = A^ T , 那么,A就是对称矩阵,如果 A = -A^T , 那么A就是反对称矩阵( anti-symmetric)。

例如:  (A+A^T) 就是一个对称矩阵,  (A-A^T) 就是一个反对称矩阵。

性质:任何一个矩阵都可以表示成对称矩阵和反对称矩阵和的形式,因为A = \frac{1}{2}(A+A^T)+ \frac{1}{2}(A-A^T) 。 一般把所有对称矩阵的集和表示为  S^n ,所以  A \in S^n 表示A是一个对称矩阵。

3.4 矩阵的迹

定义:对于方阵 A = \in R^{n \times n} , 其对角元素的和就是矩阵的迹。

表达式: tr(A) = \sum_{i=1}^{n}A_{ii}

性质:

  • tr(A) = tr(A^T)
  • tr(A+B) = trA +trB
  • tr(tA) = t\space tr(A) , t \in R
  • tr(AB) = tr(BA) ,当然,前提是这里的AB是方阵。
  • tr(ABC) = tr(BAC) = tr(CAB) ,以及任何多个矩阵的积(方阵)都满足迹的交换律。

3.5 矩阵的范数

向量的范数 ||x|| 是一种非正式的向量长度的测量,以常用的欧几里得范数( Euclidean or l2 norm)为例,定义如下:

||x||_2 = \sqrt{\sum_{i=1}^{n}x_i^2}

注意:  ||x||_2^2 = x^Tx

范数更加正式的定义是:任何满足下述条件的函 f:R^n \rightarrow R

  • 正定性或非负性( non-negativity):对于 x \in R^n ,  f(x) \geq 0
  • 确定性( definiteness),当且仅当x=0时,f(x)=0
  • 齐次性(homogeneity),对于  x \in R^n ,\ t\in R, f(tx) = |t|f(x)
  • 满足三角不等式(triangle inequality),对于 x,y \in R^n, f(x+y)\leq f(x) +f(y)

矩阵的范数,以菲罗贝尼乌斯范数(Frobenius norm)为例:

 ||A||_F=\sqrt{\sum_{i=1}^m{\sum_{j=1}^n{A_{ij}^2}}}=\sqrt{tr(A^TA)}

还有很多其他的范数,但是超出了本文的谈论范围。

3.6 线性无关和矩阵的秩

线性无关(Linear Independence)

定义:对于向量集 \left\{ x_1,x_2,\dots,x_n \right\} \in R^{m} ,如果其中的任何一个向量 x_i 都不能被其他向量的线性组合所表示,那么这个向量集就是线性无关的。相反,如果有向量可以被其他向量的组合所表示,那么就是线性相关(Linear dependence)的。

例子: x_1 = \begin{bmatrix} 1 \\2 \\ 3\end{bmatrix} x_2 = \begin{bmatrix} 1 \\1 \\ 1\end{bmatrix} x_3 = \begin{bmatrix} 3 \\4 \\ 5\end{bmatrix} 上述向量集就是线性相关的,因为  x_3 = x_2+x_1

列秩

最大的线性独立的列向量的子集合的列数。

行秩:最大的线性独立的行向量的子集合的行数。

也就是说,假设矩阵A有n行,其中能找到的最大的子集合有n-2行,那么矩阵A的行秩就是n-2。 矩阵的列秩和行秩相等(读者可以自行证明),所以,一般来说统一称为矩阵的秩(Rank)

表达式: rank(A)

性质:

  • 对于 A \in R^{n \times m} , rank(A) \le min(m,n), 如果  rank(A) = min(m,n) 那么我们说A是满秩
  • 对于  A \in R^{n \times m} , rank(A) =rank(A^{T})
  • 对于 A \in R^{n \times m} , B \in R^{m \times p} , rank(AB) \le min(rank(A),rank(B))
  • 对于  A,B \in R^{n \times m} , rank(A+B) \le rank(A)+ rank(B)

3.7 矩阵的逆

对于方阵  A \in R^{n \times n} ,A的逆表示为 A^{-1} ,单位矩阵是唯一满足以下公式的矩阵:  AA^{-1} = I = A^{-1}A

注意,不是所有的矩阵都有逆矩阵,记住这句话:不是方阵一定不存在逆矩阵(逆矩阵的定义),是方阵不一定存在逆矩阵。

如果A存在逆矩阵  A^{-1} ,那么我们说A是可逆的(invertible),也可以说A是非奇异矩阵(non-singular)。 如果A不存在逆矩阵  A^{-1} ,那么我们说A是不可逆的(non-invertible),也可以说A是奇异矩阵(singular)。 如果A存在逆矩阵,那么A一定是满秩(后面会讲到很多其他的满足A存在逆矩阵的充分必要条件)。

性质:

  • (A^{-1})^{-1} = A
  • (AB)^{-1} = B^{-1}A^{-1}
  •  (A^{-1})^{T}=(A^{T})^{-1} ,所以当我么想要A的逆的转置时,表达为  A^{-T}

3.8 正交矩阵

先说正交向量,如果对于  x,y \in R^{n} x^Ty = 0 ,那么我们说,x和y是正交的( orthogonal )。

再来说说归一化,如果一个向量的范数是1,  ||x||_2=1 ,那么这个向量是归一化的。

有了前面两个定义,我们现在来定义正交矩阵,对于一个方阵来说 U \in R ^{n \times n} ,如果U的所有列向量都是正交且归一化的,那么我们就说这个矩阵是正交的。

我们还可以得到:  U^TU = I = UU^T 也就是说,正交矩阵的逆等于正交矩阵的转置。

最后,正交矩阵的性质,正交矩阵乘以一个向量,不影响这个向量的范数,如下:  ||Ux||_2 = U||x||_2

3.9 矩阵列空间和零空间

生成空间

定义:一个向量集合 \{x_1,x_2,\dots x_n\} 的生成空间的是所有能被表示为该向量集的线性组合的所有向量的集合。

表达式: span(\{x_1,\dots x_n\}) =  \Big \{  v:v = \sum_{i=1}^n\alpha_ix_i,\alpha \in R \Big \}

投影

定义:我们定义向量 y\in R^m\{x_1,x_2,\dots x_n\} (我们假设 x_i \in R_m )的生成空间的投影是向量 v \in span(\{x_1,\dots x_n\}) ,这个向量 vy 的距离最近,距离的定义是欧式范数。

表达式: Proj(y;\{x_1,\dots x_n\}) = argmin_{v \in span(\{x_1,\dots,x_n\})}||y-v||_2

列空间

定义:矩阵 A 的列组成的向量集的生成空间。

表达式: \mathcal R(A) = \{ v \in R_m: v = Ax,x \in R^n \}

列空间的投影

定义:假设 A 是满秩而且 n<m ,那么向量 y \in R^m A 的投影定义为:

Proj(y;A) = argmin_{v \in \mathcal R(A)}||v-y||_2 = A(A^TA)^{-1}A^Ty

其实列空间的投影得到的就是最小二乘估计的参数 x

零空间

定义:由所有右乘矩阵 A 等于0的向量组成的集合称为该矩阵的零空间,记为 \mathcal N(A)

表达式: \mathcal N(A) = \{ x \in R^n:Ax=0\}

正交补

注意, \mathcal R(A) 中的向量维度是m,而 \mathcal N(A) 中的向量维度是n,所以 \mathcal R(A)^T\mathcal N(A) 的维度都是n,实际上,这两个集和是不想加的,而且两个集合扩展了整个n维空间 R^n 。这种结合我们称作正交补,记作 \mathcal R(A^T) = \mathcal N(A)^\perp

3.10 行列式

定义: 一个方阵 A \in R^{n \times n} 的行列式就是一个将方阵映射为标量的函数 det : R^{n \times n} \rightarrow R ,记为 |A|det A

下面我们来讨论行列式的几何意义。

给出以下矩阵:

\begin{bmatrix} - & a^T_1 & - \\ -& a^T_2 &- \\ \space & \dots & \space \\ - & a^T_n & -\end{bmatrix}

考虑这样的集和 S \in R^n ,该集合是所有行向量 a_1,\dots,a_n \in R ^n 的线性组合组成的集合,而所有线性组合的系数均在0到1的区间。也就是说,集合S是在限制所有系数必须满足 0 \le \alpha_i \le 1, i= 1,\dots, n 条件下的的生成空间 span(\{a_1,\dots,a_n\}) 数学表示如下:

S = \{v \in R^n:v=\sum^n_{i=1}\alpha_ia_i \space where \space 0 \le \alpha_i \le 1,i=1,\dots,n\}

矩阵行列式的绝对值,就是对集合S的面积(或体积)的测量。

行列式性质:

1. 单位矩阵的行列式为1。 |I| = 1

2. 如果我们给一个矩阵的某一行乘以一个标量 t \in R ,那么这个新矩阵的行列式是 t|A|

\begin{vmatrix}\begin{bmatrix} - & ta_1^T & - \\ - & a_2^T & - \\ & \vdots & \\ - & a_m^T & -\end{bmatrix}\end{vmatrix} = t|A|

3. 如果我们交换矩阵A的两行 a_i^Ta_j^T ,那么新矩阵的行列式是 -|A|

\begin{vmatrix}\begin{bmatrix} - & a_2^T & - \\ - & a_1^T & - \\ & \vdots & \\ - & a_m^T & -\end{bmatrix}\end{vmatrix} = -|A|

根据以上三条性质还能够推出以下性质:

  • 对于 A \in R^{n \times n},|A|=|A^T|
  • 对于A,B \in R^{n \times n},|AB|=|A||B|
  • 当且仅当A是奇异矩阵时,对于 A \in R^{n \times n},|A|=0
  • 对于 A \in R^{n \times n} 且A是非奇异矩阵,有 |A^{-1}| = 1/|A|

在给出行列式的通用定义之前,我们首先定义,对于 A \in  R^{n \times n},A_{ \backslash i , \backslash j} \in R^{(n-1)\times(n-1)} 表示删除了矩阵A中第i行和第j列得到的矩阵。有了这个定义我们正式定义行列式如下:

\begin{align} |A| & = \sum_{i=1}^{n}(-1)^{i+j}a_{ij}|A_{\backslash i,\backslash j}| & (for \space any \space j \in 1,\dots, n) \\       & = \sum_{j=1}^{n}(-1)^{i+j}a_{ij}|A_{\backslash i,\backslash j}| & (for \space any \space i \in 1,\dots, n) \end{align}

3.11 二次型和半正定矩阵

定义:给定一个方阵 A \in R^{n \times n} 和一个向量 x \in R^n ,标量 x^TAx 被称作二次型

表达式:

x^TAx = \sum_{i=1}^nx_i(Ax)_i = \sum_{i=1}^nx_i(\sum_{j=1}^nA_{ij}x_j) = \sum_{i=1}^n\sum_{j=1}^nx_iA_{ij}x_j

由二次型的定义证明矩阵A是对称矩阵:

x^TAx = (x^TAx)^T = x^TA^Tx = x^T(\frac{1}{2}A+\frac{1}{2}A^T)x

第一个等号因为二次型是标量,标量的转置等于自身,第二个等号是转置的计算,其实此时由 x^TAx = x^TA^Tx 已经得到了 A = A^T ,所以A是对称矩阵。

我们继续给出如下定义:

  • 如果对于所有非零向量 x \in R^n ,都有 x^TAx > 0 ,那么对称矩阵 A \in \mathcal S^n 称为正定矩阵,一般表示为 A \succ 0A>0 ,一般将所有正定矩阵的集合表示为 \mathbb S_{++}^n
  • 如果对于所有向量 x \in R^n ,都有 x^TAx \ge 0 ,那么对称矩阵 A \in \mathcal S^n 称为半正定矩阵,一般表示为 A \succeq 0A \ge 0 ,一般将所有正定矩阵的集合表示为 \mathbb S_{+}^n
  • 同样,如果对于所有非零向量 x \in R^n ,都有 x^TAx < 0 ,那么对称矩阵 A \in \mathcal S^n 称为负定矩阵,一般表示为 A \prec 0A<0
  • 同样,如果对于所有向量 x \in R^n ,都有 x^TAx < 0 ,那么对称矩阵 A \in \mathcal S^n 称为半负定矩阵,一般表示为 A \preceq 0A\le0
  • 最后,如果对称矩阵 A \in \mathcal S^n 既不是半正定矩阵也不是半负定矩阵,则称为不定矩阵

一个重要的性质是正定和负定矩阵必须是满秩矩阵。

格拉姆矩阵

给定任意矩阵 A \in R^{m \times n} (不一定是对称矩阵或方阵),矩阵 G = A^TA ,称作格拉姆矩阵,总是半正定的。再进一步,如果 m \ge n ,并且我们假设A是满秩的,那么G是正定矩阵

3.12 特征值和特征向量

给定方阵 A \in R^{n \times n} ,如果满足下式,那么我们说 \lambda \in \mathbb C 是A的特征值, x \in \mathbb C^n 是A对应的特征向量。

Ax = \lambda x, x \neq 0

一般我们说特征值对应的“特征向量”,指的是被归一化的那个向量。

我们可以将表达式重写为下面的形式,这种形式我们称 (\lambda , x) 为A的一对“特征值-特征向量”。

(\lambda I - A)x = 0, x \neq 0

只有当 (\lambda I - A) 是奇异矩阵时,上式有非零解。也就是:

|(\lambda I - A)| = 0

现在,我们可以利用之前对行列式的定义,将其扩展为关于 \lambda 的多项式,假设最高次项为n。我们可以解这个多项式,得到n个根,即n个特征值 \lambda_1, \dots, \lambda_n 。为了得到n个特征值对应的所有特征向量。我们只需要解 (\lambda I - A)x = 0 。注意,这只是我们的讨论,实际中出于计算复杂的原因,这并不是得到特征值和特征向量的方法。

性质:

  • A的迹等于所有特征值的和 trA = \sum_{i=1}^n\lambda_i
  • A的行列式等于所有特征值的乘积 |A| = \prod_{i=1}^n \lambda_i
  • A的秩等于A的非零特征值的数量
  • 如果A是非奇异矩阵那么 1/\lambda_iA^{-1} 的特征值,对应的特征向量是 x_i .
  • 一个对角矩阵的奇异值就是对角元素。

我们可以联立写出所有特征向量的形式如下:

AX = X\Lambda

其中, X \in R^{n \times n} 的所有列都是A的特征向量,而且 \Lambda 是一个对角矩阵,对角元素都是A的特征值。也就是:

X \in R^{n \times n} = \begin{bmatrix} | & | & & |\\ x_1 & x_2 & \dots & x_n \\ | & | & & | \end{bmatrix}, \Lambda = diag(\lambda_1,\dots,\lambda_n)

如果A的特征向量都是线性无关的,那么矩阵 X 就是可逆的,所以 A = X\Lambda X^{-1} ,能携程这种形式的矩阵被称为可对角化的

3.13 对称矩阵的特征值和特征向量

当我们研究一个对称矩阵A \in S^n 时,能够得到两个重要的性质。第一,A的所有特征值都是实数。第二,A的所有特征向量都是正交的。例如,假设上节中的矩阵X是一个正交矩阵(所以我们用U表示X),那么A可以表示为 A = U\Lambda U^T ,还记得吗,根据正交矩阵的性质,正交矩阵的逆等于其转置。

因此,一个矩阵的正定性完全取决于特征值的符号。假设 A \in \mathbb S^n = U\Lambda U^T 。那么:

x^TAx = x^TU\Lambda U^Tx = y^T\Lambda y = \sum^{n}_{i=1}\lambda_iy_i^2

其中 y = U^Tx ,因为U是满秩的,任何向量都可以表示成为这种形式。

因为 y_i^2 总是正的,所以这个式子的符号完全取决于 \lambda_i 。如果所有特征值都是正的,那么矩阵是正定的。如果所有特征值都是大于等于0,那么矩阵是半正定的。小于零和小于等于零对应负定矩阵和半负定矩阵。有正有负则对应非定矩阵。

一个特征值和特征矩阵的常见应用是最大化一个矩阵的一些函数。实际中,对于一个矩阵 A \in \mathbb S^n ,考虑以下的最大化问题,

max_{x \in R^n} \ x^TAx \ subject \ to \ ||x||^2_2 = 1

例如,我们想要找到使二次型 x^TAx 最大的向量x(x的范数为1)。假设特征值的大小顺序是 \lambda_1 \ge \lambda_2 \ge \dots \ge \lambda_n ,那么最优的x就是 x_1 ,对应的特征向量就是 \lambda_1 ,得到的最大值就是 \lambda_1

OK,本篇到此,下一篇继续讨论关于矩阵微积分的内容。

编辑于 2019-05-15

文章被以下专栏收录

    本专栏专注于介绍深度学习方面的基础知识,主要包括神经网络基础概念和,深度学习中的python,深度学习中的线性代数,深度学习工具箱,深度学习中的微积分,深度学习中的概率论与数理统计。除此之外,还有一些著名网络课程的学习笔记,主要包括斯坦福大学CS224n课程、coursera吴恩达深度学习课程等