4 矩阵和向量(线性代数复习)
4.1 什么是矩阵?什么是向量?
这一小节我们将介绍举证和向量的相关知识。
矩阵是指由数字组成的矩形阵列,并写在方括号中间。我们还需要知道的另一件事情是矩阵的维度应该是矩阵的行数乘以矩阵的列数。例如图中的第一个矩阵是一个4 X 2矩阵,第二个矩阵是2 X 3矩阵,有时候写法会有些不同,例如写成了R4 X 2,如果你看到R4 X 2或者R2 X 3,一般都是指一个特定维度的矩阵。
文章图片
接下来我们看看如何表达矩阵的某个特定元素,这里是说的矩阵元素,而不是矩阵,标准的表达式,如下图所示,如果A是这个矩阵,A的下标i,j,Ai,j表示的是第i行第j列的元素。矩阵提供了一种很好的方式,让你快速整理索引和访问大量的数据。
文章图片
接下来谈谈什么是向量???一个向量是一个特殊的矩阵,向量是只有一列的矩阵,一个n X 1的矩阵,n代表矩阵行数,1代表只有1列。如下图所示。
我们将其称为一个4维向量,是一个含有四个元素的向量。可以使用R4表示西面这个四维向量。使用yi表示向量y的第i个元素。
文章图片
有两种方法来表达某个向量中的某个索引,如下图所示。以1开始或者以0开始。在以后的线性代数问题中,使用1为索引,机器学习的问题使用0位索引。通常使用大写字母表示矩阵,小写字母表示元素。
文章图片
4.2 矩阵的加法、减法、乘法
这一小节我们将讨论矩阵的加法与减法,并且讨论数与矩阵的乘法,也就是标量(标量就是一个数字)乘法。
矩阵加法就是矩阵相互对应的各个位置分别相加,可以发现,只有两个相同维度的矩阵才可以相加。
文章图片
矩阵乘法,矩阵与标量的乘法就是,标量与矩阵中的每一个数都相乘。
我们可以把这些运算结合起来。
下面我们将介绍矩阵与矩阵的乘法。两个矩阵相乘,前一个矩阵的列数必须要与后一个矩阵的行数相同。关于矩阵的乘法,请自己寻找线性代数的相关书籍进行学习,这里就不在赘述了。记住一点,一个m X n维的矩阵乘上一个n X k维的矩阵,结果将是一个m x k维的矩阵。矩阵的乘法其实就是将矩阵的第一个举矩阵的每一行与第二个矩阵对应的每一列对应位置的元素相乘然后加在一起。
最后,我们给出一个技巧,假设我有四间房子,这些房子大小如下图所示。我有一个假设函数,用于预测房子的价格,我们需要计算每一个房子大小对应的h(x)的值,即预测的房价,有一种简单的方法可以帮助我们同时计算时间房子的预测价格,我们可以利用矩阵相乘的思想来进行计算。如下图所示,构造两个矩阵,第一个矩阵的第一列全是1,第二个矩阵是两个系数构成的向量。
文章图片
这个例子的一个小技巧是,当你在程序中实现这个的时候,你有了假设函数,你想要使用假设函数来预测你的房子的价格,完成这些工作,你只需要一行代码就搞定了(prediction=matrix * parameters),使用矩阵向量相乘库就可以了。事实表明,当你不只有四间房子需要进行预测时,使用矩阵相乘的方法会方便很多,像下图左边这样写代码,你不需要编写太多的代码,只需要一行代码就够了,这样做,效率也会高很多。我们后面讨论向量化问题的时候,将更加详细的讨论这个问题。
文章图片
4.3 矩阵与矩阵的乘法
矩阵矩阵的乘法,在线性回归问题中用于解决参数计算的问题,这种方法会将θ0和θ1等参数放在一起来进行计算,也就是说我们不需要一个迭代的梯度下降算法,当我们谈到这个算法的时候,就会发现矩阵与矩阵之间的乘法运算,是你必须理解的关键步骤之一。矩阵与矩阵的乘法上一节简单介绍过了,请参考相关线性代数书籍,不再赘述。
下面介绍一个小的trick,现在有多个假设函数1,2,3,可以构造如下图所示的矩阵的乘法,计算每一个房子在不同的假设函数上的预测值。
文章图片
矩阵乘法运算非常的实用,你可以通过矩阵乘法运算,将大量的运算打包到一次矩阵乘法运算中去,在使用这个方法的时候你要注意。
下面介绍一些矩阵乘法的特性,在矩阵乘法中,如果使用数(标量),矩阵乘法是可以交换的。但是如果是两个矩阵相乘,是不满足交换律的。不能随随便便进行交换。
文章图片
矩阵的乘法满足结合律,如下图所示。
文章图片
4.4 矩阵的逆运算、转置运算
这一节我们将介绍一些特殊的矩阵运算,也就是矩阵的逆运算以及转置运算。矩阵的逆的概念如下,参考下图。
文章图片
如果A是一个m x m的矩阵,如果它有逆矩阵,那么A乘A的逆等于A的逆乘以A等于单位阵。只有m x m的矩阵才有逆矩阵,我们将m x m的矩阵称为方阵,称之为方阵是因为它的行数和列数相等。实际上,只有方阵才有逆矩阵。逆矩阵可以自己用笔计算出来,但是现在没有人这么做了,现在有许多的软件能够很容易的求出矩阵的逆矩阵。Octave软件就可以,pinv(A)就可以求出A的逆矩阵。一个矩阵中的所有元素都是0,它是没有逆矩阵的。
对于某种机器学习算法来讲,可能碰到逆矩阵的意义的讨论,这里不会深入介绍,后面遇到了会进行介绍。
矩阵的转置参考下图。其实就是将对应的行变为对应的列。例如第一行变为第一列,第二行变为第二列。
具体的概念如下:如果A是一个m x n的矩阵,那么它的转置矩阵是一个n x m的矩阵,矩阵与矩阵的转置的维度是相反的,其中B i,j =A j,i。如下图所示。
文章图片
【4 向量与矩阵(线性代数复习)】现在,我相信你已经了解了矩阵的加法、矩阵的减法、矩阵的乘法以及矩阵的逆运算、转置运算了,这也是我们机器学习中需要用到的线性代数的相关知识。接下来我们将介绍非常重要的线性回归,你将看到更多的特征、更多的数据以及训练样本。在学习了线性回归之后,还将运用这些工具推导更加强大的算法。