【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

一周未见,动力不减!小Mi又带着知识点和大家见面啦!(敲黑板~)

上周小Mi带着大家简单地学习了机器学习的概念,还有其常见的两个大类,监督学习和无监督学习,这次小Mi决定跟大家一起复习下机器学习中常用的线性代数知识。话说矩阵、向量还记得不,逆和转置到底是什么玩意儿?你的大学老师是不是已经哭晕在厕所了?没关系,今天的知识点简单到小学生都会,跟着小Mi一起学习吧!

1      向量和矩阵

1.1      矩阵

首先,上定义!矩阵是一个按照长方阵列排列的复数或实数集合(我们就简单点,暂时只考虑实数哈),由m×n 个数【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点排成的m行n列的矩阵,简称m×n矩阵,记作:

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

 【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点则表示第i行,第j列的元素。

为了方便大家更加直白地理解,依旧是老样子,上例子!

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

这个是4×2的矩阵,即4行2列。【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点=1402,【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点=191 ,【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点=1437,而【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点由于这个矩阵一共就只有4行2列,所以第四行第三列的数则是不存在的啦。

从计算机角度来看,矩阵提供了一种很好的方式,能够让你快速整理、索引和访问大量数据,是不是很棒!

1.2      向量

谈到向量,其实向量就是一种特殊的矩阵,只有一列(一般默认为列向量),即n×1的矩阵。上例子:

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

该向量为4维列向量(4×1),所以矩阵和向量理解起来是不是很简单~

另外有两个知识点需要稍加注意一下子!

知识点一:

通常情况下,向量有从1起始的索引向量和从0起始的索引向量,如下图:

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

一般选用从1开始的索引向量,简单点可以看作编程语言中的数组,数组就是从1开始排序的,而数组的元素一般是y[1]、y[2],这种下标从1开始的在绝大多数数学表达式中也是更加常见的。所以,除非特别指定,正常默认使用是从1开始的索引向量哈。

知识点二:

通常情况下,用大写字母如A、B、C、X等来表示矩阵,而通常使用小写字母a、b、x、y等表示数字或标量或向量。也就是说,小写表示向量,大写字母表示矩阵。大家都听明白了不(你的线性代数老师又上线敲黑板啦)!

2      矩阵的简单运算

2.1      加法和标量乘法

这一趴我们主要研究矩阵的各种运算,首先从简单的开始说起,矩阵的加减法运算以及数和矩阵的乘法,也就是标量乘法运算。

矩阵的加法,看示例:

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

也就是说,矩阵的加法意味着,两个矩阵的每一个元素都逐个相加,这句话暗示的条件是只有相同维度的两个矩阵才能相加,即两个矩阵的行列数都是相同的,那么结果就是行列数相等的各个元素相加得到的一个新矩阵。

而标量乘法运算其实也是类似,说白了也是将矩阵中的所有元素都逐一相乘就欧凯啦~

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

当然啦,接下来如果出现稍微复杂一点的组合运算相信大家也是可以完成的!

2.2      矩阵和向量相乘

好了,下面有点难度了,涉及到矩阵和向量相乘的话,结果又是什么样的呢?For example:(小Mi想拽下英语大家没问题吧)

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

一个2×2的矩阵与2×1的矩阵相乘,得出的结果是一个2×1的矩阵,所以首先结果是一个两行1列的矩阵。然后每个元素的计算过程如下:

矩阵的第一行元素与向量分别计算:1×1+2×2=5

矩阵的第二行元素与向量分别计算:1×3+4×2=11

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

因此,总结来说:矩阵A与向量x相乘便会得到一个向量y。矩阵A是一个m×n的矩阵,x是一个n×1的矩阵,两者相乘得到一个m维的向量,这里n是一定要匹配的,也就是说A的n列要与x的n行是一致的,m则为矩阵A的行数。

下面带入一个情景模式方便大家理解一下,假设我们有四间房子(Oh,又是小Mi心心念念的房子),这四间房子一共有四种大小,分别是100,89,105,128平方米,现在有个函数:h(x)=30+0.25x可以预测房子的价格,计算出每个房子对应的h(x)。

这个时候,小Mi教大家用矩阵向量相乘的方法做一下:

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

2.3      矩阵乘法

假设有两个矩阵A和B,m×n矩阵乘以n×o矩阵,变成m×o矩阵,那么他们的乘积就可以表示为图中的形式

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

先提取矩阵A的第一行与B的第一列进行向量相乘计算,然后A的第一行不变,提取B的第二列进行向量相乘运算,再接着单独提取A的第二行分别与B的第一、二列进行计算。这其中需要注意的是,两个矩阵能够相乘必须满足矩阵A的列数与B的行数相匹配这样一个条件。(矩阵乘法的动态演示:https://www.bilibili.com/video/av56433157)

同样,带入情景,预测4间房子的价格,面积分别为100,89,105,128平方米,有三种假设都用来预测价格,【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点,那么最终可以上得到12个基于三种假设的四间房子的价格。

小Mi再插句嘴,是不是发现矩阵运算十分高效,可以基于多个假设做计算?Oh,简直太棒了!

2.4      矩阵乘法特征

标量的运算是可以颠倒乘法运算中变量的顺序的,但是这一点并不能应用在矩阵乘法中。

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

举例:

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

但是,矩阵的乘法满足结合律。即:【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

当处理实数或标量的时候,数值1可以看作一个乘法单位,对于任何实数Z,1×Z=Z×1。同样,在矩阵空间中,也有一个单位矩阵I满足这样的特性,它的对角线上都是1,其余为0。

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

对于单位矩阵而言,【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点,但是这里需要注意的是,可能对应I的维度会存在不一样的情况。

2.5      逆和转置

最后小Mi还想给大家介绍一些特殊的矩阵运算,比如矩阵的逆运算和转置运算。

做个类比,实数中1、3的倒数分别是1、1/3(当然啦,0没有倒数),而逆运算就相当于求矩阵的倒数,因此也不是所有的矩阵可以进行逆运算,只有m×m矩阵,也就是方阵才会存在。即:

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

那么如何求逆矩阵呢?这边的话,小Mi真的很感谢强大的用开源库,简单的代码便可以实现调用,直接求解求解逆矩阵!

还有另一种矩阵的特殊运算,叫做矩阵的转置计算:

假设A为m×n阶矩阵,第i行j列的元素【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点 ,即【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点 ,而B为n×m阶矩阵,满足【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点 ,即【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点 ,也就是说B的第i行j列元素是A的第j行i列元素。记【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点 。

直观来看:

【MindSpore:跟着小Mi一起机器学习吧!】那些我们快要遗忘的线性代数知识点

好啦,以上便是今天小Mi带来的简单矩阵知识点,虽然简单,但是小Mi认为千里之堤,溃于蚁穴,想要学好机器学习,各种基础知识还是需要建立和完善的(是不是不太适应小Mi这么严肃地讲话!)。今天小Mi的讲解就到这啦,下期我们将一起学习线性回归算法,有没有很期待?!我们下期见呦~

上一篇:【MindSpore:跟着小Mi一起机器学习吧!】神经网络的学习(上)


下一篇:【MindSpore:跟着小Mi一起机器学习吧!】多变量线性回归(一)