张芷铭的个人博客

向量的各种积

在数学和机器学习中,向量之间的运算有多种形式,主要包括内积(点积)、外积(叉积)、哈达玛积(逐元素积)、张量积(Kronecker积) 等。以下是它们的定义、写法、几何意义和使用场景。


1. 内积(Dot Product / Inner Product)

定义与写法

  • 标准定义:两个向量 $\mathbf{a} = (a_1, a_2, \dots, a_n)$ 和 $\mathbf{b} = (b_1, b_2, \dots, b_n)$ 的内积为: $$ \langle \mathbf{a}, \mathbf{b} \rangle = \mathbf{a} \cdot \mathbf{b} = \sum_{i=1}^n a_i b_i $$
  • 复数表示(二维情况): $$ \mathbf{a} \cdot \mathbf{b} = \text{Re}(\mathbf{a} \mathbf{b}^) $$ 其中 $\mathbf{b}^$ 是共轭复数。

几何意义

  • 衡量两个向量的相似度
    • 如果 $\mathbf{a} \cdot \mathbf{b} > 0$,夹角 $\theta < 90^\circ$(方向相近)。
    • 如果 $\mathbf{a} \cdot \mathbf{b} = 0$,夹角 $\theta = 90^\circ$(正交)。
    • 如果 $\mathbf{a} \cdot \mathbf{b} < 0$,夹角 $\theta > 90^\circ$(方向相反)。
  • 计算向量长度(模): $$ |\mathbf{a}| = \sqrt{\mathbf{a} \cdot \mathbf{a}} $$

使用场景

  • 机器学习
    • 计算注意力权重(如 Transformer 中的 $\mathbf{Q} \cdot \mathbf{K}$)。
    • 计算余弦相似度(归一化内积)。
  • 物理
    • 计算力做的功 $W = \mathbf{F} \cdot \mathbf{d}$。
  • 计算机图形学
    • 计算光照模型(如漫反射光强度)。

2. 外积(Cross Product)

定义与写法

  • 仅适用于三维向量: $$ \mathbf{a} \times \mathbf{b} = \begin{vmatrix} \mathbf{i} & \mathbf{j} & \mathbf{k} \ a_1 & a_2 & a_3 \ b_1 & b_2 & b_3 \ \end{vmatrix} = (a_2 b_3 - a_3 b_2, a_3 b_1 - a_1 b_3, a_1 b_2 - a_2 b_1) $$
  • 二维情况(伪标量): $$ \mathbf{a} \times \mathbf{b} = a_1 b_2 - a_2 b_1 $$

几何意义

  • 结果是一个垂直于 $\mathbf{a}$ 和 $\mathbf{b}$ 的向量(三维)。
  • 其大小等于 $|\mathbf{a}| |\mathbf{b}| \sin \theta$,代表平行四边形的面积
  • 二维外积的绝对值等于平行四边形的有向面积

使用场景

  • 物理
    • 计算力矩 $\mathbf{\tau} = \mathbf{r} \times \mathbf{F}$。
    • 计算角动量 $\mathbf{L} = \mathbf{r} \times \mathbf{p}$。
  • 计算机图形学
    • 计算表面法向量(用于光照计算)。
    • 判断点是否在三角形内(叉积符号判断)。

3. 哈达玛积(Hadamard Product / Element-wise Product)

定义与写法

  • 逐元素相乘: $$ \mathbf{a} \odot \mathbf{b} = (a_1 b_1, a_2 b_2, \dots, a_n b_n) $$
  • 矩阵形式: $$ \mathbf{A} \odot \mathbf{B} = \begin{bmatrix} a_{11} b_{11} & a_{12} b_{12} & \cdots \ a_{21} b_{21} & a_{22} b_{22} & \cdots \ \vdots & \vdots & \ddots \ \end{bmatrix} $$

几何意义

  • 不直接对应几何关系,主要用于数值计算

使用场景

  • 深度学习
    • 激活函数(如 $\sigma(\mathbf{x}) \odot \mathbf{x}$ 在 Swish 激活函数中)。
    • 注意力机制中的掩码(Masked Attention)。
  • 信号处理
    • 滤波器系数相乘(如 FIR 滤波器)。

4. 张量积(Kronecker Product / Tensor Product)

定义与写法

  • 生成高阶张量: $$ \mathbf{a} \otimes \mathbf{b} = \begin{bmatrix} a_1 \mathbf{b} \ a_2 \mathbf{b} \ \vdots \ a_n \mathbf{b} \ \end{bmatrix}

    \begin{bmatrix} a_1 b_1 & a_1 b_2 & \cdots \ a_1 b_2 & a_1 b_2 & \cdots \ \vdots & \vdots & \ddots \ \end{bmatrix} $$

几何意义

  • 用于构造高维空间的基向量(如量子力学中的纠缠态)。

使用场景

  • 量子计算
    • 构造多量子比特态(如 $|\psi\rangle \otimes |\phi\rangle$)。
  • 机器学习
    • 核方法(Kernel Methods)中的特征映射。
    • 张量分解(如 CP 分解)。

5. 总结对比

积的类型符号适用维度结果类型主要用途
内积(点积)$\mathbf{a} \cdot \mathbf{b}$任意标量相似度计算、投影
外积(叉积)$\mathbf{a} \times \mathbf{b}$仅 3D向量法向量、力矩计算
哈达玛积$\mathbf{a} \odot \mathbf{b}$任意同维向量逐元素运算、掩码
张量积$\mathbf{a} \otimes \mathbf{b}$任意高阶张量构造高维空间

选择指南

  • 计算相似度? → 用内积
  • 求垂直向量? → 用外积(仅 3D)。
  • 逐元素运算? → 用哈达玛积
  • 构造高维空间? → 用张量积

这些运算在机器学习、物理、计算机图形学、量子计算等领域都有广泛应用,理解它们的区别有助于正确选择计算方式。

💬 评论