标题:
标量、向量、矩阵和张量
矩阵向量的运算
单位矩阵和逆矩阵
行列式
方差,标准差,协方差矩阵-------(第一部分至此结束)
范数
特殊类型的矩阵和向量
特征分解以及其意义
奇异值分解及其意义
Moore-Penrose 伪逆
迹运算
读完估计需要10min
标量、向量、矩阵和张量
标量:一个标量就是一个单独的数,一般用小写的变量名称表示。当然,当我们介绍标量时,要明确它们是哪种类型的数值。这个在写论文时要注意,比如:在定义自然数标量时,我们可能会说“令n ∈ N表示元素的数目”。
向量:在物理学和工程学中,几何向量更常被称为矢量,这个学过高中数学和物理的就知道,但在线性代数中,经过进一步的抽象,大小和方向的概念亦不一定适用,但我们可以简单的理解为一列数,通过这列数中的索引,我们可以确定每个单独的数。通常会赋予向量粗体的小写名称。当我们需要明确表示向量中的元素时,我们会将元素排列成一个方括号包围的纵柱(如下图):
矩阵:矩阵是二维数组,其中的每一个元素被两个索引而非一个所确定。我们通常会赋予矩阵粗体的大写变量名称,比如A。 如果一个实数矩阵高度为m,宽度为n,那么我们说,当我们到明确表达矩阵的时候,我们将它们写在用方括号包围起来的数组中,如下图:
张量:线性代数或几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,向量(矢量)视为一阶张量,那么矩阵就是二阶张量。例如,可以将任意一张彩色图片表示成一个三阶张量(就像C语言中的三维数组),三个维度分别是图片的高度、宽度和色彩数据。 使用字体A来表示张量 “A’’。张量A中坐标为 (i, j, k) 的元素记作。
上面的知识重要性不言而喻,这些都不知道就别说学过机器学习了...几乎一切运算都是基于向量矩阵来进行的,而在tensorflow中,用张量来表示一切数据,并用来运算。
矩阵向量的运算
矩阵乘法:是矩阵运算中最重要的操作之一。两个矩阵A和B的 矩阵乘积(matrix product)是第三个矩阵C。为了使乘法定义良好,矩阵A的列数必须和矩阵B的行数相等。如果矩阵A的形状是 m × n,矩阵B的形状是 n × p,那么矩阵C 的形状是 m × p。我们可以通过将两个或多个矩阵并列放置以书写矩阵乘法,例如C=AB.
具体地,该乘法操作定义为 :
举个例子,如下所示:
需要注意的是,两个矩阵的标准乘积不是指两个矩阵中对应元素的乘积。 不过,那样的矩阵操作确实是存在的,被称为元素对应乘积或者Hadamard乘积,记为AB
矩阵乘积服从分配律:A(B + C)=AB + AC
矩阵乘积也服从结合律:A(BC)=(AB)C
但不同于标量乘积,矩阵乘积并不满足交换律(AB=BA的情况并非总是满足)。然而,两个向量的 点积(dot product)满足交换律 :
矩阵转置:
矩阵的乘法和其他运算有必要深究,比如矩阵乘法的意义。在机器学习中,很多运算就是矩阵和向量的运算,而Hadamard乘积在反向传播推导中也有应用。
单位矩阵和逆矩阵
线性代数提供了被称为矩阵逆的强大工具。 对于大多数矩阵A,我们都能通过矩阵逆解析地求解。
单位矩阵的结构很简单:所有沿主对角线的元素都是1,而所有其他位置的元素都是0。 如
求一个矩阵的逆矩阵比较简单,但是更加重要还有更加有用的是判断一个矩阵是否存在逆矩阵,这是一个重点难点,由于判别方式也非常的多种,这里就简述一些简单方法:
一切不是方阵(行数不等于列数)的矩阵都没有逆矩阵
可逆矩阵就是非奇异矩阵,非奇异矩阵也是可逆矩阵(奇异矩阵涉及到秩的运算,不是很必要学啊,但推荐去了解吧,如果不想学,那知道这句就好)
行列式等于0的方阵是奇异矩阵,也就是说行列式不等于0等价于是可逆矩阵
矩阵的求逆运算在机器学习中也有非常广泛的应用,比如逻辑回归,比如SVM等等,也是非常重要的,各类的论文中也会涉及到很多这样的运算,所以真的必不可少!
行列式
行列式,记作 det(A):是一个将方阵 A 映射到实数的函数。行列式等于矩阵特征值的乘积。行列式的绝对值可以用来衡量矩阵参与矩阵乘法后空间扩大或者缩小了多少。如果行列式是 0,那么空间至少沿着某一维完全收缩了,使其失去了所有的体积。如果行列式是 1,那么这个转换保持空间体积不变。
行列式也是一个很大的概念,深究起来非常方,如果不想了解很多,那只需要知道概念就好吧。
方差,标准差,协方差
方差:是衡量随机变量或一组数据时离散程度的度量,方差计算公式:
标准差:也被称为标准偏差,或者实验标准差,公式为
标准差是方差的算术平方根。标准差能反映一个数据集的离散程度。平均数相同的两组数据,标准差未必相同。
为什么需要协方差?
我们知道,标准差和方差一般是用来描述一维数据的,但现实生活我们常常遇到含有多维数据的数据集,最简单的 大家上学时免不了要统计多个学科的考试成绩。面对这样的数据集,我们当然可以按照每一维独立的计算其方差,但是通常我们还想了解更多,比如,一个男孩子的 猥琐程度跟他受女孩子欢迎程度是否存在一些联系。协方差就是这样一种用来度量两个随机变量关系的统计量。
协方差矩阵
理解协方差矩阵的关键就在于牢记它计算的是不同维度之间的协方差,而不是不同样本之间,拿到一个样本矩阵,我们最先要明确的就是一行是一个样本还是一个维度,心中明确这个整个计算过程就会顺流而下,这么一来就不会迷茫了
举个例子(例子来自这篇文章):
问题:
有一组数据(如下),分别为二维向量,这四个数据对应的协方差矩阵是多少?
解答:
由于数据是二维的,所以协方差矩阵是一个2*2的矩阵,矩阵的每个元素为:
元素(i,j) = (第 i 维所有元素 - 第 i 维的均值) * (第 j 维所有元素 - 第 j 维的均值)。
其中「*」代表向量内积符号,即两个向量求内积,对应元素相乘之后再累加。
我们首先列出第一维:
D1: (1,3,4,5) 均值:3.25
D2: (2,6,2,2) 均值:3
下面计算协方差矩阵第(1,2)个元素:
元素(1,2)=(1-3.25,3-3.25,4-3.25,5-3.25)*(2-3,6-3,2-3,2-3)=-1
类似的,我们可以把2*2个元素都计算出来:
这个题目的最终结果就是:
我们来分析一下上面的例子。首先看一下元素(1,1)的计算过程:
把所有数据的第一个维度拿出来,求出均值,之后的求解过程完全是我们熟悉的「方差」的求法。也就是说,这完完全全就是在求所有数据第一维元素(共4个)的方差(8.75)嘛。类似地,元素(2,2)求的是第二维(共4个)元素的方差(12)。
再来看元素(1,2),这分明就是我们高数里面学的求 x 和 y 的协方差,不再单独计算某一维度的分散程度,而是把两个维度的分散值结合起来,这里才真正体现了「协方差矩阵」中「协方差」的意味。从计算过程和计算结果都能看出,元素(2,1)与元素(1,2)是一样的。也就是说,所有协方差矩阵都是一个对称阵。
总结一下协方差矩阵的特点:
对角线元素(i,i)为数据第 i 维的方差。
非对角线元素(i,j)为第 i 维和第 j 维的协方差。
协方差矩阵是对称阵。
现在只需要了解这些就够了。
这些知识也是非常基础的,在各个算法中都有涉及,像偏方差权衡,RL中的方差问题和解决,还有协方差矩阵在二元高斯分布(在下面一片概率论中会讲述)中决定了它的形状,详细演示。
领取专属 10元无门槛券
私享最新 技术干货