矩阵
Matrices
几乎所有机器学习算法都这样那样地使用矩阵代数。这是一个宽泛的话题,以至于不可能在这里一下子介绍完。
你可以参考我的知识库中的《线性代数》部分或其他资料进一步了解。
特征向量与特征值
Eigenvectors and Eigenvalues
在数学上,特别是线性代数中,对于一个给定的方阵
,它的特征向量(eigenvector)
经过这个线性变换之后,得到的新向量仍然与原来的
保持在同一條直线上,但其长度或方向也许会改变。即
<br />
 为标量,即特征向量的长度在该线性变换下缩放的比例,称  为其**特征值**。如果特征值为正,则表示  在经过线性变换的作用后方向也不变;如果特征值为负,说明方向会反转;如果特征值为 0,则是表示缩回零点。但无论怎样,仍在同一条直线上。
链式法则
Deriatives Chain Rule
雅可比矩阵
Jacbian Matrix
在向量分析中,雅可比矩阵(也称作 Jacobi 矩阵)是函数的一阶偏导数以一定方式排列成的矩阵,当其为方阵(square matrix)时,其行列式称为Jacobi行列式。要注意的是,如果雅可比矩阵为方阵,那在英文中雅可比矩阵跟Jacobi行列式两者都称作 Jacobian。
其重要性在于,如果函数 在点
可微的话,在点
的雅可比矩阵即为该函数在该点的最佳线性逼近,也代表雅可比矩阵是单变数实数函数的微分在向量值多变数函数的推广,在这种情况下,雅可比矩阵也被称作函数
在点
的微分或者导数。
定义
假设某函数从 , 从
映射到向量
, 其雅可比矩阵是一
的矩阵,换句话讲也就是从
到
的线性映射,其重要意义在于它表现了一个多变数向量函数的最佳线性逼近。因此,雅可比矩阵类似于单变数函数的导数。
此函数 的雅可比矩阵
为
的矩阵,一般由以下方式定义:
例1
由球坐标系到直角坐标系的转化由 函数给出,其分量为:
此坐标变换的雅可比矩阵是
其 Jacobi 行列式为 ,由于
,如果做变数变换的话其体积元(Volume element),
,会变成:
。
例2
,其各分量为:
其雅可比矩阵为:
此例子说明雅可比矩阵不一定为方阵。
梯度
Gradient
在向量微积分中,梯度(gradient)是一种关于多元导数的概括。平常的一元(单变量)函数的导数是标量值函数,而多元函数的梯度是向量值函数。多元可微函数 在点
上的梯度,是以
在
上的偏导数为分量的向量。
就像一元函数的导数表示这个函数图形的切线的斜率,如果多元函数在点 上的梯度不是零向量,它的方向是这个函数在
上最大增长的方向,而它的量是在这个方向上的增长率。
梯度向量中的幅值和方向是与坐标的选择无关的独立量。
直角坐标
在三维直角坐标系中表示为
为标准的单位向量,分别指向
跟
坐标的方向。虽然使用坐标表达,但结果是在正交变换下不变,从几何的观点来看,这是应该的。举例来讲,函数
的梯度为:
实值函数相对于向量和矩阵的梯度
相对于 n×1 向量 的梯度算子记作
,定义为

对向量的梯度
以 n×1 实向量 为变元的实标量函数
相对于
的梯度为一 n×1 列向量
,定义为
m 维行向量函数 相对于 n 维实向量
的梯度为一 n×m 矩阵,定义为
对矩阵的梯度
实标量函数 相对于 m×n 实矩阵
的梯度为一 m×n 矩阵,简称梯度矩阵,定义为
张量
Tensors
对于机器学习目的,张量可以被描述为多维矩阵矩阵。根据维数,Tensor可以是标量,矢量,矩阵或多维矩阵。维基百科中对张量的解释比较晦涩,由于本人暂时也没做过这方面的研究,所以给出比较通俗的解释。
从物理学角度
张量的概念早在19世纪末就被数学家提出了,但这个概念真正发扬光大,还是在相对论出现以后。原因是,在相对论中,在不同的参考系下看同一个物理系统,它”看起来”是不一样的:比如粒子的动量和能量在不同的参考系下根据 Lorentz 变换相联系。
这带来一个问题:在 Bob 看来,一个粒子的能动量是。如果你问 Bob,这个粒子的能动量是多少,他会告诉你是
。但我 (Andrew) 听了以后,必然是反对的:Bob 说的不对!我看到的粒子的能动量明明是
。
我们知道,Andrew 和 Bob 都没有说错。和
可以通过恰当的 Lorentz 变换相互转化。”你说的我都懂”,想必你已经看得不耐烦了,”可是这个粒子的能动量究竟是多少?” 由于参考系都是平权的,Andrew 和 Bob 的参考系并没有哪个更优越。那我们干脆把它们都舍弃。于是我们说,这个粒子的能动量就由能动量张量
来描述。能动量张量是一个不随坐标而改变的,物理系统内在的量(如果你对左边这句话的确切含义感到疑惑, 请先往下看)。 它在 Andrew 的坐标系里看是
,在 Bob 的坐标系里看是
,
按照 Lorentz 变换变成
。
你现在肯定找到了一点感觉。什么是张量?如 A.Zee 书中所说:A tensor is something that transforms like a tensor!一个量,在不同的参考系下按照某种特定的法则进行变换,就是张量。
用张量有什么好处?物理定律是不会随参考系的变化而变化的。虑下面一个物理过程:两个粒子1和2经过散射变成了3和4。在 Andrew 看来,能动量守恒是。但这样写,并不能直接看出 Bob 也看到能动量守恒。但如果用张量的语言直接写成:
,我们立刻就知道它在 Andrew 看来是
,在 Bob 看来是
。用张量语言描述的物理定律自动保证了不随参考系变化的这一性质. 而且从记号的角度看, 用张量也更加简洁. [*]
从数学的角度
我们已经从物理上理解了什么是张量。物理学家到此就很满意了,但严谨的数学家们并不满意。“你刚刚说张量是一个不随坐标而改变的,物理系统内在的量”,数学家质问道,“你说的我都懂,可是张量究竟是什么?”
如果你对线性代数略知一二,可能知道线性变换这个概念。线性变换这个概念的精髓之处在于,它不依赖于线性空间的基的选取。在某一组基下,它的矩阵表示是一个模样;在另外一组基下,它的矩阵表示
是另一个模样,其中
是基变换矩阵。有一种常见的说法:矩阵的意义是线性变换,相似矩阵是同一个线性变换在不同的基下的表示。
“同一个线性变换在不同的基下的表示”, 这难道不就是和之前说的张量是一回事嘛!Lorentz 变换就是 Minkowski 空间中的基变换,能动量张量实质上就是一个线性变换。 Andrew 和 Bob 看到的能动量张量, 不就是这个线性变换在不同的基下的表示吗?
你现在肯定找到了一点感觉,什么是张量?在数学家眼中,张量已经被抽象成了线性变换。
当然,数学家们还可以再进一步抽象这个概念,提取出更普遍的 universal property。这时, 张量被定义为张量积空间中的一个元素。 具体的定义不在此赘述, 请参考相关专著。但尽管已经抽象到那样的程度, 其背后的思想依然是不变的。
最后引用陈维桓先生的《微分流形初步》一书中的一段话进行总结: 张量的概念是 G.Ricci 在19世纪末提出的。G.Ricci 研究张量的目的是为几何性质和物理规律的表达寻求一种在坐标变换下不变的形式。他所考虑的张量是如同向量的分量那样的数组,要求它们在坐标变换下服从某种线性变换的规律。 近代的理论已经把张量叙述成向量空间及其对偶空间上的多重线性函数,但是用分量表示张量仍有它的重要性,尤其是涉及张量的计算时更是如此。
[*] 如果还定义了内积/缩并等运算,还可以由张量迅速得到一些不变量。此时会涉及对偶空间(因为内积本质是个线性函数)等概念,进而涉及张量的协变和逆变。为了行文简洁, 正文中没有提及这些概念,但它们本质上和正文所说没有区别。
维数灾难
Curse of Dimensionality
在样本量一定的情况下,维度越高,样本在空间中的分布越呈现稀疏性。
这很容易理解。假设随机变量服从均匀分布,如果一维空间(即数轴上的某一区间)需要N个样本才能完全覆盖,那么当二维空间下还是N个样本时,覆盖度就有所下降。随着维度的增加,覆盖度指数级下降。
这种分布的稀疏性带来2个不好的影响:
模型参数难以正确估计(例如:样本不够时,得出的决策边界往往是过拟合的)。假设均匀分布下,一维空间(即数轴上的某一区间)需要N个样本才能完全覆盖,那么二维均匀分布下就需要N^2个样本才能完全覆盖,三维N^3个,依次类推。因此,随着维度的增加,理论上需要指数增长的样本数量覆盖到整个样本空间上时,才能保证模型能有效的估计参数。而对于那些具有非线性决策边界的分类器(如:神经网络,决策树,KNN)来说,如果样本不够多时,往往很容易过拟合。
样本分布位于中心附近的概率,随着维度的增加,越来越低;而样本处在边缘的概率,则越来越高。通常来讲,样本的特征位于边缘时,比位于中心区域附近更难分类,因为边缘样本的特征取值范围变化太大。想象二维空间下的两个同心圆,假设r1=0.5,r2=1,那么面积之比为1/4;如果半径不变,在三维空间中,体积之比变成1/8;到了8维空间下,超球体的体积之比为1/256,仅仅占到2%。当维数趋于无穷时,位于中心附近的概率趋于0。这种情况下,一些度量相异性的距离指标(如:欧式距离)效果会大大折扣,从而导致一些基于这些指标的分类器在高维度的时候表现不好。
[1] https://www.zhihu.com/question/27836140/answer/507265957 [2] https://www.visiondummy.com/2014/04/curse-dimensionality-affect-classification/