机器学习中的数学——特殊类型的向量和矩阵

分类目录:《算法设计与分析》总目录


有些特殊类型的向量和矩阵是特别有用的,本文将介绍它们。

单位向量

单位向量是具有单位范数的向量:
∣ ∣ x ∣ ∣ 2 = 1 ||x||_2=1 ∣∣x∣∣2​=1

如果 x T y = 0 x^Ty=0 xTy=0,那么向量 x x x和向量 y y y互相正交。如果两个向量都有非零范数,那么这两个向量之间的夹角是90度。在 R n R^n Rn中,至多有 n n n个范数非零向量互相正交。如果这些向量不仅互相正交,并且范数都为1,那么我们称它们
是标准正交。

正交矩阵

正交矩阵是指行向量和列向量是分别标准正交的方阵:
A T A = A A T = I A^TA=AA^T=I ATA=AAT=I
这意味着
A T = A − 1 A^T=A^{-1} AT=A−1

所以正交矩阵受到关注是因为求逆计算代价小。我们需要注意正交矩阵的定义。违反直觉的是,正交矩阵的行向量不仅是正交的,还是标准正交的。对于行向量或列向量互相正交但不是标准正交的矩阵,没有对应的专有术语。

对角矩阵

对角矩阵指只在主对角线上含有非零元素,其他位置都是零。

形式上,矩阵 D D D是对角矩阵,当且仅当对于所有的 i ≠ j i\neq j i​=j我们有 D i , j = 0 D_{i, j}=0 Di,j​=0。前文我们已经看到过一个对角矩阵:单位矩阵,对角元素全部是1。我们用 d i a g ( v ) diag(v) diag(v)表示一个对角元素由向量 v v v中元素给定的对角方阵。对角矩阵受到关注的部分原因是对角矩阵的乘法计算很高效。计算乘法 d i a g ( v ) x diag(v)x diag(v)x,我们只需要将 x x x中的每个元素 x i x_i xi​放大 v i v_i vi​倍。换言之, d i a g ( v ) x = v ⊙ x diag(v)x=v\odot x diag(v)x=v⊙x。计算对角方阵的逆矩阵也很高效。对角方阵的逆矩阵存在,当且仅当对角元素都是非零值,在这种情况下, d i a g ( v ) − 1 = d i a g ( [ 1 v 1 , 1 v 2 , ⋯   , 1 v n ] T ) diag(v)^{-1}=diag([\frac{1}{v_1}, \frac{1}{v_2}, \cdots, \frac{1}{v_n}]^T) diag(v)−1=diag([v1​1​,v2​1​,⋯,vn​1​]T)。

在很多情况下,我们可以根据任意矩阵导出一些通用的机器学习算法;但通过将一些矩阵限制为对角矩阵,我们可以得到计算代价较低的算法。

不是所有的对角矩阵都是方阵。长方形的矩阵也有可能是对角矩阵。非方阵的对角矩阵没有逆矩阵,但我们仍然可以高效地计算它们的乘法。对于一个长方形对角矩阵 D D D而言,乘法 D x Dx Dx会涉及到 x x x中每个元素的缩放,如果 D D D是瘦长型矩阵,那么在缩放后的末尾添加一些零;如果 D D D是胖宽型矩阵,那么在缩放后去掉最后一些元素。

对称矩阵

对称矩阵是转置和自己相等的矩阵:
A = A T A=A^T A=AT

当某些不依赖参数顺序的双参数函数生成元素时,对称矩阵经常会出现。例如,如果 A A A是一个距离度量矩阵, A i , j A_{i, j} Ai,j​表示点 i i i到点 j j j的距离,那么 A i , j = A j , i A_{i, j}=A_{j, i} Ai,j​=Aj,i​,因为距离函数是对称的。

上一篇:weblogic补丁下载与安装补丁的方法


下一篇:Keil MDK 禁用指定的编译警告