转自:https://blog.csdn.net/yong_bai/article/details/80033516

yong_bai 发布于2018-04-18 21:40:15 阅读数 1440  收藏

展开

本文为原创文章,欢迎转载,但请务必注明出处。

线性代数是机器学习和深度学习算法的数学基础之一,这个系列的文章主要描述在AI算法中可能涉及的线性代数相关的基本概念和运算。本文主要参考Garrett Thomas(2018),Marc Peter Deisenroth(2018),Strang(2003),José Miguel Figueroa-O’Farrill, Isaiah Lankham(UCD, MAT67,2012)等教授的相关讲座和教材。本文的主要内容包括向量的基本概念,向量空间,线性组合、线性无关、线性相关、基以及线性映射。

1、向量的基本概念

线性代数的研究对象是向量(vector),在数学上通常称之为“几何向量(geometric vector)”,使用 x→x→ 或 y→y→ 等来表示(如图一所示),这个时候,向量就可以表示为空间的一个点。而在计算机领域,向量通常使用黑体小写字母表示,如 xx 或 yy 。 

图一: 二维空间的两个向量。空间内的向量可以用空间中对应的点表示。

通常,满足以下两个运算条件的对象都可以看成是向量:

  • 对象之间可以进行相加运算;
  • 对象可以乘以一个标量得到同样类型的另一个对象。

比如向量 xx 和 yy 可以相加: x+y=zx+y=z, 那么 zz 也是向量; 另外,向量 xx 乘以标量 λ∈Rλ∈R 得到 λxλx 也是向量。从这个角度来说,多项式(polynomials)也是向量(两个多项式相加仍是多项式,一个多项式乘以一个标量同样还是多项式)。 还有,任何数字信号也是向量。

图二表示了向量相加及向量与标量相乘,其中(a)表示两个向量相加,其结果向量的长度是是两个向量组成的平行四边形的对角线的长度,方向与两个向量的方向相同;(b)是向量与标量相乘,其结果向量与原向量在同一个直线上,方向由标量的符号决定(正为同方向,负为反方向),结果向量的长度由标量的绝对值决定,如果标量的绝对值在0和1之间,那么向量的长度被同比例压缩;如果标量的绝对值的绝对值大于或等于1,那么向量的长度被同比拉升;(c)是表示了一个三维空间的向量。三维空间里,两个向量(如果不在一个直线上)可以确定一个平面,3个向量(如果不在同一个直线或同一个平面上)可以确定一个立体柱体。 

图二:向量相加及向量与标量相乘

需要说明的是向量和计算机语言中的数组是不同概念。数组是计算机编程语言的一种数据结构,不具有向量的运算特性,比如python中list 和 numpy 中的array 是有本质区别的,虽然他们都有类似的编程访问特性(比如都可以根据下标随机访问任何一个元素,可以切片访问一个子序列等),但是只有array 实现了向量的运算(比如向量的内积运算等)。

2、向量空间

向量空间(vector space,又称为线性空间)是线性代数的基本概念之一。本文开始提到了成为向量所需要的两种运算条件(或两个特性),而向量空间的定义就是基于这两个特性。向量空间定义:一个向量空间 VV 是向量的集合,在这个集合上定义了向量的两种运算:

  • 向量之间可以相加,即x+y∈Vx+y∈V, 其中 x,y∈Vx,y∈V;
  • 向量可以乘以一个称为标量(scalar)的实数,即αx∈Vαx∈V, 其中x∈V,α∈Rx∈V,α∈R。

以上两个条件又构成了向量空间的“闭包”(closure)特性。也就是说,向量空间中的向量进行以上两种运算后,其结果仍然在该向量空间中。

向量空间 VV 必须满足:

  • 存在加法单位元,记作 00(即零向量),使得 x+0=xx+0=x, 这里 x∈Vx∈V;
  • 对于任意 x∈Vx∈V, 存在加法逆元(又称为相反数),记作 −x−x,使得 x+(−x)=0x+(−x)=0;
  • 在实数集 RR中存在乘法单位元,记为 1,使得 1x=x1x=x,这里 x∈Vx∈V;
  • 交换律(commutativity):x+y=y+xx+y=y+x;
  • 结合律(associativity):(x+y)+z=x+(y+z)(x+y)+z=x+(y+z), α(βx)=(αβ)xα(βx)=(αβ)x, 这里 x,y,z∈V,α,β∈Rx,y,z∈V,α,β∈R;
  • 分配律(distributivity):α(x+y)=αx+αyα(x+y)=αx+αy 和 (α+β)x=αx+βx(α+β)x=αx+βx, 这里x,y∈V,α,β∈Rx,y∈V,α,β∈R。

3、线性组合、线性无关、向量张成与向量空间的基

3.1、线性组合

线性组合(linear combination)定义:对于向量空间 VV 中的一组非零向量集 v1,v2,...,vnv1,v2,...,vn ,且一组标量(即实数)α1,α2,...,αnα1,α2,...,αn,则等式

∑i=1nαivi=α1v1+α2v2+...+αnvn∑i=1nαivi=α1v1+α2v2+...+αnvn

称为向量空间 VV 中向量集v1,v2,...,vnv1,v2,...,vn 的线性组合。

3.2、线性无关与线性有关

线性无关(linearly independent)定义:对于向量空间 VV 中的一组非零向量集 v1,v2,...,vnv1,v2,...,vn ,当且仅当α1=α2=...=αn=0α1=α2=...=αn=0时,等式

α1v1+α2v2+...+αnvn=0α1v1+α2v2+...+αnvn=0

成立,那么称非零向量集 v1,v2,...,vnv1,v2,...,vn是线性无关的。

如果存在一个 αi≠0αi≠0 使得上式成立,那么称非零向量集 v1,v2,...,vnv1,v2,...,vn 是线性相关的 (linearly dependent)。 这说明在这 nn 个向量中,其中至少有一个向量是剩下的 n−1n−1 个向量的线性组合。比如,假设α1≠0α1≠0, 那么根据上式,有

v1+α2α1v2+...+αnα1vn=0v1+α2α1v2+...+αnα1vn=0

那么,有

v1=−α2α1v2−...−αnα1vnv1=−α2α1v2−...−αnα1vn

即 v1v1 是 v2,...,vnv2,...,vn 的一个线性组合。

3.3、张成span

张成(span)定义:向量空间 VV中的非零向量集 v1,v2,...,vnv1,v2,...,vn 的张成是指v1,v2,...,vnv1,v2,...,vn的线性组合所得到的所有向量所组成的集合。用数学表达就是:

span(v1,v2,...,vn)={v∈V:∃α1,α2,...,αn,α1v1+α2v2+...+αnvn=v}span(v1,v2,...,vn)={v∈V:∃α1,α2,...,αn,α1v1+α2v2+...+αnvn=v}

这个集合构成了原向量空间 VV的一个子空间(最小子空间)。这里特别说明是最小子空间是因为v1,v2,...,vnv1,v2,...,vn 可能存在线性相关性。

3.4、向量空间的基

向量空间的基(basis)的定义:如果非零向量集v1,v2,...,vnv1,v2,...,vn线性无关,而且span(v1,v2,...,vn)=Vspan(v1,v2,...,vn)=V(即这些向量集的张成就是整个向量空间),那么向量集v1,v2,...,vnv1,v2,...,vn称为向量空间VV的基。这也是一个向量集能称为一个向量空间的基所必须满足的两个条件。

如果这些向量之间两两相互正交(即向量两两垂直,也即向量之间的内积为0),那么称v1,v2,...,vnv1,v2,...,vn是向量空间 VV 的正交基(orthogonal basis)。如果正交基的向量长度为1(即向量归一化),那么称之为标准正交基或规范正交基

我们直观的可以简单的理解标准正交基就是我们直角坐标系里的两个轴。比如二维平面坐标系里的标准正交基是[1,0]⊤[1,0]⊤ (表示x-轴上的标准正交基,即这个基位于(1,0)点) 和[0,1]⊤[0,1]⊤(表示x-轴上的标准正交基,即这个基位于(0,1)点),那么平面直角坐标系里的所有向量(或所有点)都可以通过这两个标准正交基向量的线性组合得到,也就是说这两个标准正交基向量的张成是整个二维平面空间。

3.5、向量空间的维数

向量空间的维数(dimension)定义: 在有限维(finite-dimensional)向量空间 VV中构成向量空间基的向量的数量称为向量空间 VV 的维数, 记作dimVdimV。(如果一个向量空间是被有限数量的向量张成,那么该向量空间被称为有限维数finite-dimensional,否则称为无限维数)。

从这里可以看出,空间维数不能简单的根据一个向量中含有的元素的个数来判断。比如上面说到的二维平面空间,之所以叫二维,是因为有2个标准正交基。还有3为立体空间,在3维直角坐标系中,x-轴,y-轴,z-轴的上的标准正交基分别是[1,0,0]⊤[1,0,0]⊤,[0,1,0]⊤[0,1,0]⊤,[0,0,1]⊤[0,0,1]⊤。这三个标准正交基的张成构成了整个3维空间。假设一个平面在这个3为空间中,我们知道在这个时候平面是2维的,但是为什么是2维呢?因为3维空间中的任何一个平面可以由两个不在同一条直线上的基向量决定,所以3维空间中的平面是2维的。

4、欧氏空间 RnRn

通常情况下,在机器学习中我们把多维向量组成的空间称为欧氏空间(Euclidean space),即x∈Rnx∈Rn。

一般来说,对于向量空间 RnRn, 以下的的一组 nn 个向量集:{[1,0,...,0]⊤,[0,1,...,0]⊤,...,[0,0,...,1]⊤}{[1,0,...,0]⊤,[0,1,...,0]⊤,...,[0,0,...,1]⊤} 称为 RnRn 的基, 也称为空间RnRn的正则基(canonical basis)。这也就说明为什么向量空间 RnRn的维数是 nn, 这是因为这里有 nn 个正则基,所以说向量空间 RnRn的维数是 nn,而不是因为每个正则基有 nn 个元素而说向量空间 RnRn的维数是 nn。 这一点不要混淆。其实,如果我们考虑二维空间 R2R2, 它的正则集就是分别沿着x轴和y轴正方向的单位向量:[1,0]⊤[1,0]⊤ 和 [0,1]⊤[0,1]⊤。

在机器学习中, 我们一般都是在使用了正则基的欧氏空间 RnRn 中讨论向量间的各种运算,而且向量通常表示为列向量(没有别的原因,只是为了方便,你也可以表示为行向量):

x=⎡⎣⎢⎢x1⋮xn⎤⎦⎥⎥∈Rnx=[x1⋮xn]∈Rn

于是根据向量空间的闭包性质,有(欧氏空间可以看成是由标准正交基张成的向量空间):

x+y=⎡⎣⎢⎢x1+y1⋮xn+yn⎤⎦⎥⎥,αx=⎡⎣⎢⎢αx1⋮αxn⎤⎦⎥⎥x+y=[x1+y1⋮xn+yn],αx=[αx1⋮αxn]

欧氏空间通常是在数学上用来表示物理空间,比如表示空间中两点(即两个向量)的距离,向量的长度,向量之间的夹角等。

5、子空间

子空间(subspace)的定义: 给定一个向量空间 VV, 那么 S⊆VS⊆V 被称为 VV 的子空间,则 SS 必须满足:

  • 0∈S0∈S
  • SS 对加法闭包:x,y∈Sx,y∈S 则 x+y∈Sx+y∈S
  • SS 对于标量乘法闭包:x∈S,α∈Rx∈S,α∈R, 则 αx∈Sαx∈S。

比如,一条穿过原点的直线是欧氏空间的一个子空间。

图三,并不是所有 R2R2的子集都构成R2R2的子空间。这里,图A和图C不是子空间,因为他们没有满足“闭包”的性质,图B没有包括00点,所以也不是子空间,只有图D是子空间。图片来自(Marc Peter Deisenroth, et al 2018)

如果 UU 和 WW 是VV 的子空间,那么他们的和(sum)定义为:

U+W={u+w|u∈U,w∈W}U+W={u+w|u∈U,w∈W}

可以看出 U+WU+W也是VV的子空间。如果 U∩W={0}U∩W={0}, 那么这个“和”就称为 “直和(direct sum)”, 记作 U⊕WU⊕W。任何在 U⊕WU⊕W 中的向量都可以唯一的记作 u+wu+w, 其中 u∈U,w∈Wu∈U,w∈W。 (这是直和的充要条件)。另外,对于维度有

dim(U+W)=dimU+dimW−dim(U∩W)dim(U+W)=dimU+dimW−dim(U∩W)

于是,对于直和的维数有

dim(U⊕W)=dimU+dimWdim(U⊕W)=dimU+dimW

这是因为对于直和,有 dim(U∩W)=dim({0})=0dim(U∩W)=dim({0})=0

6、线性映射

线性映射(linear map) 是指通过函数从一个向量空间映射到另一个向量空间(即线性变换)。即如果函数 T:V→WT:V→W 是线性映射,其中 VV 和 WW 是向量空间,那么函数TT 必须满足以下条件:

  • T(x+y)=T(x)+T(y)T(x+y)=T(x)+T(y), 其中 x,y∈Vx,y∈V;
  • T(αx)=αT(x)T(αx)=αT(x), 其中 x∈V,α∈Rx∈V,α∈R。

也就是说,线性映射兼容向量相加及标量相乘的运算操作(注意,T(0)=0T(0)=0)。在习惯上,如果不出现歧义,T(x)T(x) 都是记作 TxTx(即去掉括号)。从向量空间VV 到向量空间 WW 的线性映射函数 TT 不止一个,那么所有的线性映射函数就可以构成从向量空间VV 到向量空间 WW 的线性映射函数集,记作L(V,W)L(V,W)。如果一个线性映射是从向量空间 VV 映射到它自己空间本身(即V=WV=W, L(V,V)=L(V)L(V,V)=L(V)),那么称该映射为线性算子(linear operator),也被称为线性转换(linear transform),如图四所示。 

图四:二维平面空间的线性转换

下面举例一些线性映射:

  • 零映射(zero map) 0:V→W0:V→W, 将 每一个v∈Vv∈V 映射为 0∈W0∈W,是线性映射;
  • 单元映射(identity map) I:V→VI:V→V,对每一个v∈Vv∈V 有 Iv=vIv=v,是线性映射;
  • 将映射T:R[z]→R[z]T:R[z]→R[z] 定义为微分映射 Tp(z)=p′(z)Tp(z)=p′(z), 那么对于两个多项式 p(z),q(z)∈R[z]p(z),q(z)∈R[z] 有 

    T(p(z)+q(z))=(p(z)+q(z))′=p′(z)+q′(z)=Tp(z)+Tq(z)T(p(z)+q(z))=(p(z)+q(z))′=p′(z)+q′(z)=Tp(z)+Tq(z)

    类似的, α∈Rα∈R,那么

    T(αp(z))=(αp(z))′=αp′(z)T(αp(z))=(αp(z))′=αp′(z)

    所以微分映射是线性映射。

  • 定义映射 T:R2→R2T:R2→R2 为 T(x,y)=(x−2y,3x+y)T(x,y)=(x−2y,3x+y),那么对于(x,y),(x′,y′)∈R2(x,y),(x′,y′)∈R2, 有(注意,这里是用圆括号来表示一个二维向量如(x,y)(x,y)): 

    T((x,y)+(x′+y′))=T(x+x′,y+y′)=((x+x′)−2(y+y′),3(x+x′)+(y+y′))=(x−2y,3x+y)+(x′−2y′,3x′+y′)=T(x,y)+T(x′,y′)T((x,y)+(x′+y′))=T(x+x′,y+y′)=((x+x′)−2(y+y′),3(x+x′)+(y+y′))=(x−2y,3x+y)+(x′−2y′,3x′+y′)=T(x,y)+T(x′,y′)

    类似的, α∈Rα∈R,那么

    T(α(x,y))=T(αx,αy)=(αx−2αy,3αx+αy)=α(x−2y,3x+y)=αT((x,y))T(α(x,y))=T(αx,αy)=(αx−2αy,3αx+αy)=α(x−2y,3x+y)=αT((x,y))

    所以这个映射是线性映射。

  • 更一般的,任何映射 T:Rn→RmT:Rn→Rm 被定义为(aij∈Raij∈R): 

    T(x1,...,xn)=(a11x1+...+a1nxn,...,am1x1+...+amnxn)T(x1,...,xn)=(a11x1+...+a1nxn,...,am1x1+...+amnxn)

    那么映射 TT 就是线性映射。

不是所有的函数都是线性(映射)的,比如指数函数 f(x)=exf(x)=ex就不是线性的,因为e2x≠2exe2x≠2ex。同样,函数 f:R→Rf:R→R 定义为 f(x)=x−1f(x)=x−1 也不是线性的,因为 f(x+y)=x+y−1≠f(x)+f(y)=x−1+y−1f(x+y)=x+y−1≠f(x)+f(y)=x−1+y−1。

线性映射集 L(V,W)L(V,W) 本身就是向量空间。 假设有两个线性映射 S,T∈L(V,W)S,T∈L(V,W), 那么加法定义为:

(S+T)v=Sv+Tv,v∈V(S+T)v=Sv+Tv,v∈V

标量乘法定义为:

(αT)v=α(Tv),α∈R,v∈V(αT)v=α(Tv),α∈R,v∈V

这里有一个重要结论:如果给定向量空间的基的值,那么线性映射是可以完全被确定的,即:

定理1:给定 v1,...,vnv1,...,vn 是向量空间 VV 的一个基, w1,...,wnw1,...,wn 是向量空间 WW 的任意向量列表,那么存在一个唯一的线性映射 T:V→WT:V→W :

T(vi)=wi,∀i=1,2,...,nT(vi)=wi,∀i=1,2,...,n

另外,线性映射除了可以定义加法和标量乘法,还可以定义复合线性映射(composition of linear maps) :给定 U,V,WU,V,W 是三个向量空间,假设 S∈L(U,V)S∈L(U,V), T∈L(V,W)T∈L(V,W), 那么定义线性映射的合成T∘S∈L(U,W)T∘S∈L(U,W):

(T∘S)(u)=T(S(u)),u∈U(T∘S)(u)=T(S(u)),u∈U

T∘ST∘S 也叫做 TT 和 SS 的乘积(product),一般记作 TSTS。它的性质如下:

  • 交换律(associativity): (T1T2)T3=T1(T2T3)(T1T2)T3=T1(T2T3), T1∈L(V1,V0)T1∈L(V1,V0), T2∈L(V2,V1)T2∈L(V2,V1), T3∈L(V3,V2)T3∈L(V3,V2).
  • 单元乘积(identity): TI=IT=TTI=IT=T, T∈L(V,W)T∈L(V,W)。这里在 TI 中的 I 是在 L(V,V)中的单位映射,而IT 中的 I 是在 L(W,W)中的单位映射, 这点需要区别。
  • 分配律(distributivity):(T1+T2)S=T1S+T2S, T(S1+S2)=TS1+TS2,这里 S,S1,S2∈L(U,V),T,T1,T2∈L(V,W)

需要注意的是线性映射的乘积一般没有交换律(commutivity)。例如,假设 T∈L(R[z],R[z]),定义微分映射函数 Tp(z)=p′(z) ; 另外设S∈L(R[z],R[z]) 定义 Sp(z)=z2p(z), 那么

(ST)p(z)=z2p′(z);(TS)p(z)=z2p′(z)+2zp(z)

所以,线性映射 T 是通过一个矩阵完成了映射或转换的操作运算。所以,不严格的说,线性映射的函数 T 就可以看成矩阵。上面对线性映射 T 的操作(加法,标量乘法,线性映射合成)对应矩阵的加法,标量乘法和矩阵之间的乘法(product).

7、零空间(null space)或核(kernel)

对于线性映射T:V→WT:V→W, 那么 TT 的零空间(null space 或称为核 kernel) 的定义是在向量空间 VV 中使得 Tv=0Tv=0 的所有向量 vv所组成的空间,即

null(T)={v∈V|Tv=0}null(T)={v∈V|Tv=0}

例1,假设 T∈L(R[z],R[z])T∈L(R[z],R[z]) 是微分映射函数 Tp(z)=p′(z)Tp(z)=p′(z), 那么

null(T)={p∈R[z]|p(z)=const}null(T)={p∈R[z]|p(z)=const}

例2,线性映射T(x,y)=(x−2y,3x+y)T(x,y)=(x−2y,3x+y),为了找到null space,那么需要 T(x,y)=(0,0)T(x,y)=(0,0),即求解线性方程组

x−2y=03x+y=0}x−2y=03x+y=0}

上面方程组的解为 (x,y)=(0,0)(x,y)=(0,0), 所以 null(T)={(0,0)}null(T)={(0,0)}

比如,假设一个矩阵AA,那么它的零空间就是所有使得下式成立的所有向量xx:

Ax=0Ax=0

8、值域 (range)

线性映射T:V→WT:V→W的值域 (range) 的定义如下:

range(T)={w∈W|Tv=w,∃v∈V}range(T)={w∈W|Tv=w,∃v∈V}

可以看出,线性映射T:V→WT:V→W的值域是向量空间 WW 的子空间。

例1: 微分映射 T:R[z]→R[z]T:R[z]→R[z] 的值域 range(T)=R[z]range(T)=R[z],因为对于任何一个多项式 q∈R[z]q∈R[z],都有一个对应的 p∈R[z]p∈R[z] 使得 p′=qp′=q。

例2:线性映射 T(x,y)=(x−2y,3x+y)T(x,y)=(x−2y,3x+y) 的值域是 R2R2。 因为对于任意 (z1,z2)∈R2(z1,z2)∈R2, 当 (x,y)=17(z1+2z2,−3z1+z2)(x,y)=17(z1+2z2,−3z1+z2),那么 T(x,y)=(z1,z2)T(x,y)=(z1,z2)。

9、维数定理

定理2:给定 VV 是有限维数的向量空间,T:V→WT:V→W 是线性映射,那么 range(T)range(T) 是向量空间 WW 的有限维子空间,并且

dim(V)=dim(null(T))+dim(range(T))dim(V)=dim(null(T))+dim(range(T))

这个定理将核(kernel)的维数与值域的维数联系了起来。

10、线性映射的矩阵

前面我们提到,线性映射可以看成矩阵。那么我们应该怎样对每个线性映射 T∈L(V,W)T∈L(V,W)(其中 V,WV,W 是有限维数的向量空间),进行矩阵的表示或编码呢?或者反过来,每一个矩阵是怎么定义了一个线性映射呢?

给定有限维向量空间 VV 和 WW,T:V→WT:V→W 是一个线性映射。假设 v1,...,vnv1,...,vn 和 w1,...,wmw1,...,wm 分别是有限维向量空间VV和 WW 的一个基(basis),根据定理1,TT 是可以通过给定向量 Tv1,...,Tvn∈WTv1,...,Tvn∈W 来唯一确定的。由于 w1,...,wmw1,...,wm 是 WW 的一个基,那么存在唯一的标量(或实数) aij∈Raij∈R, 使得

Tvj=a1jw1+...+amjwm,1≤j≤nTvj=a1jw1+...+amjwm,1≤j≤n

于是,我们可以组装这些标量成为了一个 m×nm×n 的矩阵:

M(T)=⎡⎣⎢⎢a11⋮am1⋯⋯a1n⋮amn⎤⎦⎥⎥M(T)=[a11⋯a1n⋮⋮am1⋯amn]

通常,上面的M(T)M(T) 可以记作 A∈Rm×nA∈Rm×n。需要说明的是,M(T)M(T)不仅取决于线性映射 TT, 同时也取决于向量空间 VV 的基v1,...,vnv1,...,vn 的选择和 WW 的基w1,...,wmw1,...,wm的选择。 M(T)M(T) 的第 jj 列包含了依据据基w1,...,wmw1,...,wm进行扩展时第 jj 个基向量 vjvj 的各元素对应的系数(coefficients),见下面的例子说明。

例1:假设线性映射T:R2→R2T:R2→R2 的定义是 T(x,y)=(ax+by,cx+dy)T(x,y)=(ax+by,cx+dy),a,b,c,d∈Ra,b,c,d∈R, 那么对于 二维空间 R2R2 的标准正交基为 ((1,0),(0,1))((1,0),(0,1)),相应的矩阵为:

M(T)=[acbd]M(T)=[abcd]

因为 T(1,0)=(a,c)T(1,0)=(a,c)得到了矩阵第一例,T(0,1)=(b,d)T(0,1)=(b,d)得到了矩阵第二列。

例2:假设线性映射T:R2→R3T:R2→R3 的定义是 T(x,y)=(y,x+2y,x+y)T(x,y)=(y,x+2y,x+y),那么关于标准正交基,我们有 T(1,0)=(0,1,1)T(1,0)=(0,1,1),T(0,1)=(1,2,1)T(0,1)=(1,2,1),于是

M(T)=⎡⎣⎢011121⎤⎦⎥M(T)=[011211]

但是,如果使用 ((1,2),(0,1))((1,2),(0,1)) 作为R2R2的基,((1,0,0),(0,1,0),(0,0,1))((1,0,0),(0,1,0),(0,0,1))作为R3R3的基,那么 T(1,2)=(2,5,3)T(1,2)=(2,5,3),T(0,1)=(1,2,1)T(0,1)=(1,2,1),于是

M(T)=⎡⎣⎢253121⎤⎦⎥M(T)=[215231]

例3:假设线性映射S:R2→R2S:R2→R2 的定义是 S(x,y)=(y,x)S(x,y)=(y,x),如果使用((1,2),(0,1))((1,2),(0,1))作为 R2R2的基,那么S(1,2)=(2,1)=2(1,2)−3(0,1)S(1,2)=(2,1)=2(1,2)−3(0,1), S(0,1)=(1,0)=1(1,2)−2(0,1)S(0,1)=(1,0)=1(1,2)−2(0,1), 所以

M(S)=[2−31−2]M(S)=[21−3−2]

11、小结

本文主要描述了向量的基本概念,向量空间,线性组合、线性无关、线性相关、线性空间的基以及线性映射。

  • 线性映射定义了一个函数。根据这个函数,向量空间可以被线性映射或转换到里一个向量空间。
  • 为什么要了解线性映射?因为线性映射的函数可以看成是通过矩阵完成了映射操作。所以从这个角度,如何定义线性映射是向量空间进行转换也就是如果定义相应的矩阵。线性映射从一个角度解释了引入矩阵的物理意义,另一个可以引出矩阵概念的是线性方程组。

下一节介绍矩阵相关的基本概念  线性代数

机器学习和深度学习之数学基础-线性代数 第二节 矩阵的概念及运算

原创yong_bai 发布于2018-04-19 11:35:52 阅读数 265  收藏

展开

本文为原创文章,欢迎转载,但请务必注明出处。

上文介绍了线性映射,而与线性映射直接相关的就是矩阵,它决定了线性映射的结果,这里介绍矩阵的一些基本概念和运算。包括矩阵的转置、逆、特征值与特征向量、投影、正交矩阵、对称矩阵、正定矩阵、内积和外积、SVD、二次型等基本概念。本文主要参考Garrett Thomas(2018),Marc Peter Deisenroth(2018),Strang(2003),José Miguel Figueroa-O’Farrill, Isaiah Lankham(UCD, MAT67,2012)等教授的相关讲座和教材。

1、 矩阵的转置

矩阵转置的定义很简单,矩阵的转置就是将矩阵的行变为列,即 A∈Rm×nA∈Rm×n, 那么转置 A⊤∈Rn×mA⊤∈Rn×m,且(A⊤)ij=Aji(A⊤)ij=Aji。

转置的性质:

  • (A⊤)⊤=A(A⊤)⊤=A
  • (A+B)⊤=A⊤+B⊤(A+B)⊤=A⊤+B⊤
  • (αA)⊤=αA⊤(αA)⊤=αA⊤
  • (AB)⊤=B⊤A⊤(AB)⊤=B⊤A⊤

若A⊤=AA⊤=A, 那么 AA 称为对称矩阵(symmetric)。任何一个矩阵都可以是一个对称矩阵和反对称矩阵(antisymmetric)的和:

A=12(A+A⊤)+12(A−A⊤)A=12(A+A⊤)+12(A−A⊤)

其中,12(A+A⊤)12(A+A⊤)是对称矩阵,12(A−A⊤)12(A−A⊤)是反对称矩阵。

2、可逆矩阵(invertible matrix)

一个方阵 A∈Rn×nA∈Rn×n 可逆当且仅当存在一个方阵 B∈Rn×nB∈Rn×n 使得

AB=IAB=I

其中 I∈Rn×nI∈Rn×n 为单位矩阵。那么方阵 BB 为方阵 AA的逆矩阵,记作 A−1A−1。

如果矩阵 A∈Rn×nA∈Rn×n,那么下面的说法等价:

  • AA可逆
  • AA不是奇异矩阵(non-singular)
  • 行列式 det(A)≠0det(A)≠0
  • AA 满秩,即 rank(A=n)rank(A=n)
  • Ax=0Ax=0只有唯一解:x=0x=0
  • AA 的零空间只有零向量:{0}{0},即null(A)=0null(A)=0
  • AA的列向量线性无关
  • AA的列向量的张成是整个RnRn空间。
  • AA的列向量构成RnRn的一个基向量集
  • 存在方阵B∈Rn×nB∈Rn×n 使得 AB=I=BAAB=I=BA.
  • 转置 A⊤A⊤是可逆矩阵,于是,矩阵AA的行向量是线性无关的,张成是RnRn空间,同时构成了RnRn的一个基向量集。
  • AA不存在值为0的特征值。
  • AA可以表示为有限个初等矩阵的乘积。
  • AA 有左逆矩阵(即 BA=IBA=I)和 右逆矩阵(即 AC=IAC=I),且 B=C=A−1B=C=A−1。

可逆矩阵 AA 的一些重要性质:

  • (A−1)−1=A(A−1)−1=A;
  • (αA)−1=α−1A−1(αA)−1=α−1A−1,这里实数标量α≠0α≠0
  • (A⊤)−1=(A−1)⊤(A⊤)−1=(A−1)⊤
  • (AB)−1=B−1A−1(AB)−1=B−1A−1,其中B∈Rn×nB∈Rn×n 是可逆矩阵。 更一般情况,如果方阵 A1,...AkA1,...Ak可逆,那么(A1...Ak)−1=A−1k...A−11(A1...Ak)−1=Ak−1...A1−1.
  • det(A−1)=(det(A))−1det(A−1)=(det(A))−1

如果方阵AA 的逆矩阵就是它自身,即A=A−1A=A−1, 那么有 A2=IA2=I,这是方阵AA就叫对合矩阵(involutory matrix)。

3、矩阵的列空间(columnspace)和行空间(rowspace), 矩阵的秩(rank)

矩阵A∈Rm×nA∈Rm×n的列空间(columnspace)是指其列向量(看成是RmRm中的向量)的张成; 类似的,行空间(rowspace)是指其行向量(看成是RnRn中的向量)的张成。

矩阵AA的列空间等于由矩阵AA导致的线性映射 Rn→RmRn→Rm 的值域, 即range(A)range(A)。

矩阵A∈Rm×nA∈Rm×n的列秩是矩阵AA的线性无关的列向量的最大数量。类似地,行秩是矩阵AA的线性无关的行向量的最大数量。 矩阵的列秩和行秩总是相等的,因此它们可以简单地称作矩阵AA的秩,通常表示为r(A)r(A)或rank(A)rank(A)。

4、范数(norm)和内积(inner product)

4.1、范数(norm)

范数(norm)是对欧氏空间距离的一般描述。在实数向量空间VV的一个范数是一个函数 ∥⋅∥:V→R‖⋅‖:V→R,并且满足:

  • ∥x∥≥0‖x‖≥0, 当且仅当 x=0x=0 等号成立;
  • ∥αx∥=|α|∥x∥‖αx‖=|α|‖x‖
  • ∥x+y∥≤∥x∥+∥y∥‖x+y‖≤‖x‖+‖y‖ (三角不等式)

注意在VV上的任何范数都会引出一个在VV上的距离度量:d(x,y)=∥x−y∥d(x,y)=‖x−y‖

常用的范数包括:

∥x∥1=∑i=1n|xi|‖x‖1=∑i=1n|xi|

∥x∥2=∑i=1nx2i−−−−−√‖x‖2=∑i=1nxi2

∥x∥p=(∑i=1n|xi|p)1p,(p≥1)‖x‖p=(∑i=1n|xi|p)1p,(p≥1)

∥x∥∞=max1≤i≤n|xi|‖x‖∞=max1≤i≤n|xi|

图一,不同范数在二维平面的示例

4.2、内积(inner product)

在实数向量空间VV的一个内积是一个函数 〈⋅〉:V×V→R〈⋅〉:V×V→R,并且满足:

  • 〈x,x〉≥0〈x,x〉≥0,当且仅当 x=0x=0 等号成立
  • 〈x+y,z〉=〈x,z〉+〈y,z〉〈x+y,z〉=〈x,z〉+〈y,z〉,〈αx,y〉=α〈x,y〉〈αx,y〉=α〈x,y〉
  • 〈x,y〉=〈y,x〉〈x,y〉=〈y,x〉

另外,对于向量的2-范数,有

∥x∥=〈x,x〉−−−−−√‖x‖=〈x,x〉

当〈x,y〉=0〈x,y〉=0时, 那么在同一向量空间中的非零向量xx 和 yy 正交 (orthogonal, 垂直,记为 x⊥yx⊥y)。 如果xx 和 yy还是单位长度,即∥x∥=∥y∥=1‖x‖=‖y‖=1,那么向量xx 和 yy 称为是标准正交的(orthonormal)。

向量正交的几何解释,如下图二,假设向量xx 和 yy的夹角是 θθ,那么由于:

〈x,y〉=∥x∥∥y∥cos(θ)〈x,y〉=‖x‖‖y‖cos(θ)

当夹角 θ=π/2θ=π/2 (即垂直)时,cos(θ)=0cos(θ)=0,所以有〈x,y〉=0〈x,y〉=0。 

图二,空间中两个向量之间的夹角

通常内积被记为:

〈x,y〉=∑i=1nxiyi=x⊤y〈x,y〉=∑i=1nxiyi=x⊤y

在空间RnRn上, 内积被称为点积(dot product), 记为 x⋅yx⋅y。

(毕氏定理,Pythagorean Theorem)如果x⊥yx⊥y, 那么∥x+y∥2=∥x∥2+∥y∥2‖x+y‖2=‖x‖2+‖y‖2。

(柯西-施瓦茨不等式,Cauchy-Schwarz inequality): |〈x,y〉|≤∥x∥∥y∥|〈x,y〉|≤‖x‖‖y‖

5、投影(projection)

5.1、点到直线的投影

考虑下图中的两个向量 u,v∈R2u,v∈R2,如何将向量uu 投影到向量 vv 上呢? 

图三,一个向量投影到另一个向量

假设uu 投影到向量 vv 上的最近的点是 pp,即pp点(将向量看成一个空间的一点)是一条通过uu点的直线并与向量 vv 所在直线垂直且相交的点。这时,如果用向量pp来近似向量uu,那么误差为 e=u−pe=u−p。下面来求uu 在向量vv上的投影pp。因为pp 与 向量vv在同一直线上,那么设 p=αvp=αv,由于vv 与 ee 垂直,那么有 v⊤e=0v⊤e=0, 即

v⊤(u−αv)=0αv⊤v=v⊤uα=v⊤uv⊤vv⊤(u−αv)=0αv⊤v=v⊤uα=v⊤uv⊤v

于是,

p=αv=v⊤uv⊤vvp=αv=v⊤uv⊤vv

5.2、投影矩阵(projection matrix)

下面介绍用投影矩阵描述上述的投影,即p=Pup=Pu。由于:

p=vv⊤uv⊤v=vv⊤v⊤vu=Pup=vv⊤uv⊤v=vv⊤v⊤vu=Pu

所以, 投影矩阵

P=vv⊤v⊤vP=vv⊤v⊤v

投影矩阵具有如下一些性质:

  • 投影矩阵PP 的列空间是有向量 vv 张成的,因为对于任何一个向量 uu, PuPu都是位于由向量 vv所决定的直线上。
  • 秩 rank(P)=1rank(P)=1 ;
  • 对称矩阵: P⊤=PP⊤=P;
  • P2=PP2=P。

PP 叫做正交(与向量所在直线正交)投影矩阵

5.3、点到平面的投影

在 R3R3中,如何将向量uu 投影到平面上距离uu最近的pp点呢?

首先假设 a1a1 和 a2a2 是平面上的两个基向量,那么该平面就是矩阵 A=[a1  a2]A=[a1  a2] 的列空间(即两个基向量张成所构成的空间)。

基于上面的假设,那么平面里的任意一点(或任意一个向量)pp 都可以由平面的两个基向量线性表示,即p=α1a1+α2a2=Aαp=α1a1+α2a2=Aα。 我们需要求得向量α=(α1,α2)α=(α1,α2),也就是说我们要在平面上找一个pp,使得uu 到 pp的距离最近(即垂直)。如图四所示。 

图四,向量映射到平面。a1a1 和 a2a2 是平面里的两个基向量,那么平面里的任意向量都可以由这两个向量的线性组合得到,这就是向量p=α1a1+α2a2=Aαp=α1a1+α2a2=Aα 的原因

类似“点到直线投影”的方法,点uu到平面上一点pp的误差向量为 e=u−p=u−Aαe=u−p=u−Aα。也就是说,要使得误差ee最小,只需要uu垂直投影到平面上,而pp 就是ee与平面相交的点。

由于ee与平面垂直,那么ee就与平面上所有的向量或直线垂直,最简单的就是ee与平面的两个基向量a1a1 和 a2a2 都垂直,所以有:

a⊤1(u−Aα)=0a⊤2(u−Aα)=0a1⊤(u−Aα)=0a2⊤(u−Aα)=0

用矩阵表示就是:A⊤(u−Aα)=0A⊤(u−Aα)=0。

还有就是,e=u−Aαe=u−Aα 是在 A⊤A⊤ 的零空间里,所以 ee 也是在 AA 的左零空间里(left nullspace)。我们知道所有在AA 的左零空间里的向量都是与AA 的列空间垂直的。这也从另一个方面验证了上述计算。

由于A⊤(u−Aα)=0A⊤(u−Aα)=0, 所以

A⊤Aα=A⊤uA⊤Aα=A⊤u

如果是映射到直线,那么 A⊤AA⊤A 就是一个标量数值,但是如果是映射到平面,A⊤AA⊤A 变成了一个方阵(square matrix)。所以这里不再是除以 v⊤vv⊤v,而是乘以 A⊤AA⊤A 的逆 (A⊤A)−1(A⊤A)−1。

所以(对于 nn 维空间也是一样)有

α=(A⊤A)−1A⊤up=Aα=A(A⊤A)−1A⊤uP=A(A⊤A)−1A⊤α=(A⊤A)−1A⊤up=Aα=A(A⊤A)−1A⊤uP=A(A⊤A)−1A⊤

这里,仍然有 P⊤=P,P2=PP⊤=P,P2=P。

PP 叫做正交(这里是与平面正交)投影矩阵。如果AA中的列向量之间两两相互正交,且向量长度为1(标准正交向量),那么A⊤A=IA⊤A=I,所以有 P=A(A⊤A)−1A⊤=AA⊤P=A(A⊤A)−1A⊤=AA⊤。(注意,这个结论的矩阵AA必须是标准正交的列向量组成)。

5.4、从投影的视角看线性回归

线性回归问题:给定mm个数据对{(xi,yi)}mi=1{(xi,yi)}i=1m,其中xi∈Rn,yi∈Rxi∈Rn,yi∈R, 目标是找到一点直线 y^=θ⊤xy^=θ⊤x 能“最好的”拟合这些点使得损失最小。为了找到这样的直线,问题变成了根据给定的mm个数据点求向量参数 θθ。

现在以矩阵来表示:X∈Rm×nX∈Rm×n,y∈Rmy∈Rm。 假设这些数据是由真实的 y=Xθ+ϵy=Xθ+ϵ, 其中 ϵϵ是高斯白噪声。我们的目标就是求y^=Xθy^=Xθ,使得真实的yy 与模型预测的y^y^误差最小。

假设平面是两个向量 x1x1和x2x2的张成(即x1x1和x2x2是平面的两个基向量),yy是平面外的一个点,我们记作 X=[x1  x2]X=[x1  x2]。 由于我们定义了y^=Xθy^=Xθ, 那就说明 y^y^ 是平面两个基向量x1x1和x2x2 的线性组合,也就是说,y^y^也在平面上。我们求向量参数θθ,使得平面外的yy与平面上的y^y^距离最近,那么就是说y^y^ 是通过向量yy的直线垂直于平面的交点。根据上面4.3的结论,有(如图五所示) 

图五,从投影的视角看线性回归

X⊤(y−Xθ)=0X⊤(y−Xθ)=0

于是,有

θ=(X⊤X)−1X⊤yθ=(X⊤X)−1X⊤y

6、特征值(eigenvalue)和特征向量(eigenvector)

凡是涉及到特征值和特征向量时,矩阵首先必须是方阵, 即 A∈Rn×nA∈Rn×n。

如果方阵AA 作用于一个非零向量 x∈Rnx∈Rn,得到的结果其实只是简单的对向量 xx 进行拉伸或收缩(scaled) λλ 个单位,即经过方阵AA的作用(或叫做线性变换)后向量 xx 的方向不变只是长度变化了(这个特性也叫线性不变性),那么这个特殊的向量 xx 就是方阵 AA 的一个特征向量,λλ 则是该特征向量对应的特征值,即

Ax=λxAx=λx

特征向量不包括零向量(00)。

假设方阵AA 的一个特征向量为 xx,对应的特征值是 λλ ,下面列出一些重要的结论: 
- 对于任意的实数 γ∈Rγ∈R,那么方阵 A+γIA+γI 的特征向量仍然是xx, 对应的特征值变为 λ+γλ+γ; 
- 如果方阵AA可逆,那么方阵A−1A−1的特征向量仍然是xx对应的特征值为 λ−1λ−1; 
- 对于任意的整数 k∈Zk∈Z,有Akx=λkxAkx=λkx,(这里 定义A0=IA0=I)。

后面会详细介绍特征值和特征向量的应用。

7、矩阵的迹(trace)

在谈到矩阵的迹(trace)的时候一般也是针对的方阵。一个方阵的迹是该方阵上的对角线上元素的和,即

tr(A)=∑i=1nAiitr(A)=∑i=1nAii

迹的一些重要的性质:

  • tr(A+B)=tr(A)+tr(B)tr(A+B)=tr(A)+tr(B);
  • tr(αA)=αtr(A)tr(αA)=αtr(A),这里α∈Rα∈R;
  • tr(A⊤)=tr(A)tr(A⊤)=tr(A)
  • tr(ABCD)=tr(BCDA)=tr(CDBA)=tr(DABC)tr(ABCD)=tr(BCDA)=tr(CDBA)=tr(DABC)。

另外,方阵的迹等于方阵的所有特征值的和,即

tr(A)=∑iλi(A)tr(A)=∑iλi(A)

8、行列式(determinant)

行列式(方阵才有行列式)的定义在这里就不在介绍,这里列出一些重要性质:

  • det(I)=1det(I)=1
  • det(A⊤)=det(A)det(A⊤)=det(A)
  • det(AB)=det(A)det(B)det(AB)=det(A)det(B)
  • det(A−1)=det(A)−1det(A−1)=det(A)−1
  • det(αA)=αndet(A)det(αA)=αndet(A)

另外,方阵的行列式等于该方阵的所有特征值的乘积,即

det(A)=∏iλi(A)det(A)=∏iλi(A)

从几何意义的角度,在二维平面上,行列式的绝对值等于由矩阵的两个向量(列向量或行向量都可以)为临边所围成的平行四边形的面积;如果是3维空间,那么行列式的绝对值等于由矩阵的三个向量(列向量或行向量都可以)为临边所围成的平行四边体的体积,以此类推。

图六,二维平面中行列式的几何意义

9、正交矩阵(Orthogonal matrices)

如果方阵 Q∈Rn×nQ∈Rn×n的列两两标准正交(pairwise orthonormal),那么QQ称为正交矩阵, 即

Q⊤Q=QQ⊤=IQ⊤Q=QQ⊤=I

也就是说,正交矩阵的转置等于它的逆,即Q⊤=Q−1Q⊤=Q−1。正交矩阵作用于任何向量(即与向量相乘,矩阵和向量相乘也可以看成根据矩阵对向量进行线性变换)保留了向量的内积结果(即内积结果不受正交矩阵相乘的影响),即

(Qx)⊤(Qy)=x⊤Q⊤Qy=x⊤Iy=x⊤y(Qx)⊤(Qy)=x⊤Q⊤Qy=x⊤Iy=x⊤y

一个直接的结果就是正交矩阵保留了2-范数的结果:

∥Qx∥2=(Qx)⊤(Qx)−−−−−−−−−−√=x⊤x−−−−√=∥x∥2‖Qx‖2=(Qx)⊤(Qx)=x⊤x=‖x‖2

上面的结果因此说明了正交矩阵与向量相乘可以看成是一个保留了向量长度的线性变换,但是方向有可能针对向量的原点进行了旋转或翻转。

10、对称矩阵(symmetric matrices)

如果方阵 A∈Rn×nA∈Rn×n 的转置就是它本身,那么方阵AA 就称为对称矩阵,即A=A⊤A=A⊤。 
以下介绍一个重要的定理:

矩阵质谱定理(Spectral Theorem):如果方阵 A∈Rn×nA∈Rn×n 是对称矩阵,那么在 RnRn 空间中存在由方阵 AA的特征向量组成的标准正交基(orthonormal basis)。

这个定理的直接应用就是对对称矩阵的因子化(factorization),也就是常说的矩阵的特征分解(eigen decomposition)谱分解(spectral decomposition)。假设对称方阵 AA 的特征向量(也就是方阵 AA对应空间RnRn 的标准正交基)为q1,...,qnq1,...,qn,对应的特征值为 λ1,...,λnλ1,...,λn。假设正交矩阵 QQ 的列就是q1,...,qnq1,...,qn,对角矩阵 Λ=diag(λ1,...,λn)Λ=diag(λ1,...,λn)。根据这些假设,所以对所有的 ii 有 Aqi=λiqiAqi=λiqi,于是用矩阵表示就是

AQ=QΛAQ=QΛ

上式右乘 Q⊤Q⊤,就可以可以得到矩阵分解:

A=QΛQ⊤A=QΛQ⊤

11、瑞利熵(Rayleigh quotients)

如果方阵 A∈Rn×nA∈Rn×n是对称矩阵,那么表达式x⊤Axx⊤Ax 称为二次型 (quadratic form)。

瑞利熵(Rayleigh quotients,见下面的等式)将一个对称矩阵的二次型与该对称矩阵的特征值联系了起来:

RA(x)=x⊤Axx⊤xRA(x)=x⊤Axx⊤x

一些瑞利熵的重要性质: 
标量不变性:对于任意非零向量 x≠0x≠0 和任意非零实数标量 α≠0α≠0, 有RA(x)=RA(αx)RA(x)=RA(αx) 
- 如果 xx是方阵 AA 的特征向量,对应的特征值是 λλ, 有 RA(x)=λRA(x)=λ。

下面两个性质对求解某些问题也很重要,这些性质说明对称矩阵AA的瑞利熵的计算结果是介于AA的最小和最大特征值之间的:

  • 对于任意向量xx,如果其长度为1(即∥x∥2=1‖x‖2=1),那么有

    λmin(A)≤x⊤Ax≤λmax(A)λmin(A)≤x⊤Ax≤λmax(A)

    当其仅当向量xx为其对应的特征向量时,等号成立。

  • (瑞丽熵的最小最大定理,min-max theorem):对于任意的非0向量xx,有

    λmin(A)≤RA(x)≤λmax(A)λmin(A)≤RA(x)≤λmax(A)

    当其仅当向量xx为其对应的特征向量时,等号成立。

    后面我们会介绍瑞丽熵的应用及其与拉格朗日算子求极值的例子。

12、正定(或半正定)矩阵 (Positive (semi-)definite matrices)

对于对称矩阵AA,如果对于所有的向量 x∈Rnx∈Rn,都有 x⊤Ax≥0x⊤Ax≥0, 记作 A⪰0A⪰0,那么对称矩阵AA称为半正定矩阵。如果对于所有的非零向量x∈Rnx∈Rn,都有 x⊤Ax>0x⊤Ax>0, 记作 A≻0A≻0,那么对称矩阵AA称为正定矩阵

下面的一些性质与其特征值有关:

  • 一个对称矩阵是半正定矩阵当且仅当它的所有特征值都是非负的;一个对称矩阵是正定矩阵当且仅当它的所有特征值都是正的。
  • 假设任意矩阵 A∈Rm×nA∈Rm×n,那么A⊤AA⊤A 是半正定矩阵。 如果AA的零空间只有 00 向量, 即null(A)={0}null(A)={0}, 那么AA是正定矩阵(null(A)={0}null(A)={0} 说明只要向量 x∈Rnx∈Rn 是非零向量,那么就有 Ax≠0Ax≠0)。
  • 如果 AA是半正定矩阵,对于任意 ϵ>0ϵ>0,那么 A+ϵIA+ϵI 是正定矩阵。

12.1、正定二次型的几何表示(The geometry of positive definite quadratic forms)

一个理解二次型的有用方法就是通过观察他们的几何水平集(the geometry of their level set)。一个函数的水平集或等高线(isocontour)是一组输入的集合,对于这些输入,函数都产生一个相同的值或结果,如函数 ff 的 cc-等高线是 {x∈dom  f:f(x)=c}{x∈dom  f:f(x)=c}。

考虑一个特殊情况 f(x)=x⊤Axf(x)=x⊤Ax,其中 AA 是正定矩阵。由于AA 是正定矩阵,那么它有唯一的矩阵平方根 A12=QΛ12QA12=QΛ12Q,其中 QΛQQΛQ 是AA的特征分解,Λ12=diag(λ1−−√,...,λn−−√)Λ12=diag(λ1,...,λn)。很容易看出A12A12是正定矩阵(因为它的所有特征值都是大于0的),而且有A12A12=AA12A12=A。 给定一个实数 c>0c>0, 那么函数ff 的 cc-等高线就是一组 x∈Rnx∈Rn,且满足:

c=x⊤Ax=x⊤A12A12x=∥∥A12x∥∥22c=x⊤Ax=x⊤A12A12x=‖A12x‖22

上式中,A12A12 是对称矩阵。设 z=A12xz=A12x,那么有∥z∥2=c√‖z‖2=c。 这就是说向量的值zz是位于半径为 c√c 的圆上。进一步,我们加入参数使 z=c√z^z=cz^,其中 ∥z∥2=1‖z‖2=1,那么由于A−12=QΛ−12Q⊤A−12=QΛ−12Q⊤,所以有,

x=A−12z=QΛ−12Q⊤c√z^=c√QΛ−12z~x=A−12z=QΛ−12Q⊤cz^=cQΛ−12z~

其中 z~=Q⊤z^z~=Q⊤z^, 因为 QQ 是正交矩阵,所以 z~z~ 也是满足∥z~∥2=1‖z~‖2=1。使用这种参数化的方式可以得到结果集{x∈Rn:f(x)=c}{x∈Rn:f(x)=c} 是在可逆的线性映射 x=c√QΛ−12z~x=cQΛ−12z~ 的单位圆影像(image of the unit sphere) {z~∈Rn:∥z~∥2}{z~∈Rn:‖z~‖2} 。( 矩阵的影像(image of matrix)是指该矩阵的张成(Think of it (image of the matrix) as what vectors you can get from applying the linear transformation or multiplying the matrix by a vector, from wiki)) 。

通过这些运算可以看出,经过一系列的线性变换后可以很清楚的理解函数 ff 的 cc-等高线是如何得到的:首先开始于一个单位圆(或单位球面),然后对每个坐标轴 ii 拉伸或压缩 对应的λ12iλi12 个单位,由此得到一个轴对齐的椭球(an axis-aligned ellipsoid)。椭球的轴长度与正定矩阵 AA 的特征值的平方根倒数成正比。所以,特征值越大,对应的椭球的轴的长度就越小,反之亦然。

然后这个轴对齐的椭球通过矩阵 QQ 进行了一个刚性变换(rigid transform, 即保留长度和角度,例如旋转或反射(rotation/reflection)等)这个变换的结果就是椭圆的轴不在沿着原来的坐标轴方向,而是沿着相应的特征向量方向。为了说明这点,假设有一个单位向量 ei∈Rnei∈Rn,有 [ei]j=δij[ei]j=δij。在变换之前的空间,这个向量指向原坐标轴方向,其长度与λ12iλi12成正比。但是,进过刚性变化 QQ后,该向量指向的方向变成了相应的特征向量 qiqi 的方向,因为:

Qei=∑j=1n[ei]jqj=qiQei=∑j=1n[ei]jqj=qi

这里我们使用了matrix-vector product identity。

总结:f(x)=x⊤Axf(x)=x⊤Ax 的等高线是椭球,椭球的轴是指向了 AA 的特征向量方向,这些轴的半径是与相应的特征值的平方根倒数成正比的。

13、奇异值分解(Singular value decomposition)

任意矩阵 A∈Rm×nA∈Rm×n 都有一个SVD (即使该矩阵不是方阵)。

SVD的矩阵分解如下:

A=UΣV⊤A=UΣV⊤

其中U∈Rm×mU∈Rm×m 和 V∈Rn×nV∈Rn×n 是正交矩阵(orthogonal matrix),Σ∈Rm×nΣ∈Rm×n是对角矩阵(diagonal matrix),其对角线上的元素值是矩阵AA 的奇异值 (singular value,记作 σiσi)。

假设矩阵AA 的前 r=rank(A)r=rank(A) 个奇异值是非零的,为了方便,我们以非递增排序,即

σ1≥σ2≥...≥σr>σr+1=...=σmin(m,n)=0σ1≥σ2≥...≥σr>σr+1=...=σmin(m,n)=0

另外一中SVD的写法是(即 sum-of-outer-product identity):

A=∑i=1rσiuiv⊤iA=∑i=1rσiuivi⊤

其中 uiui 和 vivi 分别是 UU 和 VV 的第 ii 个列向量。

可以看出,SVD因子提供了 A⊤AA⊤A 和 AA⊤AA⊤ 的特征分解:

A⊤A=(UΣV⊤)⊤UΣV⊤=VΣ⊤U⊤UΣV⊤=VΣ⊤ΣV⊤A⊤A=(UΣV⊤)⊤UΣV⊤=VΣ⊤U⊤UΣV⊤=VΣ⊤ΣV⊤

AA⊤=UΣV⊤(UΣV⊤)⊤=UΣ⊤V⊤VΣU⊤=UΣΣ⊤U⊤AA⊤=UΣV⊤(UΣV⊤)⊤=UΣ⊤V⊤VΣU⊤=UΣΣ⊤U⊤

于是,VV的列(即AA右奇异(right-singular)向量)就是A⊤AA⊤A的特征向量,而UU的列(即AA左奇异(left-singular)向量)就是AA⊤AA⊤的特征向量

矩阵 Σ⊤ΣΣ⊤Σ 与 ΣΣ⊤ΣΣ⊤ 的大小不是必须要相等。 但是他们都是对角阵,其对角线上的元素都是奇异值的平方,即 σ2iσi2(可能还有一些0值)。所以矩阵 AA 的奇异值是矩阵 A⊤AA⊤A(或AA⊤AA⊤)的特征值的平方根。

14、伪逆(Pseudoinverse)矩阵

对于矩阵 A∈Rm×nA∈Rm×n,如果 m≠nm≠n, 那么 AA 是不可逆的。但是,一种叫摩尔-彭若斯广义逆(Moore-Penrose pseudoinverse)的方法可以用来求一般矩阵的伪逆,记作 A†∈Rn×mA†∈Rn×m,它具有以下性质:

  • AA†A=AAA†A=A;
  • A†AA†=A†A†AA†=A†
  • AA†AA†是对称矩阵
  • A†AA†A也是对称矩阵

如果AA可逆,那么 A†=A−1A†=A−1。更一般情况,我们可以通过计算矩阵的SVD来得到它的伪逆:如果 A=UΣV⊤A=UΣV⊤,那么

A†=UΣ†V⊤A†=UΣ†V⊤

其中 Σ†Σ†可以通过如下方式得到:对 ΣΣ 进行转置,然后将对角线的非零元素求倒数。

15、一些有用的Matrix identities

15.1、矩阵和向量(matrix-vector)相乘就是矩阵列向量的线性组合

假设向量x∈Rnx∈Rn和矩阵 A∈Rm×nA∈Rm×n,AA的列向量为a1,...,ana1,...,an,那么有

Ax=∑i=1nxiaiAx=∑i=1nxiai

15.2、外积(outer product) 的和是矩阵和矩阵(matrix-matrix)相乘

一个外积(outer product)表示为 ab⊤ab⊤, 其中a∈Rma∈Rm,b∈Rnb∈Rn,外积的结果生成一个 m×nm×n 的矩阵:

[ab⊤]ij=aibj[ab⊤]ij=aibj

假设向量a1,...,ak∈Rma1,...,ak∈Rm,b1,...,bk∈Rnb1,...,bk∈Rn,那么

∑l=1kalb⊤l=AB⊤∑l=1kalbl⊤=AB⊤

其中 A=[a1,...,ak]A=[a1,...,ak], B=[b1,...,bk]B=[b1,...,bk]

15.3、二次型

假设 A∈Rn×nA∈Rn×n 是对称矩阵,那么 x⊤Axx⊤Ax 称为对称矩阵 AA 的二次型。二次型可以写成如下的求和形式:

x⊤Ax=∑i=1n∑j=1nAijxixjx⊤Ax=∑i=1n∑j=1nAijxixj

这种写法对一般的方阵都适用(不一定必须是对称矩阵),但是对二次型来说,只限定在对称矩阵的范围里进行讨论。

16、小结

上文我们从线性映射引入了矩阵的概念,本文介绍了矩阵的一些概念及运算, 包括矩阵的转置、逆、特征值与特征向量、投影、正交矩阵、对称矩阵、正定矩阵、内积和外积、SVD、二次型等基本概念。需要注意的是,行列式、正交矩阵、对称矩阵都是方阵;而瑞丽熵、正定或半正定矩阵、二次型的讨论都是针对的对称矩阵。

下文中我们将从运动的角度直观介绍向量、线性变换及其与矩阵的关系。

机器学习和深度学习之数学基础-线性代数 第三节 向量及其基本运算的直观理解

原创yong_bai 发布于2018-04-21 21:17:47 阅读数 825  收藏

展开

本文为原创文章,欢迎转载,但请务必注明出处。

线性代数中最基本、最根源的组成部分(building block)就是向量。第一节中从数学定义的角度抽象了向量概念,但是像我这样数学一般的平民需要更直观的解释才能在大脑里留下痕迹。

向量究竟是什么?

  • 从物理学的角度来说,向量是空间里的一个箭头,决定一个向量的因素是它的长度和所指的方向。只要这两个特征不变,我们可以自由地在空间中移动一个向量而保持该向量不变。
  • 从计算机的角度来说,向量是有序的数字列表,比如我们可以用一个包含三个指标(或特征)的来描述一个人:性别(gender),体重(weight),身高(height)。这三个特征被有序的放在一个数字列表里构成了一个三维向量: [gender,weight,height]⊤[gender,weight,height]⊤, 一旦这个向量定义完成,那么这三个特征在向量中的顺序不可改变。
  • 从数学的角度,向量试图综合上面的两个观点,认为只要保证向量的两个运算特性有意义即可,也就是我们在第一节里介绍的”向量相加及标量与向量相乘“。
  • 从运动的角度,向量是在空间中运动的对象

1、从“运动”的角度理解向量相加及标量与向量相乘

向量相加及标量与向量相乘从数字计算的角度来说很简单,但是从“运动”的角度理解这两个运算会变得更加直观,下面以二维平面直角坐标系为例来进行说明,其他高维空间类似。

首先,我们知道一个向量可以唯一对应一个点,如图一A所示,在平面上有一个红色的点(1,2),它可以由向量 aa 表示 (我们可以把向量看成是坐标系中起点在原点的一个有长度及方向的箭头,图中的红点表示终点,也就是箭头所指向的点)。 

图一,从“运动”的角度理解向量相加及标量与向量相乘

平面直角坐标系的两个标准正交基向量是 [1,0]⊤[1,0]⊤(或者叫做位于x-轴的单位向量,有的地方记作 i^i^ ) 和 [0,1]⊤[0,1]⊤ (或者叫做位于y-轴的单位向量,有的地方记作 j^j^ ),分别位于 x-轴和y-轴上并指向他们的正方向。于是,根据第一节说明,aa 可由这两个标准正交基唯一线性表示:

a=1⋅[10]b+2⋅[01]ca=1⋅[10]⏟b+2⋅[01]⏟c

也就是说 a=b+ca=b+c,即向量 aa 是 向量 bb 和 cc 相加的结果, 既然是加法,那么向量 aa 就可以看成是这样得到的:一个人从原点出发,首先沿着 bb 的方向走了 ∥b∥‖b‖ (即向量 bb 的长度) 的距离,然后再沿着 cc 的方向走 ∥c∥‖c‖ 的距离所到达的位置就是 aa 向量所在的位置(终点)。

同样,图一B中所示的是 w=u+vw=u+v 也可以看成是一个人从原点出发,首先沿着 uu 的方向走了 ∥u∥‖u‖ 的距离,然后再沿着 vv 的方向走 ∥v∥‖v‖ 的距离所到达的位置就是 ww 向量所在的位置(终点)。

图一C中表示的标量与向量相乘,当标量 α>1α>1 (0≤α≤10≤α≤1)时,αaαa 的是沿着向量 aa 的相同的方向对 aa 的长度 ∥a∥‖a‖ 拉伸(或收缩) αα倍得到的结果;当标量 α<−1α<−1 (−1≤α≤0−1≤α≤0) 时,αaαa 的是沿着向量 aa 的相反方向对 aa 的长度 ∥a∥‖a‖ 拉伸(或收缩) αα 倍得到的结果。

2、从几何的角度理解张成、向量空间和基向量

根据上面的说明,我们进一步提出如下的问题:对于 w=u+vw=u+v ,如果我们固定向量 uu ,而改变向量 vv 的长度(但不改变它的方向),即新的w′=u+αvw′=u+αv ,那么这个时候的向量 w′w′ 会是什么样子呢?

图二,固定一个向量,改变另一个向量的长度(不改变方向)后的向量相加结果

如图二所示,当固定向量 uu 而只改变向量 vv 的长度而不改变其方向时,新向量 w′w′ 的终点在直线上 l1l1 上(直线 l1l1 过向量 uu 的终点且与向量 vv 平行)。同理,当固定向量 vv 而只改变向量 uu 的长度不改变其方向时,新向量 w′w′ 的终点在直线上 l2l2 上( 直线 l2l2 与向量 uu平行且过过向量 vv 的终点)。

如果向量 uu 和 vv 的方向不变,但是两个向量长度都自由改变,即w′=αu+βvw′=αu+βv ,那么 w′w′ 就可以在平面上的任何位置(当然前提是向量 uu 和 vv 不在同一条直线上,或两个向量不平行,即向量 uu 和 vv 线性无关)。这也就是说向量 uu 和 vv 张成 (span) 了平面空间,这就直观的理解了在第一节介绍的张成概念。而这个平面空间就是这里的向量空间(也就是线性空间)。从这里可以看出为什么在第一节的时候介绍说向量或组成向量空间所必须的两个特性或运算是向量相加及标量与向量相乘。 这个时候,向量 uu 和 vv 就是平面空间的基向量

等式 w′=αu+βvw′=αu+βv 体现了”缩放基向量再相加“的思想。从这里又可以看出,为什么在第一节的时候介绍说向量空间的基不是唯一的,所谓空间的基向量只要满足两个条件:第一,向量之间线性无关(即任意两个向量之间没有处与同一条或者平行);第二,这些线性无关向量可以张成整个向量空间。如果这些基向量之间相互正交(垂直,即内积为0)而且长度为1,那么这些基向量就是标准正交基,比如上面的在直角坐标系里平面空间的标准正交基 [1,0]⊤[1,0]⊤ 和 [0,1]⊤[0,1]⊤ 。由于向量空间的基不是惟一的,那么一旦向量空间确定了一个基,那么这个基对应的坐标系也就确定了。比如一旦平面空间的标准正交基 [1,0]⊤[1,0]⊤ 和 [0,1]⊤[0,1]⊤ 确定,那么这个平面空间就确定了一个直角坐标系。

这样通过几何的角度直观的理解向量后,对于在第一节中介绍的线性代数中的一些概念如线性组合、张成、向量空间(或线性空间)以及基向量就更容易理解。

3、小结

这一节介绍了从运动的角度直观的理解向量的概念,下一节将从运动的角度介绍线性变换及其与矩阵的关系。

References: 
[1] 3Blue1Brown教学视频

机器学习和深度学习之数学基础-线性代数 第一节 向量及线性映射相关推荐

  1. 机器学习与深度学习系列连载: 第一部分 机器学习(五) 生成概率模型(Generative Model)

    生成概率模型(Generative Model) 1.概率分布 我们还是从分类问题说起: 当我们把问题问题看做是一个回归问题, 分类是class 1 的时候结果是1 分类为class 2的时候结果是- ...

  2. 【Dive into Deep Learning / 动手学深度学习】第二章 - 第一节:数据操作

    目录 前言 2.1 数据操作 2.1.1. 入门 torch.arange() shape numel() reshape() ones() randn() 2.1.2. 运算符 +.-.*./.** ...

  3. 机器学习与深度学习系列连载(NTU-Machine Learning, cs229, cs231n, cs224n, cs294):欢迎进入机器学习的世界

    欢迎进入机器学习的世界 本教程是根据台湾大学李弘毅老师的课程机器学习课程,斯坦福大学CS229.CS231N.CS224N.CS20i.伦敦大学学院 ([UCL-Course])(http://www ...

  4. [转]机器学习和深度学习资料汇总【01】

    本文转自:http://blog.csdn.net/sinat_34707539/article/details/52105681 <Brief History of Machine Learn ...

  5. 【经验】刚读硕士怎么感觉学机器学习和深度学习越学越不懂?

    有同学问:研一,在学机器学习和深度学习,为什么感觉越学越不会,怎么解决这个问题? 我搜集了一些意见和建议,供参考. 高赞回答一 作者:曲終人不散丶 来源:知乎 我的研一我记得是先找了一本比较薄的,通俗 ...

  6. 下载量过百万的吴恩达机器学习和深度学习笔记更新了!(附PDF下载)

    今天,我把吴恩达机器学习和深度学习课程笔记都更新了,并提供下载,这两本笔记非常适合机器学习和深度学习入门.(作者:黄海广) 0.导语 我和同学将吴恩达老师机器学习和深度学习课程笔记做成了打印版,放在g ...

  7. 零基础实践深度学习之数学基础

    零基础实践深度学习之数学基础 深度学习常用数学知识 数学基础知识 高等数学 线性代数 行列式 矩阵 向量 线性方程组 矩阵的特征值和特征向量 二次型 概率论和数理统计 随机事件和概率 随机变量及其概率 ...

  8. 机器学习和深度学习资料

    機器學習.深度學習方面不錯的資料,轉載. 原作:https://github.com/ty4z2008/Qix/blob/master/dl.md 原作作者會不斷更新,本文更新至2014-12-21 ...

  9. 研一学机器学习和深度学习,为什么感觉越学越不会,怎么解决呢?

    链接:https://www.zhihu.com/question/371622741 编辑:深度学习与计算机视觉 声明:仅做学术分享,侵删 比如说看了两遍prml前几章感觉什么也没学到?有什么好办法 ...

最新文章

  1. php mysql zend linux_在Linux系统中安装Apache+MySQL+php+phpMyAdmin+Zend
  2. SQL Server 2008 :安装
  3. java一个点围着另一个点转_Java:按指定的度数值旋转另一个
  4. 云炬WEB开发笔记 第2章小结回顾
  5. 解决博易博客后台文章管理页面无法显示分页的问题
  6. MDaemon12.X特殊注意事项和新功能
  7. 倪光南院士:云计算发展须和云安全同步推进
  8. python getattr用法_python3,定制类,getattr相关用法
  9. linux中断处理体系结构
  10. Java的一些基础问题
  11. [WP8.1UI控件编程]Windows Phone XAML页面的编译
  12. web安全:通俗易懂,以实例讲述破解网站的原理及如何进行防护!如何让网站变得更安全。
  13. /NXCOMPAT编译选项 : 数据执行保护DEP
  14. 多线程扑克牌发牌小白实现 -- 记录下自己代码点滴
  15. 计算机硬件系统概念,计算机系统概念
  16. GIS空间数据格式简介
  17. asp.net976-校园论坛系统的设计与实现#毕业设计
  18. 自己如何快速制作蓝色背景证件照
  19. 【优化覆盖】基于matlab粒子群算法优化无人机编队布局求解车载网络通信覆盖优化问题【含Matlab源码 2021期】
  20. zabbix使用web界面监控本机

热门文章

  1. 5V升压8.4V的2A充电电路芯片-PW4202
  2. Visual studio 默认不支持x64下__asm{}内联汇编的解决方案(含资源共享)
  3. 【Qzone】向来缘浅 奈何情深 第三步 编译Android内核源代码
  4. Kaggle之泰坦尼克号(1)
  5. procreate绘画零基础入门教程
  6. hive用temporary table替换with
  7. Python 元组() (元素不能修改),元组的定义,元组与列表的转换,元组的应用场景
  8. 有多少人工智能在“人工”强行“智能”
  9. php exec和query,exec和php之间的区别
  10. 恒大造车,从来都不是梦