CS229 斯坦福大学机器学习复习材料(数学基础) - 线性代数
线性代数提供了一种紧凑地表示和运算“线性方程组”的方法。例如,考虑以下方程组:
4x1−5x2=−13−2x1+3x2=9.
这是两个方程和两个变量,正如你从高中代数中所知,你可以找到 x1 和 x2 的唯一解(除非方程以某种方式退化,例如,如果第二个方程只是第一个的倍数,但在上面的情况下,实际上只有一个唯一解)。 在矩阵表示法中,我们可以更紧凑地表达:
Ax=b
其中
A=[4−2−53],b=[−139].
我们可以看到,以这种形式分析线性方程有许多优点(包括明显的节省空间)。
我们使用以下符号:
-
用A∈Rm×n表示一个m行n列的矩阵,其中A的各项都是实数。
-
用x∈Rn表示具有n个元素的向量。按照惯例,n维向量。通常被认为是n行1列的矩阵,称为x的转置,我们稍后将定义它)。
-
用xi表示向量x的第i个元素:
x=⎣⎡x1x2⋮xn⎦⎤.
-
我们用符号aij(or Aij, Ai,j)表示A的第i行第j列元素:
A=⎣⎡a11a21⋮am1a12a22⋮am2⋯⋯⋱⋯a1na2n⋮amn⎦⎤.
-
我们将A的第j列表示为aj or A:,j :
A=⎣⎡|a1||a2|⋯|an|⎦⎤.
-
我们将A的第i行表示为aiT or Ai,: :
A=⎣⎡———a1Ta2T⋮amT———⎦⎤.
-
在许多情况下,将矩阵视为列向量或行向量的集合是非常重要和方便的。一般来说,在数学上(和概念上)向量级别上的操作比标量级别上的操作会更简洁。表示矩阵的列或行没有通用约定,因此你可以使用任何符号明确定义它。
矩阵A∈Rm×n和矩阵B∈Rn×p的乘积仍然是一个矩阵C=AB∈Rm×p,其中Cij=k=1∑nAikBkj.
请注意,为了使矩阵乘积存在,A中的列数必须等于B中的行数。有很多方法可以查看矩阵乘法,我们将从检查一些特殊情况开始。
给两个向量x,y∈Rn, xTy通常称为向量的点积,结果是个实数:
xTy∈R=[x1x2⋯xn]⎣⎡y1y2⋮yn⎦⎤=i=1∑nxiyi
请注意,内积实际上只是矩阵乘法的特例。xTy=yTx 始终成立。
给定向量x∈Rm,y∈Rn(m不一定等于n), xyT∈Rm×n叫向量组成,也就是(i.e.):
xyT∈Rm×n=⎣⎡x1x2⋮xm⎦⎤[y1y2⋯yn]=⎣⎡x1y1x2y1⋮xmy1x1y2x2y2⋮xmy2⋯⋯⋱⋯x1ynx2yn⋮xmyn⎦⎤
举一个外积如何使用的一个例子:让1∈Rn表示一个n维向量,其元素都等于 1,此外,考虑矩阵A∈Rm×n,其列全部是某个向量 x∈Rm。 我们可以使用外积紧凑地表示矩阵 A:
A=⎣⎡|x||x|⋯|x|⎦⎤=⎣⎡x1x2⋮xmx1x2⋮xm⋯⋯⋱⋯x1x2⋮xm⎦⎤=⎣⎡x1x2⋮xm⎦⎤[11⋯1]=x1T
给定矩阵 A∈Rm×n,向量 x∈Rn , 它们的积是一个向量 y=Ax∈Rm。 有几种方法可以查看矩阵向量乘法。
如果我们按行写A,那么我们可以表示Ax为:
y=Ax=⎣⎡———a1Ta2T⋮amT———⎦⎤x=⎣⎡a1Txa2Tx⋮amTx⎦⎤
换句话说,第i个y的元素是A的第i行和x的内积,即:yi=aiTx。
同样的, 可以把 A 写成列的方式,如下:
y=Ax=⎣⎡|a1||a2|⋯|an|⎦⎤⎣⎡x1x2⋮xn⎦⎤=[a1]x1+[a2]x2+⋯+[an]xn)
换句话说,y是A的列的x的元素给出。
到目前为止,我们一直是矩阵右乘一个列向量,但也可以是矩阵左乘一个行向量。如这样表示:yT=xTA 其中A∈Rm×n,x∈Rm,y∈Rn。 和以前一样,我们可以用两种可行的方式表达yT,这取决于我们是否根据行或列表达A.
首先,我们把A用列表示:
yT=xTA=xT⎣⎡|a1||a2|⋯|an|⎦⎤=[xTa1xTa2⋯xTan]
这表明yT的第i个元素等于x和A的第i列的内积。
最后,根据行表示A,我们得到了向量-矩阵乘积的最终表示:
yT=xTA=[x1x2⋯xn]⎣⎡———a1Ta2T⋮amT———⎦⎤=x1[—a1T—]+x2[—a2T—]+⋯+xn[—anT—]
所以我们看到yT是A的行的线性组合,其中线性组合的系数由x的元素给出。
有了这些知识,我们现在可以看看四种不同的(当然是等价的)查看矩阵与矩阵乘法C=AB的方法。
首先,我们可以将矩阵-矩阵乘法视为一组向量-向量乘积。 从定义中可以得出:最明显的观点是C的(i,j)元素等于A的第i行和B的的j列的内积。如下所示:
C=AB=⎣⎡———a1Ta2T⋮amT———⎦⎤⎣⎡|b1||b2|⋯|bp|⎦⎤=⎣⎡a1b1a2b1⋮amb1a1b2a2b2⋮amb2⋯⋯⋱⋯a1bpa2bp⋮ambp⎦⎤
这里的矩阵A∈Rm×n,B∈Rn×p , 向量ai∈Rn,bj∈Rn ,所以它们可以计算内积。当我们用行表示 A 和用列表示 B 时,这是最“自然”的表示。
另外,我们可以用列表示 A,用行表示 B。这种表示导致将 AB 解释为外积之和,这种表示则复杂得多。象征性地,
C=AB=⎣⎡|a1||a2|⋯|an|⎦⎤⎣⎡———b1Tb2T⋮bnT———⎦⎤=i=1∑naibiT
换句话说,AB等于所有的A的第i列和B第i行的外积的和。因此,在这种情况下, ai∈Rm和bi∈Rp, 外积aibiT的维度是m×p,与C的维度一致。
其次,我们还可以将矩阵-矩阵乘法视为一组矩阵-向量乘法。如果我们把B用列表示,我们可以将C的列视为A和B的列(矩阵-向量)的乘积。如下所示:
C=AB=A⎣⎡|b1||b2|⋯|bp|⎦⎤=⎣⎡|Ab1||Ab2|⋯|Abp|⎦⎤)
这里C的第i列由矩阵-向量乘积给出,右边的向量为ci=Abi。
最后,我们有类似的观点,我们用行表示A,并将C的行视为A的行和B之间的矩阵-向量乘积。如下所示:
C=AB=⎣⎡———a1Ta2T⋮amT———⎦⎤B=⎣⎡———a1TBa2TB⋮amTB———⎦⎤
这里C的第i行由矩阵-向量乘积给出:ciT=aiTB。
将矩阵乘法剖析到如此大的程度似乎有点矫枉过正,特别是当所有这些观点都紧跟在我们在本节开头给出的初始定义(C=AB)之后。
这些不同方法的直接优势在于它们允许您在向量的级别/单位而不是标量上进行操作。 为了完全理解线性代数而不会迷失在复杂的索引操作中,关键是操作尽可能大(向量而不是标量)的概念。
实际上所有的线性代数都是在处理某种矩阵乘法,多花一些时间对这里提出的观点进行直观的理解是非常必要的。
除此之外,你还应该了解一些更高级别的矩阵乘法的基本性质:
- 矩阵乘法结合律: (AB)C=A(BC)
- 矩阵乘法分配律: A(B+C)=AB+AC
- 矩阵乘法一般是不可交换的; 也就是说,通常AB�=BA。 (例如,假设A∈Rm×n, B∈Rn×p,如果m和q不相等,矩阵乘积BA甚至不存在!)
如果您不熟悉这些性质,请花点时间自己验证它们。 例如,为了检查矩阵乘法的结合性,假设A∈Rm×n, B∈Rn×p,C∈Rp×q。 注意AB∈Rm×p,所以(AB)C∈Rm×q。 类似地,BC∈Rn×q,所以A(BC)∈Rm×q。 因此,所得矩阵的维度一致。 为了验证矩阵乘法的结合性,检查(AB)C的(i,j)元素是否等于A(BC)的(i,j)元素。 我们可以使用矩阵乘法的定义直接验证这一点:
((AB)C)ij=k=1∑p(AB)ikCkj=k=1∑p(l=1∑nAilBlk)Ckj=k=1∑p(l=1∑nAilBlkCkj)=l=1∑n(k=1∑pAilBlkCkj)=l=1∑nAil(k=1∑pBlkCkj)=l=1∑nAil(BC)lj=(A(BC))ij
这里,第一个和最后两个等式简单地使用了矩阵乘法的定义,第三个和第五个等式使用了标量乘法对加法的分配性质,第四个等式使用了标量加法的交换性和结合性。 这种通过简化为简单标量性质来证明矩阵性质的技术会经常出现,因此请确保您熟悉它。
在本节中,我们将介绍矩阵和向量的几种操作和性质。 希望其中的大部分内容都可以帮您复习,此笔记可以作为参考。
单位矩阵n表示,它是一个方阵,对角线的元素是 1,其余元素都是 0。可以这样表示:
Iij={10i=ji�=j.
对于所有矩阵A∈Rm×n,有:
AI=A=IA
注意,在某种意义上,上面单位矩阵的表示法是不明确的,因为它没有指定I的维数。通常,I的维数是从上下文推断出来的,以便使矩阵乘法成为可能。 例如,在上面的等式中,AI=A中的I是n×n矩阵,而A=IA中的I是m×m矩阵。
对角矩阵),其中:
Dij={di0i=ji�=j.
很明显,单位矩阵I=diag(1,1,⋯,1)。
矩阵的转置m ,其中的元素为:
(AT)ij=Aji.
事实上,我们在描述行向量时已经使用了转置,因为列向量的转置自然是行向量。
转置有以下性质,且很容易验证:
- (AT)T=A
- (AB)T=BTAT
- (A+B)T=AT+BT
如果A=AT,那么方阵A∈Rn×n是对称的。
- 元素满足aij=aji,∀i,j
- A=AT
- 对于任意方阵A,A+AT是对称的
- 对角矩阵都是对称矩阵
如果A=−AT,那么它就是反对称的。
- 元素满足aij=−aji,∀i,j,所以当i=j时,aij=0
-
A,B都为反对称矩阵,则A±B仍为反对称矩阵
- 若A为反对称矩阵,B为对称矩阵,则AB−BA为对称矩阵
很容易证明,对于任何矩阵A∈Rn×n,矩阵A+AT是对称的,矩阵A−AT是反对称的。
由此得出,任意方矩阵A∈Rn×n可以表示为对称矩阵和反对称矩阵的和,所以:
A=21(A+AT)+21(A−AT)
事实证明,对称矩阵在实践中用到很多,它们有很多很好的性质,我们很快就会看到它们。
通常将大小为n的所有对称矩阵的集合表示为Sn,因此A∈Sn意味着A是对称的n×n矩阵。
方矩阵A∈Rn×n的迹A,括号显然是隐含的),是矩阵中对角元素的总和:
trA=i=1∑nAii
如 CS229 讲义中所述,迹具有以下性质(如下所示):
- 对于矩阵A∈Rn×n,则:trA=trAT
- 对于矩阵A,B∈Rn×n,则:tr(A+B)=trA+trB
- 对于矩阵A∈Rn×n,t∈R,则:tr(tA)=ttrA.
- 对于矩阵 A, B,AB 为方阵, 则:trAB=trBA
- 对于矩阵 A, B, C, ABC为方阵(包含 1*1 的矩阵-标量), 则:trABC=trBCA=trCAB, 同理,更多矩阵的积也是有这个性质。
我们给出第四个性质的证明。假设A∈Rm×n和B∈Rn×m(因此AB∈Rm×m是方阵)。 观察到BA∈Rn×n也是一个方阵,因此对它们进行迹的运算是有意义的。 要证明trAB=trBA,注意:
trAB=i=1∑m(AB)ii=i=1∑m(j=1∑nAijBji)=i=1∑mj=1∑nAijBji=j=1∑ni=1∑mBjiAij=j=1∑n(i=1∑mBjiAij)=j=1∑n(BA)jj=trBA
这里,第一个和最后两个等式使用了迹运算符和矩阵乘法的定义。 重点在第四个等式,使用标量乘法的交换性来反转每个乘积中的项的顺序,以及标量加法的交换性和结合性来重新排列求和的顺序。
向量的范数范数,
∥x∥2=i=1∑nxi2
注意:∥x∥22=xTx
更正式地,范数是满足 4 个性质的函数(f:Rn→R):
- 对于所有的 x∈Rn, f(x)≥0(非负性).
- 当且仅当x=0 时,f(x)=0 (确定性).
- 对于所有x∈Rn,t∈R,则 f(tx)=∣t∣f(x) (正齐次性).
- 对于所有 x,y∈Rn, f(x+y)≤f(x)+f(y) (三角不等式)
其他范数的例子,如:ℓ1范数:
∥x∥1=i=1∑n∣xi∣
和ℓ∞范数:
∥x∥∞=imax∣xi∣
事实上,到目前为止所提出的所有三个范数都是ℓp范数族的例子,它们由实数p≥1参数化,并定义为:
∥x∥p=(i=1∑n∣xi∣p)1/p
也可以为矩阵定义范数,例如Frobenius范数:
∥A∥F=i=1∑mj=1∑nAij2=tr(ATA)
还有很多其他范数,但它们超出了这个复习材料的范围。
一个向量集合{x1,x2,⋯xn}⊂Rm, 如果没有向量可以表示为其余向量的线性组合,则称称该向量是线性无关的。 也就是说,如果:
xj=i=1,i�=j∑nαixi
存在α1,⋯αn∈R,那么向量x1,x2,⋯xn是线性相关的; 否则,向量是线性无关的。
另一种线性相关的描述(存在不全为零的数αi,使得等式成立):
i=1∑nαixi=0,∃αi�=0
例如,向量:
x1=⎣⎡123⎦⎤x2=⎣⎡415⎦⎤x3=⎣⎡2−3−1⎦⎤
是线性相关的,因为:x3=−2x1+x2。
矩阵A∈Rm×n的列秩A的最大行数。
对于任何矩阵A∈Rm×n,事实证明A的列秩等于A的行秩(尽管我们不会证明这一点),因此两个量统称为A的秩)表示。 以下是秩的一些基本性质:
- 对于 A∈Rm×n,rank(A)≤min(m,n),如果(A)=min(m,n),则: A 被称作满秩。
- 对于 A∈Rm×n, rank(A)=rank(AT)
- 对于 A∈Rm×n,B∈Rn×p ,rank(AB)≤min(rank(A),rank(B))
- 对于 A,B∈Rm×n,rank(A+B)≤rank(A)+rank(B)
方阵A∈Rn×n的逆1,并且是这样的唯一矩阵:
A−1A=I=AA−1
请注意,并非所有矩阵都具有逆。 例如,非方形矩阵根据定义没有逆(存在伪逆。
为了使方阵 A 具有逆A−1,则A必须是满秩。 我们很快就会发现,除了满秩之外,还有许多其它的充分必要条件。
以下是逆的性质; 假设A,B∈Rn×n,而且是非奇异的:
- (A−1)−1=A
- (AB)−1=B−1A−1
-
(A−1)T=(AT)−1因此,该矩阵通常表示为A−T。
作为如何使用逆的示例,考虑线性方程组,Ax=b,其中A∈Rn×n,x,b∈R, 如果A是非奇异的(即可逆的),那么x=A−1b。 (如果A∈Rm×n,不是方阵,这公式还有用吗? - 伪逆)
如果 xTy=0,则两个向量x,y∈Rn 是正交U是正交矩阵(注意在讨论向量与矩阵时的意义不一样,两个向量正交只需要内积为 0,正交矩阵是各列相互正交并且被归一化)。
它可以从正交性和正态性的定义中得出:
UTU=I=UUT
换句话说,正交矩阵的逆是其转置。 注意,如果U不是方阵, 即,U∈Rm×n,n<m ,但其列仍然是正交的,则UTU=I,但是UUT�=I。所以正交矩阵一定是方阵。
正交矩阵的另一个好的特性是在具有正交矩阵的向量上操作不会改变其欧几里德范数,即(i.e.):
∥Ux∥2=∥x∥2)
对于任何 x∈Rn , U∈Rn×n是正交矩阵。
张成}的所以线性组合:
span({x1,⋯xn})={v:v=i=1∑nαixi,αi∈R}
可以看到,如果{x1,⋯xn}是一组n个线性无关的向量,其中每个xi∈Rn,则span({x1,…xn})=Rn。 换句话说,任何向量v∈Rn都可以写成x1到xn的线性组合。
向量y∈Rm投影y。
我们将投影表示为Proj(y;{x1,…xn}),并且可以将其正式定义为:
Proj(y;{x1,…xn})=argminv∈span({x1,…,xn})∥y−v∥2
矩阵A∈Rm×n的值域A的列所张成的空间。换句话说,
R(A)={v∈Rm:v=Ax,x∈Rn}
做一些技术性的假设(即A是满秩且n<m),向量y∈Rm到A的值域的投影由下式给出:
Proj(y;A)=argminv∈R(A)∥v−y∥2=A(ATA)−1ATy
这个最后的方程应该看起来非常熟悉,因为它几乎与我们在课程中(我们将很快再次得出)得到的公式:与参数的最小二乘估计一样。
看一下投影的定义,显而易见,这实际上是我们在最小二乘问题中最小化的目标(除了范数的平方这里有点不一样,这不会影响找到最优解),所以这些问题自然是非常相关的。
当A只包含一列时,a∈Rm,这给出了向量投影到一条线上的特殊情况:
Proj(y;a)=aTaaaTy
一个矩阵A∈Rm×n的零空间A时等于 0 向量的集合,即:
N(A)={x∈Rn:Ax=0}
注意,R(A)中的向量的大小为m,而 N(A) 中的向量的大小为n,因此R(AT)和 N(A) 中的向量的大小均为Rn。 事实上,还有很多例子。 证明:
{w:w=u+v,u∈R(AT),v∈N(A)}=Rn and R(AT)∩N(A)={0}
换句话说,R(AT)和 N(A) 是不相交的子集,它们一起跨越Rn的整个空间。 这种类型的集合称为正交补⊥表示。
一个方阵A∈Rn×n的行列式A(有点像迹运算符,我们通常省略括号)。在代数上,我们可以写出 A 的行列式的明确公式,但不幸的是,这并不能直观地理解它的含义。 相反,我们将从提供行列式的几何解释开始,然后访问其一些特定的代数性质。
给定一个矩阵:
⎣⎡———a1Ta2T⋮anT———⎦⎤
考虑通过采用A行向量a1,…an∈Rn的所有可能线性组合形成的点S⊂Rn的集合,其中线性组合的系数都在 0 和 1 之间; 也就是说,集合S是span({a1,…an})受到系数α1,…αn的限制的线性组合,α1,⋯,αn满足0≤αi≤1,i=1,…,n。从形式上看,
S={v∈Rn:v=i=1∑nαiai where 0≤αi≤1,i=1,…,n}
事实证明,A的行列式的绝对值是对集合S的“体积”的度量。
比方说:一个2×2的矩阵(4):
A=[1332])
它的矩阵的行是:
a1=[13]a2=[32]
对应于这些行对应的集合S如图 1 所示。对于二维矩阵,S通常具有平行四边形的形状。 在我们的例子中,行列式的值是∣A∣=−7(可以使用本节后面显示的公式计算),因此平行四边形的面积为 7。(请自己验证!)
在三维中,集合S对应于一个称为平行六面体的对象(一个有倾斜边的三维框,这样每个面都有一个平行四边形)。行定义S的3×3矩阵 S 的行列式的绝对值给出了平行六面体的三维体积。在更高的维度中,集合S是一个称为n维平行体的对象。