专栏名称: 算法与数学之美
从生活中挖掘数学之美,在实践中体验算法之奇,魅力旅程,从此开始!
目录
相关文章推荐
九章算法  ·  Intel面临破产危机!裁员50%断尾求生! ·  19 小时前  
算法爱好者  ·  董事长砍死 ... ·  昨天  
九章算法  ·  「九点热评」Intel新任CEO宣布裁员50%! ·  2 天前  
九章算法  ·  「九点热评」Meta将被裁员工列入黑名单! ·  3 天前  
51好读  ›  专栏  ›  算法与数学之美

斯坦福大学CS224d基础:线性代数知识

算法与数学之美  · 公众号  · 算法  · 2016-12-06 22:33

正文

作者:Zico Kolter

出处: http://blog.csdn.net/longxinchen_ml/article/details/51629328

1 基本概念和符号

线性代数可以对一组线性方程进行简洁地表示和运算。例如,对于这个方程组 :

这里有两个方程和两个变量,如果你学过高中代数的话,你肯定知道,可以为x1 和x2找到一组唯一的解 (除非方程可以进一步简化,例如,如果第二个方程只是第一个方程的倍数形式。但是显然上面的例子不可简化,是有唯一解的)。在矩阵表达中,我们可以简洁的写作:

其中:

很快我们将会看到,咱们把方程表示成这种形式,在分析线性方程方面有很多优势 ( 包括明显地节省空间 )

1.1基本符号

以下是我们要使用符号 :

  • 符号 A ∈ R m×n 表示一个m n 列的矩阵,并且矩阵 A中 的所有元素都是实数。

  • 符号 x ∈ R n 表示一个 含有n个元素的向量。通常,我们把 n 维向量看成是一个 n 行1列矩阵,即列向量。如果我们想表示一个行向量( 1 n 列矩阵),我们通常写作 x T ( x T 表示 x 的转置,后面会解释它的定义)。

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

  • 我们用 a ij (或 A ij ,A i,j ,等) 表示第 i 行第 j 列的元素:

  • 我们用 a j A : ,j 表示A矩阵的第 j 列元素:

  • 我们用 a T i A i,: 表示矩阵的第 i 行元素 :

  • 请注意,这些定义都是不严格的(例如, a 1 a 1 T 在前面的定义中是两个不同向量)。通常使用中,符号的含义应该是可以明显看出来的。


2 矩阵乘法

矩阵 A ∈ R m × n B ∈ R n × p 的乘积为矩阵 :

其中:

.

请注意,矩阵 A 的列数应该与矩阵 B 的行数相等,这样才存在矩阵的乘积。有很多种方式可以帮助我们理解矩阵乘法,这里我们将通过一些例子开始学习。

2.1 向量的乘积

给定两个向量x,y ∈ R n ,那么x T y的值 ,我们称之为向量的 内积 点积。它 是一个由下式得到的实数:

.

可以发现,内积实际上是矩阵乘法的一个特例。通常情况下x T y = y T x。

对于向量x ∈ R m , y ∈ R n (大小不必相同),xy T ∈ R m×n 称为向量的 外积 。外积是一个矩阵,其中中的每个元素,都可以由 得到,也就是说,

.

我们举个例子说明外积有什么用。令 1 ∈ R n 表示所有元素都是1的n维向量 ,然后将矩阵 A ∈ R m × n 的每一 列都用列向量 x ∈ R m 表示。使用外积,我们可以将A简洁的表示为:

.

2.2 矩阵-向量的乘积

对于一个矩阵 A ∈ R m × n 和向量 x ∈ R n ,他们的乘积为向量 y = Ax ∈ R m 。理解矩阵向量乘法的方式有很多种,我们一起来逐一看看。

以行的形式书写A,我们可以将其表示为Ax的形式:

.

也就是说 y i 行的元素等于A的第 i 行与x的内积 .

咱们换个角度,以列的形式表示A,我们可以看到:

.

换言之, y 是A列的线性组合,线性组合的系数就是x的元素

上面我们看到的是右乘一个列向量,那左乘一个行向量嘞?对于A ∈ R m×n ,x ∈ R m , y ∈ R n ,这个式子可以 写成 y T = x T A 。 向之前那样,我们有两种方式表达 y T ,这取决于表达A的方式是行还是列。 第一种情况是把A以列的形式表示:

这个式子说明y T i 列的元素等于向量 x 与A的第i列的内积。

我们也一样可以把 A表示成行的形式, 来说明向量 - 矩阵乘积。

我们可以看到 y T A的 行的线性组合,线性组合的系数是 x 的元素。


2.3 矩阵 - 矩阵乘积

基于以上知识,我们可以看到如之前所定义的矩阵 - 矩阵乘法 C=AB 有四种不同(但是等价)的理解方法。

首先,我们可以将矩阵 - 矩阵相乘看作一组 向量 - 向量乘积 。根据其概念,我们最好理解的方式是 矩阵C的 ( i,j ) 元素是A的 i 行与B的 j 列的内积。符号表达如下:

.

注意由于 A ∈ R m × n B ∈ R n × p a i ∈ R n b j ∈ R n 所以内积永远有意义。对矩阵乘法而言,以 A 的行和 B 的列表示是最"自然"的表示方法。当然,我们也可以以 A 的列和 B 的行的形式进行表示。表达方法是 AB 外积累加的形式,稍微复杂一点点。符号表达为:

.

换一种方式表达,AB的值等于对于所有的i,A的i列与B的i行的外积的和。因此,对于 a i ∈ R m b i ∈ R p ,外积a i b i T 的维度是m×p,它与 C 的维度是相同的。等式可能有点难理解,花点时间想想,我猜你肯定能明白。

第二种理解方式是,我们也可将向量 - 向量乘法看做一系列的 矩阵 - 向量 乘积。具体来说,如果我们将B 以列的形式表示,我们可以将 C 的每一列看做 A B 列的矩阵 - 向量乘积。符号表达为:

.

可以将 C i 列以矩阵 - 向量乘积(向量在右)的方式表示为 c i = Ab i . 这些矩阵 - 向量乘积可以用前面的两种观点解释。最后类比一下,我们以 A 的行形式表示,将 C 的行视为 A 的行与 C 的矩阵 - 向量乘积,符号表达为

.

在此,我们以矩阵 - 向量乘积(向量左乘)的形式表示了 C i 列,

只是一个矩阵乘法而已,这么细的分析看上去好像没有必要,尤其是当我们知道矩阵乘法定义后其实很容易可以计算得到结果。然而,几乎所有的线性代数内容都在处理某种类型的矩阵乘法,因此花一些时间去形成对这些结论的直观认识还是很有帮助的。

此外,知道一些更高层次的矩阵乘法的基本性质也是有好处的:

  • 结合律即( AB ) C = A ( BC )

  • 分配率即 A ( B + C ) = AB + AC

  • 注意哦,矩阵乘法没有交换律,即 AB BA .(例如,如果 A ∈ R m × n B ∈ R n × q ,矩阵的乘积 BA m q 不等时, BA 可能根本就不存在)

如果你对这些性质不熟悉,最好花些时间自己证明一下。例如,为了验证矩阵乘法的结合律, 对于 A ∈ R m × n B ∈ R n × p C ∈ R p × q ,注意 AB ∈ R m × p ( AB ) C ∈ R m × q 。类似的有 BC ∈ R n × q ,所以 A ( BC) ∈ R m×q 。因此可以得到维度相同的矩阵。为了说明矩阵乘法符合结合律,证明 (AB)C 第(i,j)个元素是否与 A(BC)的 (i,j)个元素相等就够了。我们可以直接运用矩阵乘法的定义进行证明。

上面的推导过程中,第一个和最后两个等式使用矩阵乘法的定义,第三和第五的等式使用标量乘法的分配率,第四个等式使用了标量加法的交换律和结合律。这种将运算简化成标量的特性以证明矩阵性质的方法会经常出现,你可以熟悉熟悉它们。


3 运算和性质

在这一节中,我们将介绍几种矩阵/向量的运算和性质。很希望这些内容可以帮助你回顾以前知识,这些笔记仅仅是作为上述问题的一个参考。


3.1 单位矩阵与对角矩阵

单位矩阵 ,记作I ∈ R n×n , 是一个 方阵,其对角线上的都是 1,其他元素都是0。即:

它具备 A ∈ R m × n 矩阵的所有性质

请注意,在某种意义上,标识矩阵的符号是有歧义的,因为它没有指定 I 的维度 。一般而言,从上下文中可以推断出 I的维度,这个维度使矩阵相乘成为可能。例如,在上面的等式AI = A中的I是n × n矩阵,而A = IA中 I是m × m矩阵。

对角矩阵 除了对角线元素之外其他元素都是0。可以记作 D = diag( d 1 ,d 2 ,...,d n ),其中:

显然, I = diag(1,1,... 1).


3.2 转置

矩阵的 转置 的是矩阵行和列的"翻转"。对于一个矩阵 A ∈ R m × n ,,它的转置, A T ∈ R n × m ,是一个 n × m 的矩阵,其元素为

我们实际上已经使用转置当描述行向量的转置,因为一个列向量的转置,自然是一个行向量。

下面是一些关于转置的性质,证明起来也不太难:


3.3 对称矩阵

如果一个方阵A∈ R n ×n 满足条件 A = A T ,那么它就是 对称 的。如果满足 A = − A T 则A是 反对称的 。很容易证明,任何矩阵 A ∈ R n × n A + A T 是对称的,而 A−A T 是反对称的 。因此,任何方阵 A ∈ R n ×n 可以表示为一个对称矩阵和反对称矩阵的和,因为:

右边的第一个矩阵是对称的,第二个是反对称的。在实践中,对称矩阵是很常用的,他们有诸多优秀的性质,我们将在以后进行说明。我们通常将所有大小为 n的 对称矩阵的集合表示为 S n A ∈ S n 则表示A是 n × n 的对称矩阵。


3.4 矩阵的迹

方阵 A ∈ R n × n ,记作 tr( A ), 或可以省略括号表示成 tr A, 是矩阵的对角线元素之和 :

正如cs 229讲义中所述 ,矩阵的迹具有以下性质(在此讲述完全是为了内容的完整性):

前三个性质比较容易证明,咱们一起来看看第4个性质。假设 A ∈ R m × n B ∈ R n × m ( 因此 AB ∈ R m × m 是个方阵 ) 。观察到 BA ∈ R n × n 也是一个方阵,所以他的迹是有意义的。为了证明 tr AB = tr BA ,注意到:

在这里,第一个和最后两个等式使用了迹运算和矩阵乘法的定义。第四个等式是最重要的部分,它使用了标量乘法的交换性来交换每个乘积中因式顺序,也使用了标量加法的交换律和结合律将求和过程重新排序。


3.5 范数

向量的 范数 是向量 " 长度 "的非正式度量 。例如,我们常用的欧氏或 ℓ2 范数。

注意 .

更正式的来讲,范数是满足以下 4 个特性的任何一个方程 f : R n → R:

  1. 对于任意x ∈ R n , f(x) ≥ 0 (非负性).

  2. 当且仅当x = 0 时,f(x) = 0(确定性).

  3. 对于任意x ∈ R n ,t∈ R,f(tx) = |t|f(x) (均匀性).

  4. 对于任意 x,y∈R n ,f(x + y)≤f( x ) + f ( y ) ( 三角不等性 ).

另一个范数的例子是 1 范数,

以及 范数,

事实上,这三个范数都是ℓ P 范数家族的的例子 ,它包含一个实参数 p≥1。ℓ P 范数定义为:

.

也可以定义矩阵A 的范数,如 Frobenius范数,

.

也存在许多其他的范数,但它们超出了这篇综述讨论的范围。

3.6 线性无关和秩

对于一组向量 {x 1 ,x 2 ,...x n } ∈ R m 如果没有向量可以表示为其余向量的线性组合,这组向量就是 (线性)无关 的。相反,如果一个向量属于一个集合,这个集合中的向量可以表示为其余的向量某个线性组合,那么就称其称为向量 (线性)相关 。也就是说,对于一些标量值 α 1 ,...,α n −1 ∈ R, 如果

我们说向量x 1 ,...,x n 是线性相关;否则,该向 量线性无关。例如,向量

是线性相关的,因为 x 3 = −2 x 1 + x 2 .

矩阵 A ∈ R m × n 列秩 是所有线性独立的列的最大子集的大小。由于某些术语的滥用,列秩通常指矩阵 A线性无关的列的数目。相似的,将A的行构成一个线性无关集, 行秩 是它行数的最大值。

对任意矩阵 A ∈ R m × n ,其列秩与行秩是相等的(虽然我们不打算证明),所以我们将两个相等的秩统称为 A 。秩的一些基本性质如下:


3.7 逆

矩阵 A ∈ R n × n ,写作 A −1 是一个矩阵,并且是唯一的。

A −1 A = I = AA −1 .

注意不是所有的矩 阵都有逆。例如非方阵,是没有逆的。然而,即便对于一些方阵,它仍有可能不存在逆。如果 A −1 存在,我们称矩阵 A 可逆 的或 非奇 的,如果不存在,则称矩阵 A 不可逆 奇异

如果一个方阵A有逆 A −1 ,它必须满秩。我们很快可以看到,除了满秩,矩阵可逆还有许多充分必要条件。

满足以下的性质的矩阵可逆;以下所有叙述都假设 A,B ∈ R n ×n 是非奇异的:

举一个矩阵的逆的应用实例。对于线性方程组Ax = b,其中 A ∈ R n × n ,并且 x,b ∈ R n .如果A是非奇异(即可逆), x = A −1 b (如果 A ∈ R m × n 是方阵呢?是否成立?)


3.8 正交矩阵

如果 x T y = 0, 则两个向量 x,y ∈ R n 正交 的。对于一个向量x ∈ R n ,如果 则是x 归一化 的。对于一个方阵 U ∈ R n × n ,如果所有列都是彼此正交和归一化的,(列就称为标准正交)则这个 方阵是正交的(注意在讨论向量或矩阵时,正交具有不同的含义)。

根据正交和归一化的定义可得:

U T U = I = UU T

换言之,一个正交矩阵的逆矩阵的是它的转置。注意,如果 U 不是方阵的,也就是说, U ∈ R m × n n , 但它的列仍然是正交的,则 U T U = I ,但 UU T I . 等。我们一般只使用正交这个术语来描述U为方阵的情形。

另一个正交矩阵的很好的属性是,向量与正交矩阵的运算将不会改变其欧氏范数,即对于任意 x ∈ R n ,正交的 U ∈ R n × n


3.9 矩阵的值域和零空间

一组向量{ x 1 ,x 2 ,...x n } 值域 { x 1 ,x 2 ,...x n }线性组合 的所有向量的集合。即

可以看出如 { x 1 ,...,x n } 是一组 n 个线性无关的向量,其中 x i ∈ R n ({ x 1 ,...x n }) 的值域= R n 。换句话说,任何向量 v ∈ R n 可以写成 x 1 x n 的线性组合。向量 y ∈ R m 在值域 { x 1 ,...,x n } 上的 投影 (假定 x i ∈ R m ) 是向量 v ∈ span({ x 1 ,...x n }),则通过比较其欧式范数 v 与 y无限 接近。这个投影记作Proj( Y { x1 n} ),可以定义它为,

A ∈ R m × n 的值域 (有时也被称为列空间),表示为 R( A ) ,就是 A 的值域。换言之,

R( A ) = { v ∈ R m : v = Ax,x ∈ R n } .

我们假设 A 满秩且 n ,向量y ∈ R m 在A值域上面的投影可以表示为

这最后一个方程应该看起来非常熟悉,因为它几乎是我们在课上用于参数的最小二乘估计公式(并且我们可以快速再次推导出来)几乎相同的。看一下投影的定义,你会发现这其实与我们在解决最小二乘法问题时进行最小化的目的是相同的(除了范数是一个平方,这并不影响求得最优的点),所以这些问题是有自然联系的。当 A 仅含有1个单独的列 a ∈ R m ,则出现了向量在一条直线上投影的特殊情况。

矩阵 A ∈ R m × n 零空间 ,记为







请到「今天看啥」查看全文