热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

机器学习数学基础线性代数矩阵及向量计算

在进行机器学习编程过程中,需要用到一些线性代数的基础知识,以便简化程序的编写,并且可以利用GPU的矩阵运算能力,提高运算效率。本文不作过多的理论解释,只是基于具体的例子来介绍一下矩

在进行机器学习编程过程中,需要用到一些线性代数的基础知识,以便简化程序的编写,并且可以利用GPU的矩阵运算能力,提高运算效率。本文不作过多的理论解释,只是基于具体的例子来介绍一下矩阵运算的数学基础知识,以便备用。

首先介绍一下什么是矩阵,如下列出了3个矩阵,分别是3行2列,2行3列,3行4列的矩阵

《机器学习数学基础 -- 线性代数矩阵及向量计算》

矩阵的加法及减法

《机器学习数学基础 -- 线性代数矩阵及向量计算》

两个矩阵的加法,简单描述就是用两个矩阵中相同位置的各个元素依次相加,继而得到一个新的矩阵。也因此,矩阵相加要求两个矩阵必须有相同的维度,比如下面两个矩阵就无法相加:

《机器学习数学基础 -- 线性代数矩阵及向量计算》

那么,知道了加法运算,减法就非常简单了,就是用两个矩阵中相同位置的各个元素依次相加即可。还是举个例子说明一下:

《机器学习数学基础 -- 线性代数矩阵及向量计算》

矩阵的乘法及除法

在了解矩阵之间的乘除法之前,我们先了解一下矩阵和标量(一个数字)的乘除法,先看一下乘法的例子:

《机器学习数学基础 -- 线性代数矩阵及向量计算》

非常简单,用矩阵的每个元素和标量相乘,即可得到相乘之后的新的矩阵。注意,矩阵和标量相乘,先后顺序无关,即:

《机器学习数学基础 -- 线性代数矩阵及向量计算》

除法与乘法类似,但是标量不能作为被除数,只可以用矩阵除以标量,例子如下:

《机器学习数学基础 -- 线性代数矩阵及向量计算》

接下来我们再来看一下矩阵与矩阵之间的乘法

矩阵与矩阵的乘法,对于矩阵的维度是有要求的,要求第一个矩阵的列数,必须等于第二个矩阵的行数,比如m×n的矩阵和n×t的矩阵相乘,则可以得到m×t的矩阵。由此也可以看出,矩阵之间的乘法是不服从乘法交换律的。那矩阵乘法是如何计算的呢,我们还是通过一个例子来看一下:

这是一个3×2的矩阵和一个2×1的矩阵相乘,因此会得到一个3×1的矩阵。运算的时候,第一个矩阵的第一行的每个元素,和第二个矩阵的第一例每个元素一次相乘后相加,作为结果矩阵的第一行的第一列。第一个矩阵的第二行的每个元素,和第二个矩阵的第一例每个元素一次相乘后相加,作为结果矩阵的第二行的第一列,依次类推。

《机器学习数学基础 -- 线性代数矩阵及向量计算》

而对于如下3×2的矩阵和 2×3的矩阵相乘,则会得到一个3×3的矩阵。可以理解为一个3×2的矩阵,分别和三个3×1的矩阵(第二个矩阵的三列)相乘,得到的三个3×1的矩阵分别作为结果矩阵的三列。

《机器学习数学基础 -- 线性代数矩阵及向量计算》

单位矩阵

对角线为1,而其他元素都为0的矩阵,就称作单位矩阵,单位矩阵一般可以用大写字母 表示。如下就是几个单位矩阵,分别是2×2维,3×3维,4×4维

《机器学习数学基础 -- 线性代数矩阵及向量计算》

单位矩阵的特性也很简单,就是与任何一个维度和单位矩阵相同的矩阵A相乘,其结果都还是等于这个矩阵A,这非常类似于标量数字1。

《机器学习数学基础 -- 线性代数矩阵及向量计算》

逆矩阵

有了单位矩阵的概念,我们还可以说说什么是逆矩阵。简单来说,如果矩阵A和矩阵B相乘,能够得到一个单位矩阵 I,那么就可以称B是A的逆矩阵,也可以说A是B的逆矩阵。

《机器学习数学基础 -- 线性代数矩阵及向量计算》

对于某些矩阵,不存在逆矩阵,比如元素全为0的矩阵,这种没有逆矩阵的矩阵,称为奇异矩阵,或者退化矩阵。

矩阵的转置

如果我们把一个矩阵A的行、列互换,即可得到A的转置矩阵。如下图所示:

《机器学习数学基础 -- 线性代数矩阵及向量计算》


推荐阅读
author-avatar
後誨A沩鉨乄菰単
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有