从0开始学习机器学习--Day3--矩阵的基本运算及多元梯度下降

矩阵和向量(Matries and vectors)

矩阵:由数字组成的矩形阵列并写在方括号内,例如\begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9 \end{bmatrix},而矩阵的维数等于行数乘以列数,所以像我们提到的这个矩阵就可以成为一个3×3的矩阵,也能写作R^{3\times3}

如果想要表达矩阵的某一项,我们会用A_{ij}的形式,例如 A = \begin{bmatrix} 3 & 7 & 15 \\ 4 & 9 & 6 \end{bmatrix},则A_{13} = 15表示矩阵A第一行第三列对应的那一项,注意所写的数字不能超过矩阵本身的行数和列数。

向量:是只有一列的矩阵,例如\begin{bmatrix} 5 \\ 4 \\ 6 \end{bmatrix},类似的,我们用 y_{i}的形式来表示向量的某一项。一个全是未知项的向量可以写成y = \begin{bmatrix} y_{1} \\ y_{2} \\ y_{3} \\ y_{4} \end{bmatrix},有时第一项也会从y_{0}开始。

矩阵的加法和标量乘法(Matries' addition and scalar multiplication)

矩阵的加减法比较简单,就是直接将两个矩阵对应的每一项加在一起,例如\begin{bmatrix} 1 & 0 \\ 2 & 5 \\ 3 & 1 \end{bmatrix} +\begin{bmatrix} 4 & 0.5 \\ 2 & 5 \\ 0 & 1 \end{bmatrix} =\begin{bmatrix} 1+4 & 0+0.5 \\ 2+2 & 5+5 \\ 3+0 & 1+1 \end{bmatrix} =\begin{bmatrix} 5 & 0.5 \\ 4 & 10 \\ 3 & 2 \end{bmatrix},注意,只有相同维度的矩阵才能做加减法。

矩阵与标量相乘或相除,只需要将矩阵的每一项都与标量相乘或相除即可,例如4\times \begin{bmatrix} 9 & 5 \\ 8 & 5 \\ 1 & 2 \end{bmatrix}=\begin{bmatrix} 36 & 25 \\ 32 & 20 \\ 4 & 8 \end{bmatrix},在这种运算中,标量与矩阵相乘除或矩阵与标量相乘除的结果是一样的。

矩阵向量的乘法(Matrix-vector multiplication)

如果一个矩阵要和一个向量相乘,则矩阵的列数要等于向量的行数,即A_{mn}y_{n},且结果一定是y_{m},例如\begin{bmatrix} 1 & 3 \\ 4 & 0 \\ 2 & 1 \end{bmatrix} \begin{bmatrix} 1 \\ 5 \end{bmatrix} =\begin{bmatrix} 1\times1+3\times5 \\ 1\times4+0\times5 \\ 1\times2+1\times5 \end{bmatrix} =\begin{bmatrix} 1 6 \\ 4 \\ 7 \end{bmatrix}

矩阵与向量相乘有时可以让你在一些计算过程中减少你的计算量,假设你有四个房子的大小2104,1416,1534,852,他们都符合h_{\theta}(x) = -40 + 0.25xh_{\theta}(x)代表预测的房价,那么我们可以把这些构造成一个矩阵乘以向量的计算,即\begin{bmatrix} 1 & 2104 \\ 1 & 1416 \\ 1 & 1534 \\ 1 & 852 \end{bmatrix} \begin{bmatrix} -40 \\ 0.25 \end{bmatrix} =\begin{bmatrix} 486 \\ 314 \\ 343.5 \\ 173 \end{bmatrix}

矩阵之间的乘法(Matrix-matrix multiplication)

矩阵与矩阵相乘,实际上可以将其拆成矩阵与一个个向量相乘,例如\begin{bmatrix} 1 & 3 & 2 \\ 4 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 3 \\ 0 & 1 \\ 5 & 2 \end{bmatrix}\begin{bmatrix} 1 & 3 & 2 \\ 4 & 0 & 1 \end{bmatrix} \begin{bmatrix} 1 & 3 \\ 0 & 1 \\ 5 & 2 \end{bmatrix}相乘,我们可以先计算\begin{bmatrix} 1 & 3 & 2 \\ 4 & 0 & 1 \end{bmatrix} \times \begin{bmatrix} 1 \\ 0 \\ 5 \end{bmatrix} =\begin{bmatrix} 11 \\ 9 \end{bmatrix},再算\begin{bmatrix} 1 & 3 & 2 \\ 4 & 0 & 1 \end{bmatrix} \times \begin{bmatrix} 3 \\ 1 \\ 2 \end{bmatrix} =\begin{bmatrix} 1 0 \\ 14 \end{bmatrix},再并在一起得到\begin{bmatrix} 11 & 10 \\ 9 & 14 \end{bmatrix}

注意,前一个矩阵的列数要与后一个矩阵的行数相等,也就是A_{mn}\times B_{nx}=C_{mx},如果是两个相同维数的矩阵相乘,如果调换顺序,这是一个新的运算,结果也与之前不一样。

矩阵乘法特征(Matrix multiplication properties)

尽管矩阵乘法不符合交换律,但其仍然符合交换律,即(A×B)×C = A×(B×C)

矩阵空间中有一种特殊的矩阵,类比于实数中的1,这类矩阵内沿对角线上的数字全是1,其余全是0,我们称其为单位矩阵,一般用I表示。例如\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}分别是2×2,3×3的单位矩阵。对于任意矩阵A,都有A_{mn}\cdot I_{nn} = I_{mm} \cdot A_{mn} = A_{mn},注意这里的单位矩阵的维度要按照乘法定律去改变。

逆和转置(Inverse and transpose)

如果一个矩阵的维数是m×m,且它存在逆矩阵,则有AA^{-1}=A^{-1}A=I,注意,只有行数与列数相等的矩阵才有逆矩阵,我们将这类行数与列数都相同的矩阵成为方阵矩阵。

如果想要在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_{12}=A_{21},B写作A^{T}

多特征量的线性回归(Linear regression with multiple features )

在之前所研究的线性回归中,所研究的都是单一特征量的线性回归,回到之前的房价问题,现在除了房子的面积之外,还加入了卧室的数量、楼层数以及房子的年龄,如下:

预测房价的特征量

我们用n来表示特征量的数目,用x_{j}^{(i)}来表示第i个训练样本的第j个特征量,例如在房价的特征量中,x_{3}^{(2)}示2,如果没有下标,指的就是第i个训练样本,例如x^{(2)}= \begin{bmatrix} 1416 \\ 3 \\ 2 \\ 40 \end{bmatrix}

随着特征量的增加,这个房价的线性回归假设函数的表达形式就变为了 h_{\theta}(x) = \theta_{0} + \theta_{1}x_{1} + \theta_{2}x_{2} +\theta_{3}x_{3}+\theta_{4}x_{4}

但如果一个假设函数有很多个特征量,该如何简化它呢?这里就用到了上面提提及的向量。如果记第一个特征量x_{0}永远等于1,那么有n个特征量的假设函数就可以表示成一个转置向量乘以一个向量,令x= \begin{bmatrix} x_{0} \\ x_{1} \\ x_{2} \\ \cdot \\ \cdot \\ \cdot \\ x_{n} \end{bmatrix}\theta= \begin{bmatrix} \theta_{0} \\ \theta_{1} \\ \theta_{2} \\ \cdot \\ \cdot \\ \cdot \\ \theta_{n} \end{bmatrix},则h_{\theta}(x) = \theta^{T}x,而这种多个特征量的线性回归也被多元线性回归。

多元梯度下降法(Gradient descent for multiple features)

单元和多元情况下都能用梯度下降算法,不同的是,其同步更新的特征量多了很多,但其参数表达式都大差不差,如下:

单元与多元下梯度下降算法中参数的表达式

学习内容来自于b站吴恩达大佬课程:https://www.bilibili.com/video/BV1By4y1J7A5?spm_id_from=333.788.player.switch&vd_source=867b8ecbd62561f6cb9b4a83a368f691&p=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值