开发者学堂课程【大数据学习-数学基础及应用:向量,矩阵概念】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/354/detail/4177
向量,矩阵概念
内容介绍:
一、学前须知
二、向量的基本概念
三、向量的表示方法
四、向量相关的数学操作
五、矩阵的概念
六、矩阵的数学操作:
一、学前须知:
本次微课堂的题目为:程序员的数学基础及应用,主要重温大学的数学内容。本次课堂的目的:学习数学上的基础概念,比如向量、矩阵、导数,梯度等基础概念,做一个系统性的回顾。
课程主要分为下面五个部分:第一是向量,矩阵的概念,第二个是向量在游戏中的应用。第三个是矩阵的一个应用场景,就是奇异值分解及其应用,第四是导数梯度的基本概念,第五个是最优化方法,以及相关的一些应用。
二、向量的基本概念
首先介绍一下向量的基本概念。不知道大家在平时的生活中有没有注意到有两个量,就在生活中经常出现,但是不知道有没有思考过这两个量有什么不同,其中一个就是位移,另一个是距离。观看下图:
有两个线段,一个是 OA ,一个是 AB 。他们一个明显的区别就是 AB是有方向的,是一个有效性的。OA 是距离。AB 是位移,两个线段一个是OA,现在 oA 1500米,另一个是线段 AB 2千米。不同的是 AB 是有方向的有向线段。所以 AB 表示的是位移,Oa 表示的是距离。位移作为一个既有大小又有方向的量,它是一个向量。距离是只有大小没有方向的量,是一个数量,生活中常见的一些数量包括质量,身高,面积,体积等等,常见的一些向量包括重力速度,加速度,物理中经常见到的量,以及其他的一些量。
三、向量的表示方法
向量的表示方法有两种,一种是几何表示法,还有一种是字母表示法。几何表示法:
常用有向线段表示。这个线段的长度就是表示这个向量的大小,通常也叫做向量的模。箭头所指的方向就会表示向量的方向。
字母表示法:是通常在书面上写公式时会使用到这种方法,它也分为两种,一种是用一个小写的字母去直接代表这个线段,然后在字母上方加一个箭头,表示他是一个向量。另一种方法是用两个大写字母前面的字母表示下面的起点,后面一个字母表示的是有向线段的终点,在上方再加一个箭头。也同样表示一个向量。
图片上都显示了有向线段,现在可以表示向量。
但其实有向线段与向量还是有明显的区别:
有向线段有固定起点大小以及方向。但是向量是可选任意点作为一个作为起点,只要他的方向和大小一致,向量就相等。
两个特殊的向量:
零向量:零向量就是代表长度为零的向量。记做零,然后上面加一个箭头。零向量的一个最大的特点就是它的方向是不确定的,也就是它的方向是无穷的。
单位向量:单位向量是另一个特殊向量,它的长度等于一个单位长度。但是这里的单位长度并不是表示他是一,这个单位是可以在不同的场景中进行不同的定义。
平行向量:平行向量也可以称作共线向量,只要两个或多个向量,它们的方向是相同或者相反。而且他们的长度不是零,那么这些向量就可以看作是平行向量。如下图:
这些向量都是平行向量的例子。
如何判断向量相等:
因为向量一个有方向的量,所以在长度相等的同时,必须方向也相同,这样的向量才能认为它们相等。所以从平行和相等这两个概念出发,可以推出来向量相等,一定能够推出来向量平行。向量相等是向量平行的充分条件,但是从向量平行反推相等,这样是不成立的。
四、向量相关的数学操作
首先是向量的加法:
两个向量相加,得到的和一定是从一个向量的起点。到另一个向量的终点,获得的这样一个新的向量。如下图:
比如 a 加 B ,得到的一个最终的结果向量就是如上图矩形的对角线,其中有两个 a 和两个 B,比如右侧的 a 是左侧 a 向量的一个拷贝,右侧的 B 向量也是左侧 B 向量的一个拷贝,他们是完全相同的,因为向量,只要它的大小和方向都相同,它是相等的,所以这两个向量相加可以看作是在这个平行四边形上,得到它的一个对角线。
向量点乘:
向量点乘是一个标量,它的结果是一个纯数字,是不带方向信息的一个量,公式是 a 向量和 B 向量的点乘,结果是 a 的模乘以 B 的模,再乘以它们夹角的余弦值。
点乘的作用非常大,是平时向量中的一个非常常用的操作,通过点乘的一个方向,也就是它是正值还是负值,就可以迅速判断出这两个量他们指的方向是不是相近。因为相近,cosX 是一个大于零的值,如果相反,cosX 小于零,所以从符号上面就可以迅速判断出这两个向量的指向。
向量的叉乘:
叉乘跟点乘一样,也表示向量的乘积。但是他的结果仍然是一个向量,并不是一个标量。公式:A 向量叉乘 B 向量的结果是 A 的模乘以 B 的模再乘以 sinX ,截止到此,结果都是一个标量,但是后面最后还乘一个 N ,这个 N 是一个法向量,所以标量乘以法向量最终的结果还是一个向量。
法向量:
法向量的概念就是 a 和 B 共同构成一个平面,那么垂直这个平面
的一个向量就可以认为是该平面的一个法向量。下图是如何判断一个法向量的方向:
因为是a叉乘B,可以举起自己的右手,四个手指从 a 转向 B 是一个逆时针的方向,a 转向 B ,大拇指指的方向就是法向量的方向。
五、矩阵的概念
矩阵也是线性代数中非常重要的一个概念,在游戏引擎以及机器学习中,矩阵经常使用。在线性代数中的定义是矩阵是以行和列显示组织一个巨型的数字块,也可以简单地看作是向量的一个数字。矩阵是有维度的,它跟向量的一个最大的区别就是矩阵的维度是由两个数字去决定的。一个是矩阵包含的行数,另一个是矩阵包含的列数。如下图所示:
表示一个维度为 M 乘 N 的一个矩阵,它的行数为 M 行,然后列数为 N 列,如果 M 等于 N ,即这个矩阵的行数和列数相同,那么这个矩阵也可以也叫做方阵。
矩阵跟线性变换的关系非常密切的。
线性变换:假设 V 和 W 是数域 P 上的一个线性空间,A 是 V W 的一个映射。如果满足这两个条件,称a 是到W 的一个线性映射。概念比较抽象。当 W 等于 V 时,这个变换线性映射前后的空间是同一个空间的时。A 就会称为线性空间 V 的一个线性变换。这个线性变换是线性映射中的一种特殊的方式。
通过线性变换可以引出它跟矩阵的关系。先假设,西格玛为线性空间 V 的一个线性变换,ξ 一到 N,是数域 p 上线性空间 V 的一组基,基就是空间中有一组向量,然后这组向量的话都是线性无关的,它们不可能被其他这个空间中的向量线性表示出来,举一个比较生动的例子,比如现在面前的这个桌面,只要平行于这个桌面的两个向量就可以把这个桌面的平面确定下来。随后再在这个桌面上增加其他更多的量。这个桌面并不发生任何改变。之前增加的那两个向量就可以作为这个桌面坐标系的一组基。
基向量的象可以被基线性表出,线性方程组是一个多元一次的线性方程组,基向量的象可以认为是一个因变量,就是把最左侧等号左侧的 σ 把它变成 a 。然后右侧的 ξ 把它变成 X ,就是一个多元一次的线性方程组。
然后把这个线性方程组用矩阵形式表示。就会表示成右侧这种方式:
所有的系数也是从阿尔法一到 N ,这个系数整体就表示 a 这个矩阵,总结来说,线性变换 σ 就是在基 ξ 一到N下面的一个矩阵。
矩阵俩个重要概念:
矩阵就是映射。矩阵就是在向量空间中的一种对运动的描述。
转置:
转置是矩阵特有的一种概念,比如说一个 N 乘 N 的矩阵 M ,那么它的转置会被记作 M 右上方有一个 T,转置之后,矩阵原来是 M 行 N 列,转置之后就变成 NM 列。如下图所示:
原来是三行两列,转置之后变成二行三列。
六、矩阵的数学操作:
第一个是标量矩阵的乘法。标量矩阵乘法比较好理解,比如说一个标量 K 跟一个矩阵 M 相乘,就等于这个矩阵中所有的元素与这个 K 相乘,结果还是一个矩阵,它的尾数跟相乘之前的尾数一样。
下面一个矩阵乘法就跟前面一个不一样,它是矩阵与矩阵之间的乘法,比如说a 和B 2个矩阵相乘。那么对于a b 的两个维度,包含要求,比如 a,是 R 乘 N 的维度,B 是它的行数要跟 a 的列数必须一致,行数必须是 N,在这个例子中,它的维度是 N 乘 C,由 R 乘 N 的矩阵,和 N 乘 C 的矩阵相乘之后,会获得一个新的矩阵,就是 R乘以C维度的矩阵。然后AB的元素,比如第i j的元素。即位于第 i行第 J 列的元素就等于 a 的第 I 行向量与 B 的第 J 行向量的点乘的结果。