当前位置:   article > 正文

机器学习线性代数基础

机器学习线性代数基础

本文是斯坦福大学CS 229机器学习课程的基础材料,原始文件下载

原文作者:Zico Kolter,修改:Chuong Do, Tengyu Ma

翻译:黄海广
备注:请关注github的更新,线性代数和概率论已经更新完毕。

CS229 机器学习课程复习材料-线性代数

线性代数复习和参考

1. 基础概念和符号

线性代数提供了一种紧凑地表示和操作线性方程组的方法。 例如,以下方程组:

4x15x2=13
2x1+3x2=9

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

Ax=b
 with A=[4523],b=[139]

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

1.1 基本符号

我们使用以下符号:

  • ARm×n,表示 A 为由实数组成具有m行和n列的矩阵。

  • xRn,表示具有n个元素的向量。 通常,向量x将表示列向量: 即,具有n行和1列的矩阵。 如果我们想要明确地表示行向量: 具有 1 行和n列的矩阵 - 我们通常写xT(这里xTx的转置)。

  • xi表示向量x的第i个元素

x=[x1x2xn]
  • 我们使用符号 aij(或Aij,Ai,j等)来表示第 i 行和第j列中的 A 的元素:
A=[a11a12a1na21a22a2nam1am2amn]
  • 我们用aj或者A:,j表示矩阵A的第j列:
A=[|||a1a2an|||]
  • 我们用aiT或者Ai,:表示矩阵A的第i行:
A=[a1Ta2TamT]
  • 在许多情况下,将矩阵视为列向量或行向量的集合非常重要且方便。 通常,在向量而不是标量上操作在数学上(和概念上)更清晰。只要明确定义了符号,用于矩阵的列或行的表示方式并没有通用约定。

2.矩阵乘法

两个矩阵相乘,其中 ARm×n and BRn×p ,则:

C=ABRm×p

其中:

Cij=k=1nAikBkj

请注意,为了使矩阵乘积存在,A中的列数必须等于B中的行数。有很多方法可以查看矩阵乘法,我们将从检查一些特殊情况开始。

2.1 向量-向量乘法

给定两个向量x,yRn,xTy通常称为向量内积或者点积,结果是个实数

xTyR=[x1x2xn][y1y2yn]=i=1nxiyi

注意:xTy=yTx 始终成立。

给定向量 xRm, yRn (他们的维度是否相同都没关系),xyTRm×n叫做**向量外积 ** , 当 (xyT)ij=xiyj 的时候,它是一个矩阵。

xyTRm×n=[x1x2xm][y1y2yn]=[x1y1x1y2x1ynx2y1x2y2x2ynxmy1xmy2xmyn]

举一个外积如何使用的一个例子:让1Rn表示一个n维向量,其元素都等于1,此外,考虑矩阵ARm×n,其列全部等于某个向量 xRm。 我们可以使用外积紧凑地表示矩阵 A:

A=[|||xxx|||]=[x1x1x1x2x2x2xmxmxm]=[x1x2xm][111]=x1T
2.2 矩阵-向量乘法

给定矩阵 ARm×n,向量 xRn , 它们的积是一个向量 y=AxRm。 有几种方法可以查看矩阵向量乘法,我们将依次查看它们中的每一种。

如果我们按行写A,那么我们可以表示Ax为:

y=Ax=[a1Ta2TamT]x=[a1Txa2TxamTx]

换句话说,第iyA的第i行和x的内积,即:yi=yi=aiTx

同样的, 可以把 A 写成列的方式,则公式如下:

y=Ax=[|||a1a2an|||][x1x2xn]=[a1]x1+[a2]x2++[an]xn

换句话说,yA的列的线性组合,其中线性组合的系数由x的元素给出。

到目前为止,我们一直在右侧乘以列向量,但也可以在左侧乘以行向量。 这是写的,yT=xTA 表示ARm×nxRmyRn。 和以前一样,我们可以用两种可行的方式表达yT,这取决于我们是否根据行或列表达A.

第一种情况,我们把A用列表示:

yT=xTA=xT[|||a1a2an|||]=[xTa1xTa2xTan]

这表明yT的第i个元素等于xA的第i列的内积。

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

yT=xTA=[x1x2xn][a1Ta2TamT]=x1[a1T]+x2[a2T]++xn[anT]

所以我们看到yTA的行的线性组合,其中线性组合的系数由x的元素给出。

2.3 矩阵-矩阵乘法

有了这些知识,我们现在可以看看四种不同的(形式不同,但结果是相同的)矩阵-矩阵乘法:也就是本节开头所定义的C=AB的乘法。

首先,我们可以将矩阵 - 矩阵乘法视为一组向量-向量乘积。 从定义中可以得出:最明显的观点是$C ( i,j )AiBj$列的内积。如下面的公式所示:

C=AB=[a1Ta2TamT][|||b1b2bp|||]=[a1Tb1a1Tb2a1Tbpa2Tb1a2Tb2a2TbpamTb1amTb2amTbp]

这里的$ A \in \mathbb{R}^{m\times n}$ ,BRn×paiRnbjRn×p, 这里的$ A \in \mathbb{R}^ {m \times n},$ $B \in \mathbb{R}^ {n \times p} $, $a_i \in \mathbb{R} ^ n b ^ j \in \mathbb{R} ^ {n \times p} A B AB AB$是求外积的和。公式如下:

C=AB=[|||a1a2an|||][b1Tb2TbnT]=i=1naibiT

换句话说,AB等于所有的A的第i列和Bi行的外积的和。因此,在这种情况下, $a_i \in \mathbb{R}^ m b_i \in \mathbb{R}^paib_iTm×pC$的维度一致。

其次,我们还可以将矩阵 - 矩阵乘法视为一组矩阵向量积。如果我们把B用列表示,我们可以将C的列视为AB的列的矩阵向量积。公式如下:

C=AB=A[|||b1b2bp|||]=[|||Ab1Ab2Abp|||]

这里C的第i列由矩阵向量乘积给出,右边的向量为ci=Abi。 这些矩阵向量乘积可以使用前一小节中给出的两个观点来解释。
最后,我们有类似的观点,我们用行表示AC的行作为AC行之间的矩阵向量积。公式如下:

C=AB=[a1Ta2TamT]B=[a1TBa2TBamTB]

这里第i行的C由左边的向量的矩阵向量乘积给出:ciT=aiTB

将矩阵乘法剖析到如此大的程度似乎有点过分,特别是当所有这些观点都紧跟在我们在本节开头给出的初始定义(在一行数学中)之后。

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

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

除此之外,了解一些更高级别的矩阵乘法的基本属性是很有必要的:

  • 矩阵乘法结合律: (AB)C=A(BC)

  • 矩阵乘法分配律: A(B+C)=AB+AC

  • 矩阵乘法通常不是可交换的; 也就是说,通常ABBA。 (例如,假设$ A \in \mathbb{R}^ {m \times n},$ $B \in \mathbb{R}^ {n \times p} mqBA$甚至不存在!)

如果您不熟悉这些属性,请花点时间自己验证它们。 例如,为了检查矩阵乘法的相关性,假设ARm×n $B \in \mathbb{R}^ {n \times p} C \in \mathbb{R}^ {p \times q}AB \in \mathbb{R}^ {m \times p}(AB)C \in \mathbb{R}^ {m \times q}BC \in \mathbb{R}^ {n \times q}A(BC) \in \mathbb{R}^ {m \times q}(AB)C (i,j)A(BC)(i,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

3 运算和属性

在本节中,我们介绍矩阵和向量的几种运算和属性。 希望能够为您复习大量此类内容,这些笔记可以作为这些主题的参考。

3.1 单位矩阵和对角矩阵

单位矩阵,$I \in \mathbb{R}^{n \times n} $,它是一个方阵,对角线的元素是1,其余元素都是0:

Iij={1i=j0ij

对于所有ARm×n,有:

AI=A=IA

注意,在某种意义上,单位矩阵的表示法是不明确的,因为它没有指定I的维数。通常,I的维数是从上下文推断出来的,以便使矩阵乘法成为可能。 例如,在上面的等式中,AI=A中的I是n×n矩阵,而A=IA中的Im×m矩阵。

对角矩阵是一种这样的矩阵:对角线之外的元素全为0。对角阵通常表示为:D=diag(d1,d2,...,dn),其中:

Dij={dii=j0ij

很明显:单位矩阵$ I = diag(1, 1, . . . , 1)$。

3.2 转置

矩阵的转置是指翻转矩阵的行和列。

给定一个矩阵:

ARm×n, 它的转置为n×m的矩阵ATRn×m ,其中的元素为:

(AT)ij=Aji

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

转置的以下属性很容易验证:

  • (AT)T=A
  • $ (AB)^T = B^T A^T$
  • (A+B)T=AT+BT
3.3 对称矩阵

如果A=AT,则矩阵ARn×n是对称矩阵。 如果$ A = - A^TA \in \mathbb{R}^ {n \times n}A + A^ TA -A^TA \in \mathbb{R}^ {n \times n}$可以表示为对称矩阵和反对称矩阵的和,所以:

A=12(A+AT)+12(AAT)

上面公式的右边的第一个矩阵是对称矩阵,而第二个矩阵是反对称矩阵。 事实证明,对称矩阵在实践中用到很多,它们有很多很好的属性,我们很快就会看到它们。
通常将大小为n的所有对称矩阵的集合表示为Sn,因此ASn意味着A是对称的n×n矩阵;

3.4 矩阵的迹

方矩阵ARn×n的迹,表示为tr(A)(或者只是trA,如果括号显然是隐含的),是矩阵中对角元素的总和:

trA=i=1nAii

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

  • 对于矩阵ARn×n,则:trA=trAT

  • 对于矩阵A,BRn×n,则:tr(A+B)=trA+trB

  • 对于矩阵ARn×n,$ t \in \mathbb{R}\operatorname{tr}(tA) = t\operatorname{tr}A$.

  • 对于矩阵 A, BAB 为方阵, 则:trAB=trBA

  • 对于矩阵 A, B, C, ABC为方阵, 则:trABC=trBCA=trCAB, 同理,更多矩阵的积也是有这个性质。

作为如何证明这些属性的示例,我们将考虑上面给出的第四个属性。 假设ARm×nBRn×m(因此ABRm×m是方阵)。 观察到BARn×n也是一个方阵,因此对它们进行迹的运算是有意义的。 要证明trAB=trBA,请注意:

trAB=i=1m(AB)ii=i=1m(j=1nAijBji)=i=1mj=1nAijBji=j=1ni=1mBjiAij=j=1n(i=1mBjiAij)=j=1n(BA)jj=trBA

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

3.5 范数

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

x2=i=1nxi2

注意:x22=xTx

更正式地,范数是满足4个属性的函数(f:RnR):

  1. 对于所有的 xRn, $f(x) \geq 0 $(非负).
  2. 当且仅当x=0 时,f(x)=0 (明确性).
  3. 对于所有xRn,tR,则 f(tx)=|t|f(x) (正齐次性).
  4. 对于所有 x,yRn, f(x+y)f(x)+f(y) (三角不等式)

其他范数的例子是1范数:

x1=i=1n|xi|

范数:

x=maxi|xi|

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

xp=(i=1n|xi|p)1/p

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

AF=i=1mj=1nAij2=tr(ATA)

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

3.6 线性相关性和秩

一组向量x1,x2,xnR, 如果没有向量可以表示为其余向量的线性组合,则称称该向量是线性无相关的。 相反,如果属于该组的一个向量可以表示为其余向量的线性组合,则称该向量是线性相关的。 也就是说,如果:

xn=i=1n1αixi

对于某些标量值α1,αn1R,要么向量x1,x2,xn是线性相关的; 否则,向量是线性无关的。 例如,向量:

x1=[123]x2=[415]x3=[231]

是线性相关的,因为:x3=2x1+x2

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

  • 对于 ARm×nrank(A)min(m,n),如果$ \text(A) = \text{min} (m, n)$,则: A 被称作满秩
  • 对于 ARm×nrank(A)=rank(AT)
  • 对于 ARm×n,BRn×p ,rank(AB)min(rank(A),rank(B))
  • 对于 A,BRm×nrank(A+B)rank(A)+rank(B)
3.7 方阵的逆

方阵ARn×n的倒数表示为A1,并且是这样的独特矩阵:

A1A=I=AA1

请注意,并非所有矩阵都具有逆。 例如,非方形矩阵根据定义没有逆。 然而,对于一些方形矩阵A,可能仍然存在A1可能不存在的情况。 特别是,如果A1存在,我们说A可逆的或非奇异的,否则就是不可逆奇异的。
为了使方阵A具有逆A1,则A必须是满秩。 我们很快就会发现,除了满秩之外,还有许多其它的充分必要条件。
以下是逆的属性; 假设A,BRn×n,而且是非奇异的:

  • (A1)1=A
  • (AB)1=B1A1
  • $(A{-1}) =(A{T}) A^{-T}使线Ax = bA \in \mathbb{R}^{n \times n}x,b\in \mathbb{R}A()x = A^{-1}b(A \in \mathbb{R}^{m \times n}$不是方阵,这公式还有用吗?)
3.8 正交阵

如果 xTy=0,则两个向量x,yRn正交的。如果x2=1,则向量xRn 被归一化。如果一个方阵URn×n的所有列彼此正交并被归一化(这些列然后被称为正交),则方阵U是正交阵(注意在讨论向量时的意义不一样)。

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

UTU=I=UUT

换句话说,正交矩阵的逆是其转置。 注意,如果U不是方阵 :即,URm×nn<m ,但其列仍然是正交的,则UTU=I,但是UUTI。我们通常只使用术语"正交"来描述先前的情况 ,其中U是方阵。
正交矩阵的另一个好的特性是在具有正交矩阵的向量上操作不会改变其欧几里德范数,即:

Ux2=x2

对于任何 xR , URn是正交的。

3.9 矩阵的值域和零空间

一组向量{x1,xn}是可以表示为{x1,xn}的线性组合的所有向量的集合。 即:

span({x1,xn})={v:v=i=1nαixi,αiR}

可以证明,如果{x1,xn}是一组n个线性无关的向量,其中每个xiRn,则span({x1,xn})=Rn。 换句话说,任何向量vRn都可以写成x1xn的线性组合。

向量yRm投影到{x1,xn}(这里我们假设xiRm)得到向量vspan({x1,,xn}),由欧几里德范数vy2可以得知,这样v尽可能接近y

我们将投影表示为Proj(y;{x1,xn}),并且可以将其正式定义为:

Proj(y;{x1,xn})=argminvspan({x1,,xn})yv2

矩阵ARm×n的值域(有时也称为列空间),表示为R(A),是A列的跨度。换句话说,

R(A)={vRm:v=Ax,xRn}

做一些技术性的假设(即A是满秩且n<m),向量yRmA的范围的投影由下式给出:

Proj(y;A)=argminvR(A)vy2=A(ATA)1ATy

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

A只包含一列时,aRm,这给出了向量投影到一条线上的特殊情况:

Proj(y;a)=aaTaTay

一个矩阵ARm×n的零空间 N(A) 是所有乘以A时等于0向量的集合,即:

N(A)={xRn:Ax=0}

注意,R(A)中的向量的大小为m,而 N(A) 中的向量的大小为n,因此R(AT)N(A) 中的向量的大小均为Rn。 事实上,还有很多例子。 证明:

{w:w=u+v,uR(AT),vN(A)}=Rn and R(AT)N(A)={0}

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

3.10 行列式

一个方阵ARn×n的行列式是函数det:$\mathbb{R}^{n \times n} \rightarrow \mathbb{R}^{n} \left| A \right|\text{det} A()A$行列式的显式公式。 因此,我们首先提供行列式的几何解释,然后探讨它的一些特定的代数性质。

给定一个矩阵:

[a1Ta2TanT]

考虑通过采用A行向量a1,anRn的所有可能线性组合形成的点SRn的集合,其中线性组合的系数都在0和1之间; 也就是说,集合Sspan({a1,an})受到系数a1,an的限制的线性组合,α1,,αn满足0αi1,i=1,,n。从形式上看,

S={vRn:v=i=1nαiai where 0αi1,i=1,,n}

事实证明,A的行列式的绝对值是对集合S的“体积”的度量。

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

A=[1332]

它的矩阵的行是:

a1=[13]a2=[32]

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

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

图1:(4)中给出的2×2矩阵A的行列式的图示。 这里,a1a2是对应于A行的向量,并且集合S对应于阴影区域(即,平行四边形)。 这个行列式的绝对值,|detA|=7,即平行四边形的面积。

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

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

  2. 给定一个矩阵 ARn×n, 如果我们将A中的一行乘上一个标量tR,那么新矩阵的行列式是t|A|

|[ta1Ta2TamT]|=t|A|

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

  1. 如果我们交换任意两行在aiTajT,那么新矩阵的行列式是|A|,例如:
|[a2Ta1TamT]|=|A|

你一定很奇怪,满足上述三个属性的函数的存在并不多。事实上,这样的函数确实存在,而且是唯一的(我们在这里不再证明了)。

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

  • 对于 ARn×n, |A|=|AT|
  • 对于 A,BRn×n, |AB|=|A||B|
  • 对于 ARn×n, 有且只有当A是奇异的(比如不可逆) ,则:|A|=0
  • 对于 ARn×n 同时,A为非奇异的,则:|A1|=1/|A|

在给出行列式的一般定义之前,我们定义,对于ARn×nAi,jR(n1)×(n1)是由于删除第i行和第j列而产生的矩阵。 行列式的一般(递归)公式是:

|A|=i=1n(1)i+jaij|Ai,j|( for any j1,,n)=j=1n(1)i+jaij|Ai,j|( for any i1,,n)

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

|[a11]|=a11
|[a11a12a21a22]|=a11a22a12a21
|[a11a12a13a21a22a23a31a32a33]|=a11a22a33+a12a23a31+a13a21a32a11a23a32a12a21a33a13a22a31

矩阵ARn×n的经典伴随矩阵(通常称为伴随矩阵)表示为adj(A),并定义为:

adj(A)Rn×n,(adj(A))ij=(1)i+j|Aj,i|

(注意索引Aj,i中的变化)。可以看出,对于任何非奇异ARn×n

A1=1|A|adj(A)

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

3.11 二次型和半正定矩阵

给定方矩阵ARn×n和向量xRn,标量值xTAx被称为二次型。 写得清楚些,我们可以看到:

xTAx=i=1nxi(Ax)i=i=1nxi(j=1nAijxj)=i=1nj=1nAijxixj

注意:

xTAx=(xTAx)T=xTATx=xT(12A+12AT)x

第一个等号的是因为是标量的转置与自身相等,而第二个等号是因为是我们平均两个本身相等的量。 由此,我们可以得出结论,只有A的对称部分有助于形成二次型。 出于这个原因,我们经常隐含地假设以二次型出现的矩阵是对称阵。
我们给出以下定义:

  • 对于所有非零向量xRnxTAx>0,对称阵ASn正定(positive definite,PD)。这通常表示为A0(或A>0),并且通常将所有正定矩阵的集合表示为S++n

  • 对于所有向量xTAx0,对称矩阵ASn半正定(positive semidefinite ,PSD)。 这写为(或A0A0),并且所有半正定矩阵的集合通常表示为S+n

  • 同样,对称矩阵ASn负定(negative definite,ND),如果对于所有非零xRn,则xTAx<0表示为A0(或A<0)。

  • 类似地,对称矩阵ASn半负定(negative semidefinite,NSD),如果对于所有xRn,则xTAx0表示为A0(或A0)。

  • 最后,对称矩阵ASn不定的,如果它既不是正半定也不是负半定,即,如果存在x1,x2Rn,那么x1TAx1>0x2TAx2<0

很明显,如果A是正定的,那么A是负定的,反之亦然。同样,如果A是半正定的,那么A是是半负定的,反之亦然。如果果A是不定的,那么A是也是不定的。

正定矩阵和负定矩阵的一个重要性质是它们总是满秩,因此是可逆的。为了了解这是为什么,假设某个矩阵ASn不是满秩。然后,假设A的第j列可以表示为其他n1列的线性组合:

aj=ijxiai

对于某些x1,xj1,xj+1,,xnR。设xj=1,则:

Ax=ijxiai=0

但这意味着对于某些非零向量xxTAx=0,因此A必须既不是正定也不是负定。如果A是正定或负定,则必须是满秩。
最后,有一种类型的正定矩阵经常出现,因此值得特别提及。 给定矩阵ARm×n(不一定是对称或偶数平方),矩阵G=ATA(有时称为Gram矩阵)总是半正定的。 此外,如果mn(同时为了方便起见,我们假设A是满秩),则G=ATA是正定的。

3.12 特征值和特征向量

给定一个方阵ARn×n,我们认为在以下条件下,λCA特征值xCn是相应的特征向量

Ax=λx,x0

直观地说,这个定义意味着将A乘以向量x会得到一个新的向量,该向量指向与x相同的方向,但按系数λ缩放。值得注意的是,对于任何特征向量xCn和标量tCA(cx)=cAx=cλx=λ(cx)cx也是一个特征向量。因此,当我们讨论与λ相关的特征向量时,我们通常假设特征向量被标准化为长度为1(这仍然会造成一些歧义,因为xx都是特征向量,但我们必须接受这一点)。

我们可以重写上面的等式来说明(λ,x)A的特征值和特征向量的组合:

(λIA)x=0,x0

但是(λIA)x=0只有当(λIA)有一个非空零空间时,同时(λIA)是奇异的,x才具有非零解,即:

|(λIA)|=0

现在,我们可以使用行列式的先前定义将表达式|(λIA)|扩展为λ中的(非常大的)多项式,其中,λ的度为n。它通常被称为矩阵A的特征多项式。

然后我们找到这个特征多项式的n(可能是复数)根,并用λ1,,λn表示。这些都是矩阵A的特征值,但我们注意到它们可能不明显。为了找到特征值λi对应的特征向量,我们只需解线性方程(λIA)x=0,因为(λIA)是奇异的,所以保证有一个非零解(但也可能有多个或无穷多个解)。

应该注意的是,这不是实际用于数值计算特征值和特征向量的方法(记住行列式的完全展开式有n!项),这是一个数学上的争议。

以下是特征值和特征向量的属性(所有假设在ARn×n具有特征值λ1,,λn的前提下):

  • A的迹等于其特征值之和

    trA=i=1nλi
  • A的行列式等于其特征值的乘积

    |A|=i=1nλi
  • A的秩等于A的非零特征值的个数

  • 假设A非奇异,其特征值为λ和特征向量为x。那么1/λ是具有相关特征向量xA1的特征值,即A1x=(1/λ)x。(要证明这一点,取特征向量方程,Ax=λx,两边都左乘A1)

  • 对角阵的特征值d=diag(d1,dn)实际上就是对角元素d1,dn

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

通常情况下,一般的方阵的特征值和特征向量的结构可以很细微地表示出来。
值得庆幸的是,在机器学习的大多数场景下,处理对称实矩阵就足够了,其处理的对称实矩阵的特征值和特征向量具有显着的特性。

在本节中,我们假设A是实对称矩阵, 具有以下属性:

  1. A的所有特征值都是实数。 我们用用λ1,,λn表示。

  2. 存在一组特征向量u1un,对于所有iui是具有特征值λib的特征向量。u1un是单位向量并且彼此正交。

U是包含ui作为列的正交矩阵:

U=[|||u1u2un|||]

Λ=diag(λ1,,λn)是包含λ1,,λn作为对角线上的元素的对角矩阵。 使用2.3节的方程(2)中的矩阵 - 矩阵向量乘法的方法,我们可以验证:

AU=[|||Au1Au2Aun|||]=[||||λ1u1λ2u2λnun||||]=Udiag(λ1,,λn)=UΛ

考虑到正交矩阵U满足UUT=I,利用上面的方程,我们得到:

A=AUUT=UΛUT

这种A的新的表示形式为UΛUT,通常称为矩阵A的对角化。术语对角化是这样来的:通过这种表示,我们通常可以有效地将对称矩阵A视为对角矩阵 , 这更容易理解。关于由特征向量U定义的基础, 我们将通过几个例子详细说明。

背景知识:代表另一个基的向量。

任何正交矩阵U=[|||u1u2un|||]定义了一个新的属于Rn的基(坐标系),意义如下:对于任何向量xRn都可以表示为u1un的线性组合,其系数为x1,xn

x=x^1u1++x^nun=Ux^

在第二个等式中,我们使用矩阵和向量相乘的方法。 实际上,这种x^是唯一存在的:

x=Ux^UTx=x^

换句话说,向量x^=UTx可以作为向量x的另一种表示,与U定义的基有关。

“对角化”矩阵向量乘法。 通过上面的设置,我们将看到左乘矩阵A可以被视为左乘以对角矩阵关于特征向量的基。 假设x是一个向量,x^表示U的基。设z=Ax为矩阵向量积。现在让我们计算关于U的基z
然后,再利用UUT=UT=I和方程A=AUUT=UΛUT,我们得到:

z^=UTz=UTAx=UTUΛUTx=Λx^=[λ1x^1λ2x^2λnx^n]

我们可以看到,原始空间中的左乘矩阵A等于左乘对角矩阵Λ相对于新的基,即仅将每个坐标缩放相应的特征值。
在新的基上,矩阵多次相乘也变得简单多了。例如,假设q=AAAx。根据A的元素导出q的分析形式,使用原始的基可能是一场噩梦,但使用新的基就容易多了:

q^=UTq=UTAAAx=UTUΛUTUΛUTUΛUTx=Λ3x^=[λ13x^1λ23x^2λn3x^n]

“对角化”二次型。作为直接的推论,二次型xTAx也可以在新的基上简化。

xTAx=xTUΛUTx=x^Λx^=i=1nλix^i2

(回想一下,在旧的表示法中,xTAx=i=1,j=1nxixjAij涉及一个n2项的和,而不是上面等式中的n项。)利用这个观点,我们还可以证明矩阵A的正定性完全取决于其特征值的符号:

  1. 如果所有的λi>0,则矩阵A正定的,因为对于任意的x^0,xTAx=i=1nλix^i2>0
  2. 如果所有的λi0,则矩阵A是为正半定,因为对于任意的$\hat x ,x^{T} A x=\sum_{i=1}^{n} \lambda_{i} \hat{x}_{i}^{2} \geq 0$
  3. 同样,如果所有λi<0λi0,则矩阵A分别为负定或半负定。
  4. 最后,如果A同时具有正特征值和负特征值,比如λλi>0λj<0,那么它是不定的。这是因为如果我们让x^满足x^i=1x^k=0,同时所有的ki,那么xTAx=i=1nλix^i2>0 ,我们让x^满足x^i=1x^k=0,同时所有的ki,那么xTAx=i=1nλix^i2<0

特征值和特征向量经常出现的应用是最大化矩阵的某些函数。特别是对于矩阵ASn,考虑以下最大化问题:

maxxRn xTAx=i=1nλix^i2 subject to x22=1

也就是说,我们要找到(范数1)的向量,它使二次型最大化。假设特征值的阶数为λ1λ2λn,此优化问题的最优值为λ1,且与λ1对应的任何特征向量u1都是最大值之一。(如果λ1>λ2,那么有一个与特征值λ1对应的唯一特征向量,它是上面那个优化问题的唯一最大值。)
我们可以通过使用对角化技术来证明这一点:注意,通过公式Ux2=x2推出x2=x^2,并利用公式:

xTAx=xTUΛUTx=x^Λx^=i=1nλix^i2,我们可以将上面那个优化问题改写为:

maxx^Rn x^TΛx^=i=1nλix^i2 subject to x^22=1

然后,我们得到目标的上界为λ1

x^TΛx^=i=1nλix^i2i=1nλ1x^i2=λ1

此外,设置x^=[100]可让上述等式成立,这与设置x=u1相对应。

4.矩阵微积分

虽然前面章节中的主题通常包含在线性代数的标准课程中,但似乎很少涉及(我们将广泛使用)的一个主题是微积分扩展到向量设置展。尽管我们使用的所有实际微积分都是相对微不足道的,但是符号通常会使事情看起来比实际困难得多。 在本节中,我们将介绍矩阵微积分的一些基本定义,并提供一些示例。

4.1 梯度

假设f:Rm×nR是将维度为m×n的矩阵ARm×n作为输入并返回实数值的函数。 然后f的梯度(相对于ARm×n)是偏导数矩阵,定义如下:

Af(A)Rm×n=[f(A)A11f(A)A12f(A)A1nf(A)A21f(A)A22f(A)A2nf(A)Am1f(A)Am2f(A)Amn]

即,m×n矩阵:

(Af(A))ij=f(A)Aij

请注意,$\nabla_{A} f(A) AAA\in \mathbb{R}^{n}$,则

xf(x)=[f(x)x1f(x)x2f(x)xn]

重要的是要记住,只有当函数是实值时,即如果函数返回标量值,才定义函数的梯度。例如,ARm×n相对于x,我们不能取Ax的梯度,因为这个量是向量值。
它直接从偏导数的等价性质得出:

  • x(f(x)+g(x))=xf(x)+xg(x)

  • 对于tRx(tf(x))=txf(x)

原则上,梯度是偏导数对多变量函数的自然延伸。然而,在实践中,由于符号的原因,使用梯度有时是很困难的。例如,假设ARm×n是一个固定系数矩阵,假设bRm是一个固定系数向量。设f:Rm×nRf(z)=zTz定义的函数,因此zf(z)=2z。但现在考虑表达式,

f(Ax)

该表达式应该如何解释? 至少有两种可能性:
1.在第一个解释中,回想起zf(z)=2z。 在这里,我们将f(Ax)解释为评估点Ax处的梯度,因此:

f(Ax)=2(Ax)=2AxRm

2.在第二种解释中,我们将数量f(Ax)视为输入变量x的函数。 更正式地说,设g(x)=f(Ax)。 然后在这个解释中:

f(Ax)=xg(x)Rn

在这里,我们可以看到这两种解释确实不同。 一种解释产生m维向量作为结果,而另一种解释产生n维向量作为结果! 我们怎么解决这个问题?

这里,关键是要明确我们要区分的变量。
在第一种情况下,我们将函数f与其参数z进行区分,然后替换参数Ax
在第二种情况下,我们将复合函数g(x)=f(Ax)直接与x进行微分。

我们将第一种情况表示为zf(Ax),第二种情况表示为xf(Ax)

保持符号清晰是非常重要的,以后完成课程作业时候你就会发现。

4.2 黑塞矩阵

假设f:RnR是一个函数,它接受Rn中的向量并返回实数。那么关于x黑塞矩阵(也有翻译作海森矩阵),写做:x2f(Ax),或者简单地说,Hn×n矩阵的偏导数:

x2f(x)Rn×n=[2f(x)x122f(x)x1x22f(x)x1xn2f(x)x2x12f(x)x222f(x)x2xn2f(x)xnx12f(x)xnx22f(x)xn2]

换句话说,x2f(x)Rn×n,其:

(x2f(x))ij=2f(x)xixj

注意:黑塞矩阵通常是对称阵:

2f(x)xixj=2f(x)xjxi

与梯度相似,只有当f(x)为实值时才定义黑塞矩阵。

很自然地认为梯度与向量函数的一阶导数的相似,而黑塞矩阵与二阶导数的相似(我们使用的符号也暗示了这种关系)。 这种直觉通常是正确的,但需要记住以下几个注意事项。
首先,对于一个变量f:RR的实值函数,它的基本定义:二阶导数是一阶导数的导数,即:

2f(x)x2=xxf(x)

然而,对于向量的函数,函数的梯度是一个向量,我们不能取向量的梯度,即:

xxf(x)=x[f(x)x1f(x)x2f(x)xn]

上面这个表达式没有意义。 因此,黑塞矩阵不是梯度的梯度。 然而,下面这种情况却这几乎是正确的:如果我们看一下梯度(xf(x))i=f(x)/xi的第i个元素,并取关于于x的梯度我们得到:

xf(x)xi=[2f(x)xix12f(x)x2x2f(x)xixn]

这是黑塞矩阵第i行(列),所以:

x2f(x)=[x(xf(x))1x(xf(x))2x(xf(x))n]

简单地说:我们可以说由于:x2f(x)=x(xf(x))T,只要我们理解,这实际上是取xf(x)的每个元素的梯度,而不是整个向量的梯度。

最后,请注意,虽然我们可以对矩阵ARn取梯度,但对于这门课,我们只考虑对向量xRn取黑塞矩阵。
这会方便很多(事实上,我们所做的任何计算都不要求我们找到关于矩阵的黑森方程),因为关于矩阵的黑塞方程就必须对矩阵所有元素求偏导数2f(A)/(AijAk),将其表示为矩阵相当麻烦。

4.3 二次函数和线性函数的梯度和黑塞矩阵

现在让我们尝试确定几个简单函数的梯度和黑塞矩阵。 应该注意的是,这里给出的所有梯度都是CS229讲义中给出的梯度的特殊情况。

对于xRn, 设f(x)=bTx 的某些已知向量bRn ,则:

f(x)=i=1nbixi

所以:

f(x)xk=xki=1nbixi=bk

由此我们可以很容易地看出xbTx=b。 这应该与单变量微积分中的类似情况进行比较,其中/(x)ax=a
现在考虑ASn的二次函数f(x)=xTAx。 记住这一点:

f(x)=i=1nj=1nAijxixj

为了取偏导数,我们将分别考虑包括xkx2k因子的项:

f(x)xk=xki=1nj=1nAijxixj=xk[ikjkAijxixj+ikAikxixk+jkAkjxkxj+Akkxk2]=ikAikxi+jkAkjxj+2Akkxk=i=1nAikxi+j=1nAkjxj=2i=1nAkixi

最后一个等式,是因为A是对称的(我们可以安全地假设,因为它以二次形式出现)。 注意,xf(x)的第k个元素是Ax的第k行的内积。 因此,xxTAx=2Ax。 同样,这应该提醒你单变量微积分中的类似事实,即/(x)ax2=2ax

最后,让我们来看看二次函数f(x)=xTAx黑塞矩阵(显然,线性函数bTx的黑塞矩阵为零)。在这种情况下:

2f(x)xkx=xk[f(x)x]=xk[2i=1nAixi]=2Ak=2Ak

因此,应该很清楚x2xTAx=2A,这应该是完全可以理解的(同样类似于2/(x2)ax2=2a的单变量事实)。

简要概括起来:

  • xbTx=b

  • xxTAx=2Ax (如果A是对称阵)

  • $\nabla_{x}^2 x^{T} A x=2 A $ (如果A是对称阵)

4.4 最小二乘法

让我们应用上一节中得到的方程来推导最小二乘方程。假设我们得到矩阵ARm×n(为了简单起见,我们假设A是满秩)和向量bRm,从而使bR(A)。在这种情况下,我们将无法找到向量xRn,由于Ax=b,因此我们想要找到一个向量x,使得Ax尽可能接近 b,用欧几里德范数的平方$|A x-b|_{2}^{2} $来衡量。

使用公式x2=xTx,我们可以得到:

Axb22=(Axb)T(Axb)=xTATAx2bTAx+bTb

根据x的梯度,并利用上一节中推导的性质:

x(xTATAx2bTAx+bTb)=xxTATAxx2bTAx+xbTb=2ATAx2ATb

将最后一个表达式设置为零,然后解出x,得到了正规方程:

x=(ATA)1ATb

这和我们在课堂上得到的相同。

4.5 行列式的梯度

现在让我们考虑一种情况,我们找到一个函数相对于矩阵的梯度,也就是说,对于ARn×n,我们要找到A|A|。回想一下我们对行列式的讨论:

|A|=i=1n(1)i+jAij|Ai,j|( for any j1,,n)

所以:

Ak|A|=Aki=1n(1)i+jAij|Ai,j|=(1)k+|Ak,|=(adj(A))k

从这里可以知道,它直接从伴随矩阵的性质得出:

A|A|=(adj(A))T=|A|AT

现在我们来考虑函数f:S++nRf(A)=log|A|。注意,我们必须将f的域限制为正定矩阵,因为这确保了|A|>0,因此|A|的对数是实数。在这种情况下,我们可以使用链式法则(没什么奇怪的,只是单变量演算中的普通链式法则)来看看:

log|A|Aij=log|A||A||A|Aij=1|A||A|Aij

从这一点可以明显看出:

Alog|A|=1|A|A|A|=A1

我们可以在最后一个表达式中删除转置,因为A是对称的。注意与单值情况的相似性,其中/(x)logx=1/x

4.6 特征值优化

最后,我们使用矩阵演算以直接导致特征值/特征向量分析的方式求解优化问题。 考虑以下等式约束优化问题:

maxxRnxTAx subject to x22=1

对于对称矩阵ASn。求解等式约束优化问题的标准方法是采用拉格朗日形式,一种包含等式约束的目标函数,在这种情况下,拉格朗日函数可由以下公式给出:

L(x,λ)=xTAxλxTx

其中,$\lambda 使x*$成为问题的最佳点,拉格朗日的梯度必须在$x*$处为零(这不是唯一的条件,但它是必需的)。也就是说,

xL(x,λ)=x(xTAxλxTx)=2ATx2λx=0

请注意,这只是线性方程Ax=λx。 这表明假设xTx=1,可能最大化(或最小化)xTAx的唯一点是A的特征向量。

线性代数和概率论都已经翻译完毕,请关注github的更新,若有修改将在github上更新

欢迎大家提交PR,对语言进行润色。

翻译:黄海广

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/35749?site
推荐阅读
相关标签
  

闽ICP备14008679号