矩阵和向量(Matries and vectors)
矩阵:由数字组成的矩形阵列并写在方括号内,例如,而矩阵的维数等于行数乘以列数,所以像我们提到的这个矩阵就可以成为一个3×3的矩阵,也能写作
。
如果想要表达矩阵的某一项,我们会用的形式,例如
,则
表示矩阵
第一行第三列对应的那一项,注意所写的数字不能超过矩阵本身的行数和列数。
向量:是只有一列的矩阵,例如,类似的,我们用
的形式来表示向量的某一项。一个全是未知项的向量可以写成
,有时第一项也会从
开始。
矩阵的加法和标量乘法(Matries' addition and scalar multiplication)
矩阵的加减法比较简单,就是直接将两个矩阵对应的每一项加在一起,例如,注意,只有相同维度的矩阵才能做加减法。
矩阵与标量相乘或相除,只需要将矩阵的每一项都与标量相乘或相除即可,例如,在这种运算中,标量与矩阵相乘除或矩阵与标量相乘除的结果是一样的。
矩阵向量的乘法(Matrix-vector multiplication)
如果一个矩阵要和一个向量相乘,则矩阵的列数要等于向量的行数,即与
,且结果一定是
,例如
。
矩阵与向量相乘有时可以让你在一些计算过程中减少你的计算量,假设你有四个房子的大小2104,1416,1534,852,他们都符合,
代表预测的房价,那么我们可以把这些构造成一个矩阵乘以向量的计算,即
。
矩阵之间的乘法(Matrix-matrix multiplication)
矩阵与矩阵相乘,实际上可以将其拆成矩阵与一个个向量相乘,例如相乘,我们可以先计算
,再算
,再并在一起得到
。
注意,前一个矩阵的列数要与后一个矩阵的行数相等,也就是,如果是两个相同维数的矩阵相乘,如果调换顺序,这是一个新的运算,结果也与之前不一样。
矩阵乘法特征(Matrix multiplication properties)
尽管矩阵乘法不符合交换律,但其仍然符合交换律,即(A×B)×C = A×(B×C)
矩阵空间中有一种特殊的矩阵,类比于实数中的1,这类矩阵内沿对角线上的数字全是1,其余全是0,我们称其为单位矩阵,一般用表示。例如
,
分别是2×2,3×3的单位矩阵。对于任意矩阵
,都有
,注意这里的单位矩阵的维度要按照乘法定律去改变。
逆和转置(Inverse and transpose)
如果一个矩阵的维数是m×m,且它存在逆矩阵,则有,注意,只有行数与列数相等的矩阵才有逆矩阵,我们将这类行数与列数都相同的矩阵成为方阵矩阵。
如果想要在python中求矩阵的逆,直接用numpy.linalg.inv函数求即可,如下:
import numpy as np
# 创建一个矩阵
matrix = np.array([[1, 2], [3, 4]])
print("原始矩阵:\n", matrix)
# 计算矩阵的逆
inverse_matrix = np.linalg.inv(matrix)
print("逆矩阵:\n", inverse_matrix)
值得一提的是,就像数字0没有倒数一样,某一行或某一列全为0的矩阵也没有逆矩阵,没有逆矩阵的矩阵被称为奇异矩阵或退化矩阵,至于其他验证有无逆矩阵的方法因其超出了线性代数的范围,不在这里提及,有兴趣的可以上网搜索伴随矩阵行列式为0,齐次线性方程组有零解,秩验证等方法。
转置矩阵的运算比较简单,只需将原来矩阵内的项移动到其行数列数互换的位置即可,假设B是A的转置矩阵,则,B写作
。
多特征量的线性回归(Linear regression with multiple features )
在之前所研究的线性回归中,所研究的都是单一特征量的线性回归,回到之前的房价问题,现在除了房子的面积之外,还加入了卧室的数量、楼层数以及房子的年龄,如下:
预测房价的特征量
我们用n来表示特征量的数目,用来表示第i个训练样本的第j个特征量,例如在房价的特征量中,
示2,如果没有下标,指的就是第i个训练样本,例如
。
随着特征量的增加,这个房价的线性回归假设函数的表达形式就变为了 。
但如果一个假设函数有很多个特征量,该如何简化它呢?这里就用到了上面提提及的向量。如果记第一个特征量永远等于1,那么有n个特征量的假设函数就可以表示成一个转置向量乘以一个向量,令
,
,则
,而这种多个特征量的线性回归也被多元线性回归。
多元梯度下降法(Gradient descent for multiple features)
单元和多元情况下都能用梯度下降算法,不同的是,其同步更新的特征量多了很多,但其参数表达式都大差不差,如下:
单元与多元下梯度下降算法中参数的表达式
学习内容来自于b站吴恩达大佬课程:https://www.bilibili.com/video/BV1By4y1J7A5?spm_id_from=333.788.player.switch&vd_source=867b8ecbd62561f6cb9b4a83a368f691&p=1