本文是过期煎饼《机器学习》的第15个视频笔记,对应第1周的第15个视频。

线性代数复习(可选)——矩阵向量乘法

最后一节讲了矩阵加法、矩阵乘法和标量乘法。此外,矩阵还可以乘以矩阵。这一节讲一个稍微特殊的情况,就是矩阵乘以向量。

00-1010如下图所示,将32矩阵乘以2维列向量,会得到什么样的结果?

线性代数行列式计算(线性代数矩阵的乘法运算)-冯金伟博客园

操作规则如下:

线性代数行列式计算(线性代数矩阵的乘法运算)-冯金伟博客园

从上图可以看出,矩阵和向量的乘法规则很有意思。矩阵和向量相乘得到一个新的列向量。列向量的维数就是矩阵的行数,矩阵的形状和方程左侧的向量也是有意义的。矩阵的列数必须等于向量的维数,这样矩阵和向量的乘法才能进行。在上面的例子中,一个3×2矩阵乘以一个2×1向量,得到一个3×1向量。

一个示例

将上述特例抽象成更一般的形式如下所示:

线性代数行列式计算(线性代数矩阵的乘法运算)-冯金伟博客园

一个mn矩阵乘以一个n1向量。这里需要注意的是,矩阵的列数必须等于要相乘的向量的行数,结果是一个m1的向量。

而且,我们还可以看到,矩阵和向量相乘时的顺序也很重要。列向量乘以矩阵,矩阵必须在前面,列向量必须在后面。例如:

线性代数行列式计算(线性代数矩阵的乘法运算)-冯金伟博客园

那么,矩阵和向量相乘有什么用呢?

我们以卖房子为例。假设我有四套房,每套房面积不同,我确定了房子面积和房子售价之间的线性模型。

下图:

线性代数行列式计算(线性代数矩阵的乘法运算)-冯金伟博客园

上图中,如果把左边四套房的面积代入右边的公式,就可以分别得到四套房的价格。如果用刚才提到的矩阵和向量的乘法来表达上面的事情,写出来的公式会很漂亮。下图:

线性代数行列式计算(线性代数矩阵的乘法运算)-冯金伟博客园

我们拉出模型中的两个参数,形成一个列向量。然后,因为-40参数对应1,0.25对应X,我们得到一个42的矩阵,矩阵的第一列全是1。上图下半部分我们会得到这样一个矩阵和向量相乘的公式,然后我们就可以用前面提到的矩阵和向量相乘的运算规则,用一个公式来表示四套房子卖价的计算,是不是很牛逼?

有些学生可能会觉得这种写法多余,比较麻烦。需要注意的是,现在我们的基本操作都是由计算机实现的,用代码写这样的过程更容易,这样一行代码就可以完成这样的事情,房子数量的增加也不会影响程序的结构,非常方便。如果没有这样的规则,我们可能需要for循环在代码中实现这一点,这有点麻烦。

下节课将介绍更一般的矩阵和矩阵乘法。