分享

线性代数:“矩阵”到底怎么用?

 吴敬锐 2019-12-11

如果你问一个大学老师,什么是高等数学的基础课?他可能会和你说,微积分和线性代数。对于一个非理工专业的大学生来讲,如果在大学里只学两门数学课,恐怕就是这两门了。微积分主要是训练我们的思维方式,而线性代数,大家在工作和生活中真的用得上。

关于线性代数,我们其实已经讲了两讲了,只是我没有用这个名词罢了。我们讲的都是向量代数,它其实就是线性代数中最基本的内容。在线性代数中,用到的最多的概念是矩阵。矩阵是怎样一回事,它有什么用途呢?让我们先来看一个具体的矩阵:

线性代数:“矩阵”到底怎么用?

从这个矩阵中你可以看出,它无非就是把数字按照横竖排起来,每一行、每一列数字的数量都相等。比如上面一个矩阵有3行,每行有4个数,我们称这种矩阵为3x4的矩阵。

了解了矩阵的形态,你可能紧接着就有一个问题:把数字这么横平竖直地排列起来有什么用?事实上,把数字这么横平竖直地排列不是原因,而是结果,矩阵产生的原因是向量的扩展。

我们在前面讲了,向量是横着的一排数字,每一个数字代表一个维度的分量。比如一个企业在招聘员工时把所有考核的项目总结为N个维度。每一个岗位对各种能力的侧重点就是一个N维向量,比如办公室部门对人的要求是能力、沟通、协作、健康四个维度,写成V1=(3,2,5,0)。

我们上一讲讲了,可以用它来算算和某个候选人的相似性。当然公司不仅仅有办公室一个部门,还有比如销售部门、研发部门,等等。每一个部门可能又有不同的岗位,每一个岗位的要求就是一个向量。于是,我们就会有V2,V3,V4,……,VM。

这么多向量如果把它们放在一起,怎么表示比较好呢?显然最直观的方式,就是把它们一行行排起来,这形成了一个有M行N列的矩阵。这就是矩阵的由来。

今天“矩阵”这个词无论是在数学上还是生活中都经常用,但是它在数学史上出现的时间非常晚,直到1850年才由英国数学家西尔维斯特(James Joseph Sylvester)发明,而构成它的向量其实出现的时间也很晚,是1835年才被提出来的。

当然,你如果读一些文章会提到早在3世纪的时候,中国数学家就发明了矩阵的原型,类似的话日本人、意大利人和阿拉伯人也都这么说,但是那些所谓的发明和今天的数学发展没有半点关系。

因为对于一个矩阵,不仅仅是把数字一行一列地排起来,更重要的是每一行、每一列需要能够被赋予特殊的含义,而且需要发明出一系列相应的计算,让这个工具能够解决很多问题。西尔维斯特所提出的矩阵则满足了这些要求。关于矩阵的运算有很多,我们接下来就介绍两种最简单的,即加法和乘法。

首先讲讲矩阵的加法。

我们可以把一个M行N列,或者说MxN的矩阵想象成一个公司的M个岗位,每个岗位有N种技能。我们假设这个公司是一家跨国公司,它会对人员有一个总体上的要求,但是对于不同国家的员工在要求上也会有不同的调整,比如对英语水平的要求。

我们把总体要求用矩阵A来表示,某个国家相应的调整用矩阵B来表示。那么矩阵A+B,就是在某个国家具体的要求。为了直观起见,我们就假设矩阵A是上面那个3x4的。矩阵B也需要是一个3x4的矩阵。我们随便写一个B矩阵,比如像下图这样:

线性代数:“矩阵”到底怎么用?

当我们进行A+B时,只要把两个矩阵中相应位置的元素逐一相加即可,也就是说矩阵A加矩阵B,会得到下面的结果。

线性代数:“矩阵”到底怎么用?

今天在生活和工作中,经常需要有相对固定的大的原则,以及针对各种情况的小的变动,这时候就需要有一个相对固定的核心,再加上一个增量,而不是复制一大堆,拷贝以后逐一修改。

相比矩阵加法,用途更大的可能是矩阵乘法。我们先来说说一个矩阵和一个向量是如何相乘,然后再扩展到矩阵和矩阵的乘法。

我们来看一个实际的例子,假如第一家投资银行的股票基金、债券基金和高风险基金的回报分别是:7%、3%和10%,第二家投资银行三类金融产品的回报分别是8%、2%、9%。当然,这些都是历史数据,只能作参考。

你现在有1万元要投资,你是找第一家投行,还是第二家投行给你管钱呢?我们不妨把这两组数放到下面这个矩阵中:

线性代数:“矩阵”到底怎么用?

然后我们根据自己对各种投资的喜爱和对风险的承受能力,分别测算在不同情况下的回报是多少。

比如在第一种情况下,1万元按照上述投资类型的分配方式如下:7000、2000、1000。因为这1万元分到了三个维度中,我们把它写成一个向量,不过为了等会儿方便做乘法,我们将向量竖着写:

线性代数:“矩阵”到底怎么用?

这时,如果把钱交给这两家公司,总的回报就是矩阵R和P1相乘的结果,我先把结果给大家看看,然后再说说是如何计算的。

线性代数:“矩阵”到底怎么用?

我们可以看到,第二家投行带来的投资回报更高。那么这两个数是怎么计算的呢?抛开矩阵和向量,这个问题其实也能算清楚。

就以第一家投行为例,7000元7%的回报是490元,2000元3%的回报是60元,1000元10%的回报是100元,加起来是650元。我们把这个式子列一下:

7%x7000+3%x2000+10%x1000=650

你如果注意一下上面的矩阵和向量,你会发现这就是矩阵第一行每一个数字,分别和向量的每一个数字相乘之后再相加。为了清楚起见,我把矩阵和向量中参与运算的数字用红颜色标了出来:

线性代数:“矩阵”到底怎么用?

类似的,第二个结果690,就是矩阵第二行和向量各个元素相乘后再相加的结果。

当然,可能有朋友会说,这不就是算术中加权相乘后的连加吗,为什么要搞出矩阵这样一个工具?如果只有三个维度,可能不需要用矩阵,但是如果是1万维、1百万维,人通常就想不清楚了,矩阵就非常直观,使用它既方便又不容易出错。

我们可以这样理解矩阵和向量相乘,它是批处理解决问题的思路,而过去我们学的乘法和连加是单个解决问题的思路。

接下来我们再看另一种情况,假如你这时对风险的承受力比较强,愿意将更多的钱放在高风险、高回报的基金中。比如你按照3000、2000、5000来分配投资,我们把这个向量称为P2,这时哪家的回报更高呢?

我们再用矩阵和向量的乘法做一次,得到下面的结果。

线性代数:“矩阵”到底怎么用?

你可以看出,这时第一家投行给的回报更高了。当然,你还可以尝试其它的投资方式,对应的向量就是P3,P4,P5……

今天,你如果带着一大笔钱找到高盛或者摩根士丹利,问它们会打算怎么帮你投资,它们为你做的第一件事情就是根据历史数据,帮你推算出在不同的投资配比情况下,回报是多少,也就是做我们刚才做的事情。因此,如果你想在投行找工作,用到最多的数学工具就是线性代数中的矩阵运算。

下面,我们把P1,P2, P3……这些向量一字排开,其实就得到一个矩阵P。我们可以写成下面的形式。

线性代数:“矩阵”到底怎么用?

注意,矩阵P的每一列,就是一个个向量P1,P2, P3……

接下来,我们就可以定义矩阵R和矩阵P的乘法了。我们把矩阵R和P中的第一列,也就是向量P1相乘的结果,放在结果矩阵的第一列,把矩阵R和P中第二列向量P2相乘的结果放在结果矩阵的第二列,以此类推。

我们就得到了两个矩阵相乘的结果,它也是一个矩阵:

线性代数:“矩阵”到底怎么用?

在图中,我特意标红了第一个矩阵的第二行,和第二个矩阵的第二列,以及结果矩阵第二行、第二列的数值,因为红色的行和红色的列,元素两两相乘再相加后,就是结果矩阵中的那个结果。对于一般的情况,第一个矩阵中的第i行,和第二个矩阵的第j列,相乘相加,结果就是结果矩阵中第i行、第j列位置的数值。

那么从矩阵和向量相乘,到矩阵相乘有什么好处呢?前一种情形我们可以理解为小批量处理,后一种则是大批量处理。

要点总结:

我们讲了矩阵这个人们虚构出来的一种工具,利用这种工具,我们能够让计算从单个的,变成批处理的。矩阵有很多用途,我们只讲了一点点,从它的加法,我们可以理解核心矩阵和增量的关系;从它的乘法,我们看到了它在金融中的应用。

要再次强调的是,将单个计算变成大批量处理,这是我们今天在信息时代要有的思维方式。

在结束本模块之前,我们要回答最后一个问题。为什么讨论矩阵运算这样问题的数学分支被称为线性代数?我们回顾一下矩阵和向量的乘法就知道答案了。

在运算时,左边的那个矩阵里的数字可以被看成是一组常数系数,右边竖着的向量中的数字则是未知数变量,这样矩阵和向量的乘法就变成了一组线性方程。如果把它们画在空间中,就是直线、平面或者立方体,都是线性的,不会有任何曲线。因此涉及到这一类的代数运算被称为线性代数。

当然,自然界中很多数学问题并非线性的,但是我们在解决它们的时候经常将问题近似为线性的问题,这样可以利用很多线性代数的工具来解决。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多