跳至内容
数据科学

点积:理论、计算与真实应用

理解这一统摄数学与物理等诸多学科的技术,认识其重要性。
Iheb Gafsi's photo
Iheb Gafsi
已更新 · 8分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续
继续操作即表示您接受我们的《使用条款》和《隐私政策》,并同意您的数据存储在美国。

点积(在欧几里得空间中也称为标量积或内积)是一种基础的数学运算,它将两个向量组合为一个标量值。

点积在多个学科中都非常重要,如线性代数、物理和机器学习。其重要性在于它便于计算向量之间的夹角和投影,进而度量向量间的相似度。我认为,要理解这些领域中的向量关系,深入掌握点积至关重要。

什么是点积?

理解和计算点积有不同途径;本节将介绍其主要定义和性质。

代数定义

从代数的角度看,两个向量的点积是其对应分量乘积之和;因此,对于两个向量:

  

向量积通过如下方式计算:

这一表述在计算上直观明了,并可推广到更高维度。值得注意的是,点积在旋转下保持不变,这凸显了它作为一种与坐标选择无关的向量对齐程度度量的内在属性。

几何定义

几何解释将点积表示为向量的模与它们之间夹角 θ 的余弦:

这种视角表明,点积如何量化方向关系,并有助于形式化地理解投影与正交。可通过余弦定律证明代数定义与几何定义的等价性。

这种视角表明,点积如何量化方向关系,并有助于形式化地理解投影与正交。可通过余弦定律证明代数定义与几何定义的等价性。

该图展示了两个向量点积背后的几何直觉。

处理几何问题时,具备对夹角和勾股定理的良好直觉通常很有帮助。因此,欢迎查阅我们的教程勾股定理:探究几何的基本关系。

代数性质

点积具有交换性。这意味着对 a 与 b 求点积,在交换 a 与 b 的顺序时不会改变结果(a.b = b.a)。

点积还对向量加法满足分配律(a.(b+c) = a.b + a.c)。此外,它是齐次的(对每个自变量线性)并且是正定的,即当 a 非零时 a.a>0,这直接支撑了欧几里得范数的定义:

点积为零表示正交,这在许多应用中具有核心意义。在假设向量位于实欧几里得空间的前提下,这些性质一般成立。

点积计算示例

为了更直观地理解点积计算,我将展示一些例子。设两个二维向量 a=(1,2) 和 b=(3,4)。代数上:

几何上:

类似地,在三维情形下,令 a=(1,2,3) 和 b=(4,5,6):

点积公式

本节将更深入地探讨点积的几何表述并理解其含义。

向量投影

b 在 a 上的标量投影为:

向量投影为:

该运算将向量分解为平行分量与正交分量,应用包括阴影投射或物理中的力分解。其由点积介导,源自余弦关系。

夹角与正交

如前所示,点积可通过以下公式用于夹角计算:

因此,当 a.b=0 时,相应的主夹角为 θ=90°,这为基分解提供了一种易处理的方法。

物理解释

在物理学中,恒力 F 所做的功 W 为:

这一表述还能扩展到功率与能量的考虑。将向量投影到平面在分量分解与方向余弦中也会出现。

点积的性质

本节我将把点积作为内积的特殊情形,解构其数学结构。

双线性型与内积

点积是正定的双线性型。原则上,内积将这一概念推广到满足对称性与线性的其他空间。欧几里得点积与 Rn 中的标准内积保持一致。

复向量

对复向量,内积成为厄米形式:

它是半线性的(对一个自变量线性、对另一个自变量共轭线性),因此在通常意义下不具交换性。此修正形式在量子力学与信号处理中广泛使用。

重要不等式

柯西-施瓦茨不等式指出,对任意两个向量 a 和 b,以下公式成立:

当向量线性相关时取等号。这蕴含三角不等式,并在分析中提供非常实用的界。直观上,它反映了投影的大小不可能超过被投影向量的模。

正交规范基

正交规范基将点积计算简化为坐标提取。它们有助于在理论与实践环境中构造与验证基,如傅里叶分析。

点积的应用

本节我将指出点积的一些重要实践应用。

力学与物理

点积用于计算功(W = F.d)和功率。此前已提及。我当时没来得及说明的是,它在旋转与坐标变换下也保持不变,这使其成为在不同参考系中表述物理定律的合适工具。

计算机图形与游戏开发

几何是计算机图形学的核心组成,而点积是解析几何的核心工具。比如,它支持视场检查和通过法线与光线向量的点积进行光照计算。它还用于通过平面方程进行碰撞检测与阴影/着色计算。

信号处理与机器学习

点积用于在高维空间中度量相似性。它用于卷积、神经网络层(作为加权求和)以及推荐系统。在词向量中,余弦相似度(归一化点积)用于比较语义向量,在诸如检索增强生成等场景中意义重大。

如何在 Python、R 和 Excel 中计算点积

点积可在不同编程环境中高效计算。本节将展示若干示例。

Python 中的点积

Python 对点积有多种实现选择。NumPy 提供 np.dot(a,b) 或 @ 运算符以高效进行向量/矩阵运算。

纯 Python 版本可使用 sum(ai * bi for ai, bi in zip(a,b))。

对数组/矩阵而言,广播与向量化会带来显著的性能提升。如下所示:

import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(np.dot(a, b))  # 32
print(a @ b)         # 32

R 中的点积

R 的 %*% 处理矩阵乘法,而 crossprod(a, b) 或 sum(a * b) 也是可选方案。

如前所述,向量化在 base R 以及诸如Matrix 等包中都能加速计算。

a <- c(1, 2, 3)
b <- c(4, 5, 6)
a %*% b          # returns matrix with 32
sum(a * b)       # 32

Excel 中的点积

对位于 A 列与 B 列的向量,使用 =SUMPRODUCT(A2:A4, B2:B4)。也可成对相乘再手动求和。

对于更大的数据集,数组公式或 Power Query 更合适,尽管与编程工具相比,Excel 在可扩展性方面仍有局限。

顺便一提,欢迎阅读我们的教程SQL 中的笛卡尔积:全面指南与什么是数据产品?概念与最佳实践。

跨平台性能比较

Python 中的 NumPy 相比纯 Python 循环具有更优性能,并依托优化的 BLAS 库与精确的实现和内存分配方式,在大规模数据上具备很好的可扩展性。

R 的向量化在中等规模数据上也相当高效。

Excel 适用于小型数据集或快速原型,但在大规模分析中表现不佳。专用库通常提供更优的性能指标。

点积的进阶概念

点积并不仅仅用于在 Rn 中计算相似性,本节将解释原因。

函数空间与积分

在诸如 L2 的函数空间中,内积可推广为:

在傅里叶分析中有重要应用。

加权内积与矩阵点积

加权形式使用正定矩阵;矩阵的弗罗贝尼乌斯内积为:

张量的推广将这一概念扩展到更高阶。

相对论物理

闵可夫斯基度规给出:

这与欧几里得情形在时空区间上有所不同。

向量相似度度量

由于两个向量 A 与 B 的点积为

那么,将 A 与 B 的范数同时除到两边,可得余弦相似度:

余弦相似度对点积进行了归一化,广泛用于信息检索与机器学习。

特征值分解

探讨点积与对称矩阵之间的联系。讨论正交性与矩阵分解。指出其与主成分分析和谱理论的关联。

点积 vs. 叉积

本节对比点积与叉积。

标量与向量投影

标量投影给出沿某一方向的大小;而向量投影给出平行分量。这些概念支撑了分量分解,并可配合几何示意加以说明。

三重积与叉积比较

标量三重积为:

它给出带符号的体积。此处点积给出标量,而叉积产生向量。相似性或对齐用点积,取向或旋转用叉积n。

方面

点积

叉积

结果

标量

向量

用途

夹角、功、相似性

力矩、面积、垂直方向

维度

任意

主要为三维

为零条件

正交

平行

该表展示了两种运算的一些主要差异。

在旋转与坐标变换下的不变性

点积在正交变换下保持不变,这一性质对物理与工程中的与坐标无关的表述非常有用。当然,乘法有许多不同类型,具有不同的意义与计算方法。查看我们的教程哈达玛积:逐元素矩阵乘法完整指南以了解一个示例。

结语

总之,点积是一种多才多艺且基础的数学工具,广泛用于物理与计算机科学等不同领域。其应用涵盖从功的计算与光照模型到高维数据相似性,凸显其持久的相关性。因此,我认为这些视角能激发对进阶推广的进一步探索。报名参加我们的 R 语言数据科学线性代数 课程继续学习。


Iheb Gafsi's photo
Author
Iheb Gafsi
LinkedIn

我从事加速型 AI 系统的研发,面向去中心化数据与分布式工作负载,构建支持边缘智能的联邦式机器学习流水线。我的工作重点包括大模型、语音处理、计算机视觉、强化学习以及先进的机器学习拓扑结构。

点积常见问题

用通俗的话,什么是点积?

简单来说,点积就是把两个列表(向量)中对应位置的元素相乘后相加。您可以将得到的标量理解为“两个向量有多同向”。例如,方向一致的向量会给出较大的正值。

如何求两个向量的点积?

将对应分量相乘得到一个新向量,然后将其各分量求和。或者,使用向量的模和它们夹角的余弦来计算。两种方法等价。

点积为负意味着什么?

负值表示钝角。这意味着两个向量大致朝相反方向。

点积与叉积有什么区别?

点积是度量对齐程度的标量,而叉积是垂直于二者的向量,其大小等于由两向量构成的平行四边形面积。

为什么点积也叫标量积?

它产生的是一个标量(单个数值),而非某种实体(向量、矩阵、函数等)。因此有历史称谓“标量积”。

点积与两向量夹角之间是什么关系?

a · b = |a| |b| cos θ。锐角为正,90° 时为零,钝角为负。

能解释一下点积的几何含义吗?

它衡量一个向量在另一个向量上的投影——平行时最大,垂直时为零,相反方向时为负。

点积在物理中的一些实际应用是什么?

用于计算功(F · d)、功率(F · v),以及将力分解为分量。

点积如何用于机器学习与深度学习?

通过余弦度量相似性,驱动神经网络层、注意力机制与词向量比较。

点积与叉积有哪些差异?

点积产生标量(度量对齐、适用于任意维度);叉积产生垂直向量(面积/力矩,主要用于三维)。

主题
数据科学

与 DataCamp 一起学习

课程

R 数据科学的线性代数

4 小时
21.9K
本课程介绍线性代数,这是支撑数据科学的最重要数学主题之一。
查看详情开始课程

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续
继续操作即表示您接受我们的《使用条款》和《隐私政策》,并同意您的数据存储在美国。
查看更多