本文始发于个人公众号:TechFlow
向量内积
这个基本上是中学当中数学课本上的概念,两个向量的内积非常简单,我们直接看公式回顾一下:
X ⋅ Y = ∑ i = 1 n x i ∗ y i X \cdot Y = \sum_{i=1}^n x_i*y_i X⋅Y=i=1∑nxi∗yi
这里X和Y都是n维的向量,两个向量能够计算内积的前提是两个向量的维度一样。从上面公式可以看出来,两个向量的内积就等于两个向量对应各个维度的分量的乘积的和。
为了和矩阵乘法以及普通的乘法做区分,我们通常把两个向量的内积写成: [ x , y ] = x T y [x, y]=x^Ty [x,y]=xTy。
这里有一个很重要的性质,对于一个向量而言,我们可以用欧几里得公式计算它的长度。进一步,我们可以用向量的长度以及向量之间的夹角来表示向量的内积,如下:
[ x , y ] = ∣ x ∣ ⋅ ∣ y ∣ cos θ [x, y]=|x|\cdot |y|\cos\theta [x,y]=∣x∣⋅∣y∣cosθ
其中的 θ \theta θ是x和y向量之间的夹角,对于三维及以下空间内的向量,这一点非常直观。对于高维度的向量,我们很难想象它的物理意义。不过没有关系,我们一样可以认为向量之间存在一个广义超空间内的一个夹角。在机器学习领域,我们通常用这个夹角来反应向量之间的相似度。两个向量越相似,那么它们之间的夹角应该越小,对应的cos余弦值应该越大。所以我们可以用两个向量之间的余弦值来反应它们之间的相似度。余弦值的计算就源于此。
正交向量
从上面的公式可以看出来,向量的内积等于两个向量长度乘上向量之间的夹角。对于非零向量而言,它们的长度都应该是大于0的。所以两个向量的内积的大小,就完全取决于向量之间的夹角 θ \theta θ。
如果 θ \theta θ小于90°,那么 cos θ > 0 \cos\theta>0 cosθ>0,那么内积为正值。如果 θ \theta θ大于90°,那么余弦值为负值。所以我们可以通过余弦值正负判断夹角是锐角还是钝角。既然说到夹角,自然就离不开一种特殊情况——垂直。
如果是在二维平面当中,两个向量夹角是90°,那么显然这两个向量垂直。在高维空间当中也是一样,不过我们一般不说垂直,而是会换一个词——正交。两个非零向量的内积为0,说明两个向量正交。
正交向量组
搞清楚了正交向量之后,正交向量组也就明确了。正交向量组是指一组两两正交且非零的向量组。
如果n维的向量组: a 1 , a 2 , ⋯ , a r a_1, a_2, \cdots,a_r a1,a2,⋯,ar两两正交,那么,它们一定线性无关。也就是说不存在一组不为零的系数 λ \lambda λ,使得:
λ 1 a 1 + λ 2 a 2 + ⋯ + λ r a r = 0 \lambda_1a_1+\lambda_2a_2+\cdots + \lambda_ra_r=0 λ1a