向量内积
这个基本上是中学当中数学课本上的概念,两个向量的内积非常简单,我们直接看公式回顾一下:
这里X和Y都是n维的向量,两个向量能够计算内积的前提是两个向量的维度一样。从上面公式可以看出来,两个向量的内积就等于两个向量对应各个维度的分量的乘积的和。
为了和矩阵乘法以及普通的乘法做区分,我们通常把两个向量的内积写成:([x, y]=x^Ty)。
这里有一个很重要的性质,对于一个向量而言,我们可以用欧几里得公式计算它的长度。进一步,我们可以用向量的长度以及向量之间的夹角来表示向量的内积,如下:
其中的( heta)是x和y向量之间的夹角,对于三维及以下空间内的向量,这一点非常直观。对于高维度的向量,我们很难想象它的物理意义。不过没有关系,我们一样可以认为向量之间存在一个广义超空间内的一个夹角。在机器学习领域,我们通常用这个夹角来反应向量之间的相似度。两个向量越相似,那么它们之间的夹角应该越小,对应的cos余弦值应该越大。所以我们可以用两个向量之间的余弦值来反应它们之间的相似度。余弦值的计算就源于此。
正交向量
从上面的公式可以看出来,向量的内积等于两个向量长度乘上向量之间的夹角。对于非零向量而言,它们的长度都应该是大于0的。所以两个向量的内积的大小,就完全取决于向量之间的夹角( heta)。
如果( heta)小于90°,那么(cos heta>0),那么内积为正值。如果( heta)大于90°,那么余弦值为负值。所以我们可以通过余弦值正负判断夹角是锐角还是钝角。既然说到夹角,自然就离不开一种特殊情况——垂直。
如果是在二维平面当中,两个向量夹角是90°,那么显然这两个向量垂直。在高维空间当中也是一样,不过我们一般不说垂直,而是会换一个词——正交。两个非零向量的内积为0,说明两个向量正交。
正交向量组
搞清楚了正交向量之后,正交向量组也就明确了。正交向量组是指一组两两正交且非零的向量组。
如果n维的向量组:(a_1, a_2, cdots,a_r)两两正交,那么,它们一定线性无关。也就是说不存在一组不为零的系数(lambda),使得:
这点很容易证明,由于向量组内向量均不为0,我们只需要在等式两边随便乘上一个向量即可,假设我们乘的是(a_1)。由于它与其他向量两两正交,所以其他项全为0。如果要等式成立,那么必须要:
由于(a_1)不为0,那么(a_1^Ta_1)必然不为0,要使得等式成立,只能是(lambda_1)为0。
规范正交基
我们把正交向量组的概念和基的概念融合,如果向量组(e_1, e_2, cdots, e_r)是向量空间V的一个基。如果它们之间彼此正交,那么就称它们是一组规范正交基。
对于向量a,我们可以很方便地求出它在规范正交基下各个维度的坐标:
也就是说向量a,在规范正交基下某一个维度的坐标, 等于它和这个维度的正交基向量的内积。
如果说我们已经知道向量空间V中的一组基是(a_1, a_2, cdots, a_r),我们怎么求V的规范正交基呢?
这里要用到一个算法,叫做施密特算法。通过这个算法,我们可以通过向量空间的一组基来求出它的正交基。
这个算法很简单,我们可以直接写出它的公式:
我们随便取两个b向量乘一下就知道,b向量组之中两两正交。所以,我们只要将b向量组单位化一下,就可以求出对应的规范正交基了。
即:
这个算法虽然不难,但蛮重要。在机器学习领域中一些降维算法,很多都与施密特正交化方法有关。
正交矩阵
之前我们在介绍矩阵的时候,曾经说过,我们可以把一个矩阵看成是一个特定的向量组的结构。同样,我们也可以把一个规范正交基向量组看成是一个矩阵,那么这个矩阵就称为是正交矩阵。
它拥有如下性质:
其中I是单位矩阵,它的充要条件是矩阵A当中的每一列都是一个单位列向量,并且两两正交。
最后,我们看一下正交矩阵的性质。它的主要性质有三个:
-
如果A是正交矩阵,那么(A^{-1}=A^T),也是正交矩阵,并且(|A|=pm 1)。
-
如果A和B都是正交矩阵,并且它们阶数一样,那么AB也是正交矩阵。
-
如果A是正交矩阵,向量y经过A变换之后行列式保持不变。
这三个性质都很简单,我们通过正交矩阵的性质基本上都可以直接推导得到,或者是非常直观,和我们的直觉吻合。其实怎么推导不是重点,对于算法工程师而言,更重要的是理解这些概念的意思,并且将它与算法模型当中起到的功能联系起来,这才是最重要的事情。
今天关于正交向量和矩阵的内容就到这里,如果觉得有所收获,请顺手点个关注或者转发吧,你们的支持是我最大的动力。