矩阵力量:线性代数全彩图解+微课+Python编程
上QQ阅读APP看书,第一时间看更新

2.6 向量内积:结果为标量

向量内积(inner product),又叫标量积(scalar product)、点积(dot product)、点乘。注意,向量内积的运算结果为标量,而非向量。

给定ab两个等行数列向量,即

列向量ab的内积定义为

式(2.34)也适用于两个等列数行向量计算内积。注意,向量内积也是一种“向量→标量”的运算规则。

图2.16所示的两个列向量ab的内积为

图2.16 ab两个平面向量

Bk4_Ch2_06.py计算上述向量内积。此外,还可以用numpy.dot()计算向量内积。值得注意的是,如果输入为一维数组,则numpy.dot()输出结果为内积。

如果输入为矩阵,则numpy.dot()输出结果为矩阵乘积,相当于矩阵运算符@,如Bk4_Ch2_07.py给出的例子。

numpy.vdot()函数也可以计算两个向量内积。如果输入是矩阵,则矩阵会按照先行后列顺序展开成向量之后,再计算向量内积。Bk4_Ch2_08.py给出相关示例。

常用的向量内积性质如下:

请读者格外注意以下几个向量内积运算和Σ求和运算的关系:

其中

本书第5章还会从矩阵乘法角度介绍更多求和运算。

几何视角

如图2.16所示,从几何角度看,向量内积相当于两个向量的模(L2范数)与它们之间夹角余弦值三者之积,即

注意:式(2.39)中θ代表向量ab的“相对夹角”。

此外,向量内积还可以从投影(projection)角度来解释,这是本书第9章要介绍的内容。

aL2范数也可以通过向量内积求得,即有

左右等式平方得到

式(2.41)相当于“距离的平方”。

柯西-施瓦茨不等式

观察,我们可以发现cosθ的取值范围为[−1, 1],因此ab内积的取值范围为

图2.17所示为7个不同向量的夹角状态。

θ=0°时,cosθ=1,ab同向,此时向量内积最大;θ=180°时,cosθ=−1,ab反向,此时向量内积最小。

平面上,非零向量ab垂直,ab夹角为90°,两者向量内积为0,即

多维向量ab向量内积为0,我们称ab正交(orthogonal)。本书上一章提到,正交是线性代数的概念,是垂直的推广。

图2.17 向量夹角

有了以上分析,我们就可以引入一个重要的不等式——柯西-施瓦茨不等式(Cauchy–Schwarz inequality)

其中:ab向量内积的绝对值。

用尖括号来表达向量内积,可以写成

空间中,上述不等式等价于

余弦定理

回忆丛书第一本书讲解的余弦定理(law of cosines)

其中:abc分别为图2.18所示三角形的三边的边长。下面,我们用余弦定理来推导式(2.39)。

如图2.18所示,将三角形三个边视作向量,将三个向量长度代入式(2.49),可以得到

向量ab之差为向量c,即

图2.18 余弦定理

式(2.51)等式左右分别和自身计算向量内积,得到等式

整理得到

利用式(2.41),式(2.53)可以写作

比较式(2.50)和式(2.54),可以得到

在概率统计、数据分析、机器学习等领域,向量内积无处不在。下面举几个例子。

在多维空间中,给定AB坐标为

计算AB两点的距离AB

用起点位于原点的向量ab分别代表AB点,AB距离就是abL2范数,也就是欧几里得距离

回忆《数学要素》一册中介绍的样本方差公式,具体为

注意:对于总体方差,式(2.59)分母中的n–1应改为n。还默认X为有n个相等概率值的平均分布。

x

式(2.59)可以写成

根据广播原则,xµ相当于向量x的每一个元素分别减去µ

回忆总样本协方差公式

同样,对于总体协方差,式(2.62)分母中的n–1改为n即可。

同样利用向量内积运算法则,式(2.62)可以写成

本书第22章将从线性代数角度再和大家探讨概率统计的相关内容。