本文是吴恩达《机器学习》视频笔记第15篇,对应第1周第15个视频。
“Linear Algebra review(optional)——Matrix-vector multiplication”
01
—
笔记
上一小节讲了矩阵的加法、矩阵和标量相乘;除此之外,矩阵还可以和矩阵相乘,本节讲稍微特殊一点的情况,即矩阵和向量相乘。
如下图,让一个3×2的矩阵和一个2维的列向量相乘,会得到什么样的结果呢?
其运算的规则如下图,
从上图可知,矩阵和向量的乘法规则比较有意思,一个矩阵和一个向量乘得到一个新的列向量。而结果列向量的维数就是矩阵的行数,等式左边的矩阵和向量的形状也比较有意思,矩阵的列数必须等于向量的维数,只有这样才能进行矩阵和向量的乘法。上面这个例子,一个3×2的矩阵和一个2×1的向量相乘,得到一个3×1的向量。
把上面的特例抽象成更一般的形式如下图:
一个m×n的矩阵乘一个n×1的向量,这里要注意矩阵的列数必须等于向量的行数才能相乘,得到的结果是一个m×1的向量。
而且我们还可以看出,在做矩阵和向量的乘法时,它们的次序也很重要。一个列向量和矩阵乘,矩阵必须在前面、列向量必须在后面。比如:
那么,我们费事巴拉地规定这种矩阵和向量的乘法有啥用呢?
我们还是以卖房子的事为例,假设我有四套房,每个房的面积不同,而房屋面积和房屋售价之间的线性模型我已经确定了。
如下图:
上图中,如果把左边四套房的面积代入右边的式子中,就可以得分别得到四套房的售价。如果我们用刚刚讲到的矩阵和向量的乘法表示上面这个事,写出来的式子会非常漂亮。如下图:
我们把模型中的两个参数揪出来组成一个列向量。然后呢,因为-40参数对应的是1,而0.25对应的是x,所以得到一个4×2的一个矩阵,而矩阵的第1列都是1. 就会得到上面图中下半部分的这样的一个矩阵与向量乘法的式子,再利用前面讲的矩阵与向量乘法的运算规则,可以用一个式子就表示出4套房子的售价的运算,厉害吧?
有些同学可能觉得这种写法多此一举,更加麻烦。要注意,现在我们基础的运算都是用计算机来实现的,如果用代码来写这样的过程就更加容易了,这样一件事用一行代码就搞定了,而且房子的套数增加不会影响程序的结构,非常方便。如果没有这样的规定,我们可能需要for循环在代码中实现这个事情,这就有点麻烦了。
下一讲将介绍更一般的矩阵和矩阵的乘法。