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

矩阵的定义

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

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

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

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

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

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

向量的定义

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

如何引用向量中的元素

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

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

矩阵的运算

矩阵的加法

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

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

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

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

矩阵与标量的乘法

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

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

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

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

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

矩阵与向量的乘法

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

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

我们得到了一个 3 3 3维向量,接下来我们介绍具体是如何相乘的。
矩阵与向量的乘法
我们有一个 m × n m×n m×n的矩阵 A A A,与一个 n n n维的向量 x x x相乘,可以得到一个 m m m维的向量 y y y

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

接下来,我们给出一个在机器学习中运用矩阵与向量相乘的例子。
小技巧
在房价预测问题中,假如我们的模型得到了这样的一个假设函数 h θ ( x ) = − 40 + 0.25 x h_\theta(x)=-40+0.25x hθ(x)=40+0.25x,现在我们要计算在这个假设函数下不同房子对应的预测房价,第一种做法,我们直接将房子大小 x x x依次代入到方程中计算即可,对应在编程中,我们可以先写出假设函数的方程,然后使用一个 f o r for for循环计算;第二种做法,我们使用矩阵与向量的乘法来实现,我们令矩阵 A = A= A= [ 1 2104 1 1416 1 1534 1 852 ] \begin{bmatrix}1 & 2104 \\1 & 1416\\1 & 1534\\1 & 852\end{bmatrix} 1111210414161534852 ,令向量 x = x= x= [ − 40 0.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 × n m×n m×n的矩阵 A A A,与一个 n × o n×o n×o的矩阵 B B B相乘,可以得到一个 m × o m×o m×o维的矩阵 C C C

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

所以,可以发现, m × n m×n m×n维矩阵 A A A n × o n×o n×o维矩阵 B B B的相乘,是先将矩阵 B B B分解为 o o o n n n维的向量,可知 m × n m×n m×n矩阵 A A A n n n维向量相乘会得到 m m m维向量,再将 o o o m m m维的向量组合在一起得到 m × o m×o m×o维的矩阵 C C C

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

矩阵乘法的性质

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

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

单位矩阵 I I I 或者 I n × n I_{n×n} In×n(单位矩阵是方阵):
单位矩阵
即主对角线上全是 1 1 1,其余位置全是 0 0 0的方阵称为单位矩阵

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

矩阵的逆

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

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

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

矩阵的转置

矩阵的转置
在这里插入图片描述
矩阵的转置,简单来说,就是将矩阵的行列交换, A i = B j , A j = B i A_i=B_j,A_j=B_i Ai=Bj,Aj=Bi,如果有矩阵 A m × n A_{m×n} Am×n,那么,它的转置就是 A n × m T A^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、付费专栏及课程。

余额充值