机器学习第二周(线性代数基础)

矩阵与向量的运算在机器学习中的应用
文章介绍了矩阵的定义,包括矩阵的维数、元素表示以及特殊类型如实矩阵和复矩阵。向量被定义为一列的矩阵,并说明了向量的元素引用。接着,详细阐述了矩阵的加法、减法、与标量的乘法和除法。矩阵与向量的乘法运算被解析,强调了匹配维数的重要性,并举例说明在房价预测问题中的应用。最后,简要提及矩阵与矩阵的乘法、单位矩阵、逆矩阵和转置的概念。这些内容在机器学习中具有重要地位,常用于模型构建和数据处理。

矩阵的定义

我们给出百度百科中对于矩阵的定义:

矩阵,数学术语。在数学中,矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。

m×nm × nm×n个数aija_{ij}aij排成的mmmnnn列的数表称为mmmnnn列的矩阵,简称m×nm × nm×n矩阵。记作:
矩阵
其中,m×nm×nm×n被称为矩阵的维数,即矩阵的行数乘以矩阵的列数,有时候,也会使用符号Rm×nR^{m×n}Rm×n来表示m×nm×nm×n的矩阵;矩阵中的数被称为元素。

特别的,如果矩阵中的元素都是实数,则称为实矩阵;如果矩阵中的元素都是复数,则称为复矩阵;如果矩阵的行数与列数都等于 nnn ,则称为nnn阶矩阵或nnn阶方阵。

如何表达矩阵的某个特定元素

对于矩阵AAA中第iii行第jjj列的元素,我们使用下标的方式来表示它,即AijA_{ij}Aij,其中iii表示元素所在的行,jjj表示元素所在的列。

向量的定义

向量其实就是只有一列的矩阵,其维数为 m×1m×1m×1
向量
上图是一个向量的例子,可以看出其维数是 4×14×14×1,即这是一个444维向量。在矩阵的定义中,我们提到了使用符号Rm×nR^{m×n}Rm×n可以用来表示m×nm×nm×n的矩阵,同样的,在向量中,我们可以使用符号RmR^mRm来表示mmm维的向量。

如何引用向量中的元素

对于444维向量yyy中的第iii个的元素,我们使用下标的方式来引用它,即yiy_iyi,其中iii表示元素所在的行。不同的下标表示
在引用向量中的元素时,会有两种下标索引的方法,一种是从111开始索引元素,更贴近于数学上的表达方式;另一种是从000开始索引元素,更贴近于机器上的表达方式。

注意,在机器学习中,我们往往使用大写字母来表示一个矩阵,使用小写字母来表示一个向量或者一个数字或者一个标量。

矩阵的运算

矩阵的加法

矩阵的加法
上图所示,我们将两个矩阵相加,其结果如下:

[102531]+\begin{bmatrix}1 & 0 \\2 & 5\\3 & 1\end{bmatrix}+123051+[40.52501]=\begin{bmatrix}4 & 0.5 \\2 & 5\\0 & 1\end{bmatrix}=4200.551=[50.541032]\begin{bmatrix}5 & 0.5 \\4 & 10\\3 & 2\end{bmatrix}5430.5102

显然,矩阵加法的结果仍然是矩阵,矩阵的加法意味着将两个矩阵对应位置的元素相加得到新矩阵对应位置上的元素,所以相加的两个矩阵的维数必须相同,即如果 Am×n+Bm×n=Cm×nA _{m×n}+B_{m×n}=C_{m×n}Am×n+Bm×n=Cm×n,则 Aij+Bij=CijA_{ij}+B_{ij}=C_{ij}Aij+Bij=Cij

矩阵的减法是一样的道理,即将两个矩阵对应位置的元素相减来得到新矩阵对应位置上的元素。

矩阵与标量的乘法

矩阵与标量的乘法
上图所示,我们将矩阵与标量相乘,其结果如下:

3×[102531]=3×\begin{bmatrix}1 & 0 \\2 & 5\\3 & 1\end{bmatrix}=3×123051=[3061593]\begin{bmatrix}3 & 0 \\6 & 15\\9 & 3\end{bmatrix}3690153

显然,矩阵与标量的乘法意味着将矩阵中的所有元素都逐一与标量相乘,即 X×Am×n,X∈RX×A _{m×n},X\in\RX×Am×nXR,则 Aij=X×AijA_{ij}=X×A_{ij}Aij=X×Aij

矩阵与标量的除法是一样的道理,因为与任意数相除可以转化为与该数的倒数相乘。

[4063]/4=\begin{bmatrix}4 & 0 \\6 & 3\end{bmatrix}/4=[4603]/4=[4063]×\begin{bmatrix}4 & 0 \\6 & 3\end{bmatrix}×[4603]×14=\Large\frac 1 4=41=[103234]\begin{bmatrix}1 & 0 \\ \frac 3 2& \frac 3 4\end{bmatrix}[123043]

矩阵与向量的乘法

例子
上图是矩阵与向量相乘的一个例子,之前我们已经介绍了向量,它实际上就是只有一列的矩阵,
很显然,上图是一个3×23×23×2的矩阵与一个222维向量相乘,其结果如下:

[134021]×\begin{bmatrix}1 & 3 \\4 & 0\\2 & 1\end{bmatrix}×142301×[15]=\begin{bmatrix}1\\5\end{bmatrix}=[15]=[1647]\begin{bmatrix}16\\4\\7\end{bmatrix}1647

我们得到了一个333维向量,接下来我们介绍具体是如何相乘的。
矩阵与向量的乘法
我们有一个m×nm×nm×n的矩阵AAA,与一个nnn维的向量xxx相乘,可以得到一个mmm维的向量yyy

首先,需要注意的是,矩阵的列数与向量的维数要匹配才可以进行相乘的运算;其次,为了得到新向量的对应元素 yiy_iyi,我们需要将矩阵AAA中的第iii行元素与向量xxx中的所有元素对应相乘再相加,即 yi=∑j=1nAij⋅xjy_i=\sum_{j=1}^{n}A_{ij}\cdot x_{j}yi=j=1nAijxj

接下来,我们给出一个在机器学习中运用矩阵与向量相乘的例子。
小技巧
在房价预测问题中,假如我们的模型得到了这样的一个假设函数hθ(x)=−40+0.25xh_\theta(x)=-40+0.25xhθ(x)=40+0.25x,现在我们要计算在这个假设函数下不同房子对应的预测房价,第一种做法,我们直接将房子大小xxx依次代入到方程中计算即可,对应在编程中,我们可以先写出假设函数的方程,然后使用一个forforfor循环计算;第二种做法,我们使用矩阵与向量的乘法来实现,我们令矩阵A=A=A=[1210411416115341852]\begin{bmatrix}1 & 2104 \\1 & 1416\\1 & 1534\\1 & 852\end{bmatrix}1111210414161534852,令向量x=x=x=[−400.25]\begin{bmatrix}-40\\0.25\end{bmatrix}[400.25],然后将二者相乘,我们会得到一个新的向量y=y=y=[hθ(2104)hθ(1416)hθ(1534)hθ(852)]\begin{bmatrix}h_\theta(2104)\\h_\theta(1416)\\h_\theta(1534)\\h_\theta(852)\end{bmatrix}hθ(2104)hθ(1416)hθ(1534)hθ(852),新向量中的元素就是对应房子的房价预测值,对应在编程中,我们可以直接调用现成的矩阵库来实现矩阵与向量相乘的运算。

在机器学习中,更加推荐第二种做法,首先,这样做简化了代码;其次,这样做使得数据向量化,便于后续的处理,效率更高。

矩阵与矩阵的乘法

矩阵相乘
在这里插入图片描述
我们有一个m×nm×nm×n的矩阵AAA,与一个n×on×on×o的矩阵BBB相乘,可以得到一个m×om×om×o维的矩阵CCC

首先,需要注意的是,矩阵AAA的列数与矩阵BBB的行数要匹配才可以进行相乘的运算;其次,为了得到矩阵CCC的对应元素 CijC_{ij}Cij,我们需要将矩阵AAA与矩阵BBB中的第jjj列元素对应相乘再相加得到CCC的第jjj列元素,即 Cj=∑i=1nA⋅BijC_{j}=\sum_{i=1}^{n}A\cdot B_{ij}Cj=i=1nABij

所以,可以发现,m×nm×nm×n维矩阵AAAn×on×on×o维矩阵BBB的相乘,是先将矩阵BBB分解为ooonnn维的向量,可知m×nm×nm×n矩阵AAAnnn维向量相乘会得到mmm维向量,再将ooommm维的向量组合在一起得到m×om×om×o维的矩阵CCC

小技巧
运用矩阵与矩阵的乘法可以帮助我们快速在房价问题中计算出每个假设函数hθ(x)h_\theta(x)hθ(x)下不同房子的房价预测值,这是矩阵相乘在机器学习中运用的一个例子,利用矩阵相乘还可以帮助我们实现更多功能,我们会在之后介绍。

矩阵乘法的性质

不满足交换律:A×B≠B×AA×B\not =B×AA×B=B×A

结合律:A×B×C=A×(B×C)=(A×B)×CA×B×C=A×(B×C)=(A×B)×CA×B×C=A×(B×C)=(A×B)×C

单位矩阵 III 或者 In×nI_{n×n}In×n(单位矩阵是方阵):
单位矩阵
即主对角线上全是111,其余位置全是000的方阵称为单位矩阵

在实数的乘法里,我们有乘法单位 111,任何数乘上 111 还是它本身,单位矩阵就可以理解成是矩阵乘法中的单位 111,所以有 Am×n×In×n=Im×m×Am×n=Am×nA_{m×n}×I_{n×n}=I_{m×m}×A_{m×n}=A_{m×n}Am×n×In×n=Im×m×Am×n=Am×n,注意矩阵相乘时的维度匹配问题

矩阵的逆

在实数中,我们都知道倒数的概念,即一个数乘上它的倒数等于111,在矩阵中,也有“倒数”的概念,即矩阵的逆
矩阵的逆
如果现在有一个m×nm×nm×n的矩阵AAA,存在一个矩阵BBB,使得A×B=IA×B=IA×B=I或者B×A=IB×A=IB×A=I,那么,我们就称矩阵BBB为矩阵AAA的逆,记作A−1A^{-1}A1

从上式子中,我们可以发现,只有方阵才可能存在逆矩阵

我们知道,在实数中,并不是所有的数都存在倒数,比如,000就不存在倒数,在矩阵中,也并不是所有的矩阵都存在逆矩阵,我们一般称这类没有逆矩阵的矩阵为奇异矩阵或者退化矩阵。

矩阵的转置

矩阵的转置
在这里插入图片描述
矩阵的转置,简单来说,就是将矩阵的行列交换,Ai=Bj,Aj=BiA_i=B_j,A_j=B_iAi=Bj,Aj=Bi,如果有矩阵Am×nA_{m×n}Am×n,那么,它的转置就是An×mTA^T_{n×m}An×mT

现在,我们介绍完了在机器学习会涉及到的线性代数基础知识,在之后我们会利用矩阵实现更多的机器学习算法,敬请期待吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PL_涵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值