首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据科学中的数学基础:矩阵和向量空间

毫无疑问,数学是数据科学的灵魂。不管是机器学习或是统计学模型,从本质上讲都是数学模型,因此,扎实的数学知识对于理解模型假设和分析模型结果至关重要。可能很多读者会觉得“数学”这两个字就代表了枯燥和难以理解,事实也许有时如此,但正如“计算机之父”冯·诺依曼说的那样,我们并不理解数学,只是越来越习惯。在数据科学领域,数据和模型的存在形式都是矩阵,而后者则直观地表示为向量空间里的点。

首先通过一个简单例子来感性认识一下标量(scalar)、向量(vector)和矩阵(matrix)这 3 个数学概念。

假设我们设计了一款网络对战游戏,在游戏中,玩家选择自己的英雄与其他玩家对战。每个英雄的能力由 3 种属性描述:智力、敏捷和力量。为了方便表示,不妨用 i 表示智力、a 表示敏捷、s 表示力量。

对于英雄 A,它的设定是智力型英雄,智力被设定为 10,敏捷为 6 以及力量为 2,用数学式子表示为 i = 10, a = 6, s = 2。换句话说,我们用数字表表示各个属性具体的值,这在数学上就叫作标量,标量其实就是数字。

将这 3 个属性按照智力、敏捷和力量的顺序写在一起,就可以表示一个英雄的能力了。

比如用A = (10, 6, 2)表示英雄 A。在数学上A被称为向量,正确地说应该是行向量。直观上, 行向量是多个数字(标量)排成一行。与之类似的是列向量,即多个数字排成一列。

现在我们设计了另外 3 个英雄,分别为 B、C 和  D,向量表示为B = (3, 4, 10)、C = (5, 10, 4)和D = (6, 9, 5)。将这 4 个英雄的向量排列成矩形阵列,即每一行表示一个英雄,得到图 3-1 所示的矩阵,而这个矩阵就可以表示所有 4 个英雄的属性数据。

图3-1

用学术语言来定义矩阵:一个

的矩阵,是一个由

列元素排列成的矩形阵列。比如公式(3-1)表示的就是一个

的矩阵。从数学上来讲,标量和向量其实是比较特殊的矩阵。标量可以被看作一个

的矩阵,而包含

个数字行向量(也称为

维行向量)可以看作一个

的矩阵,而包含k个数字的列向量可以被认为是一个

的矩阵。

在数学上,通常如公式(3-1)所示表示向量和矩阵,其中

表示标量,也就是一个实数,

表示一个m维的行向量,

表示

的矩阵,

表示所有取值为实数的

矩阵全体。本书后面的章节也采用相同的记号。需要注意的是,列向量可以表示为行向量的转置,因此没有专门记号来表示列向量。转置运算的细节请参考 3.1.3 节。

3.1.2    特殊矩阵

在讨论矩阵运算之前,先来看一类特殊的矩阵:方阵(squared matrix)。它是行数等于列数的矩阵。从形状上来看,它就像一个正方形,因此被称为方阵。有 3 种方阵需要特别注意。

•   单位矩阵(identity matrix),矩阵的对角线元素等于 1,其他元素等于 0,记为

•   对角矩阵(diagonal  matrix),除矩阵的对角线元素外,其他元素都等于  0,记为

。不难注意到,单位矩阵是一种特殊的对角矩阵。

•   三角矩阵(triangular matrix),它可以细分为上三角矩阵和下三角矩阵两种。上三角矩阵的对角线下方的元素全部为零,记为

;下三角矩阵的对角线上方的元素全部为零,记为

。不难发现,对角矩阵是一种特殊的三角矩阵。

3.1.3 矩阵运算

为了能像使用数字一样使用矩阵,我们为它定义了“加减乘除”四种运算。

1.矩阵的加减法

(1)与数字的加减法不同,并不是任何两个矩阵都可以进行加减运算,要求矩阵的形状是一样的,也就是它们的行数和列数都相等。假设矩阵

同为

的矩阵,则它们的和差仍为

的矩阵,具体的加减法定义如下:

(2)根据上面的定义,不难得出,矩阵的加法也满足结合律和交换律。假设

也是一个

的矩阵,可以得到如下的公式 :

2.矩阵的乘法

(1)矩阵与数字的乘法。与数字的乘法类似,任意一个实数都能和任意一个矩阵相乘。假设

为实数,则它与矩阵

的乘法定义如下:

(2)矩阵与矩阵的乘法。它只有在第一个矩阵的列数和第二个矩阵的行数相同时才有定义。假设

的矩阵,

的矩阵,则它们之间的乘积为一个

的矩阵,记为

,具体的定义如下:

举个具体的例子:

为4 × 2的矩阵,

为2 × 3的矩阵,它们之间的乘法计算过程如图3-2a 所示。

不难证明,矩阵的乘法满足结合律, 即

,以及分配律, 即

,但不满足交换律(在通常情况下,两个矩阵交换顺序后,乘法运算的要求都不再满足)。这一点与数字的乘法有很大的不同。另外,任何一个矩阵与单位矩阵的乘积(前提条件是矩阵乘法的要求被满足)等于其本身,比如

。因此单位矩阵可以被看作矩阵中的 1。

在实际中,线性模型常常用矩阵乘法来表示。举个简单的例子,假设线性模型为:

(3)矩阵的 Hadamard 乘积(Hadamard product 或者element-wise multiplication)。假设矩阵

同为

的矩阵,则它们之间的Hadamard 乘积仍为

的矩阵,记为

计算过程如图3-2b 所示,具体的公式如下:

矩阵的Hadamard 乘积在数学上并不太常用,但在编程时,我们常用它来同时计算多组数据的乘积。

3.矩阵的除法:逆矩阵(inverse matrix)

(1)对矩阵求逆是专门针对方阵的,即行数等于列数的矩阵。假设

是一个

的矩阵,若存在一个

的矩阵

使得它们的乘积等于

阶单位矩阵,如公式(3-11)所示,则称矩阵

为矩阵

的逆矩阵,记为

,而

则被称为可逆矩阵。

(2)数学上可以证明,一个矩阵的逆矩阵如果存在,则逆矩阵唯一。所以对于方阵

,如果存在另一个方阵

,使得

,则一定有

,且

(3)关于逆矩阵,有如下几个常用的公式:

4.矩阵的转置(transpose)

(1)形象点理解,矩阵的转置就是将矩阵沿着对角线对调一下。假设

的矩阵,则它的转置为

的矩阵,记为

。具体的公式如下:

(2)关于矩阵的转置,有如下几个常用的公式,其中假设

为实数,而且公式中涉及的矩阵乘法和逆矩阵都是有意义的。

3.1.4 向量空间

向量空间(vector space)是一个比较深刻的数学概念。为了便于理解,我们抛开复杂的公理化定义,从直观上来理解向量空间的相关知识。

我们生活的世界在空间上是一个三维空间,在这个现实世界里建立长宽高坐标系,也就是

坐标系。这个现实中的每一个点都能被表示成一个三维行向量,如图3-3a 所示。

从数学上来看,任意一个三维的行向量

,可以被写为

。用学术一些的话来表述就是任意一个三维行向量可以被

这3 个行向量线性表示,而且反过来,

这3 个行向量的任意线性组合都对应着现实空间中的某一点。像这样的空间被称为向量空间,而

被称为向量空间的基。不难看出,其实

分别对应着

轴、

轴和

轴。

针对三维向量空间,定义行向量的内积(dot product)。假设行向量

和行向量

,它们之间的内积定义为:

其实

之间的内积可以表达为矩阵乘法,即

. 数学上可以证明公式(3-16),其中

为点

到原点的距离

的定义类似;

为向量

之间的夹脚,如图3-3b 所示。注意到当

到原点的距离等于1 时,

就是向量

在向量 B 方向上投影的长度:

有了内积定义后,就可以更加数理化地定义向量间的正交关系(对应到空间上,就是两个向量相互垂直)。若两个行向量

的内积等于0,则称它们是正交的。容易得到,上面提到的基

是相互正交的,被称为正交基。

既然行向量可以被看作三维空间里的一个点,那么

的矩阵

可以被看作三维空间里点的集合。现在我们想在这个空间里找到一条直线,使得矩阵中的点在这条直线的投影之和最长。结合内积的定义,假设

为行向量,将上面的目标表示为数学公式,其中向量

是长度为1 的向量,表示直线的方向。

为了解决这个问题,需要引入另一个很复杂的数学概念:特征向量(eigenvector)和特征值(eigenvalue)。假设

是一个三阶对称矩阵,即

(注意到公式(3-17)里,

就是一个三阶对称矩阵)。满足下面条件的非零行向量

被称为

的特征向量,对应的

被称为特征值。

数学上可以证明,对于三阶的对称矩阵,存在3 个相互正交的特征向量,而它们可以组成三维空间的一组基。有了上面的结论,公式(3-17)定义的问题就很好解决了:

就是最大特征值对应的特征向量。

上面有关向量空间、内积、向量间夹脚以及正交的定义可以推广到任意维度的空间。有关特征向量、特征值的定义和结论也如此。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181019B1O55300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券