Einstein summation(爱因斯坦求和约定)

By admin , 23 十二月, 2025

**Einstein summation(爱因斯坦求和约定)** 是由爱因斯坦提出的一种**简化张量运算表达式的书写规则**,核心是**省略求和符号**,通过重复下标自动表示求和,广泛用于物理、数学(尤其是张量分析)和机器学习(如矩阵运算、神经网络推导)中。 ### 一、核心规则 1. **自由下标**:表达式中**只出现一次**的下标,代表张量的某个维度(非求和维度)。 2. **哑下标(求和下标)**:表达式中**重复出现两次**的下标,代表对该下标遍历所有可能取值并**求和**,**无需显式写求和符号 $\sum$**。 3. **约束**:**同一个项中,哑下标最多只能出现两次**(避免歧义)。 ### 二、基础示例(向量、矩阵运算) 为了方便理解,我们用机器学习中常见的**向量点积、矩阵乘法**举例。 #### 1. 向量点积 假设有两个三维向量 $\boldsymbol{a} = [a_1,a_2,a_3]$,$\boldsymbol{b} = [b_1,b_2,b_3]$,它们的点积定义为: $$ \boldsymbol{a}\cdot\boldsymbol{b} = \sum_{i=1}^3 a_i b_i = a_1b_1 + a_2b_2 + a_3b_3 $$ 根据爱因斯坦求和约定,**重复下标 $i$ 自动表示求和**,因此可以简化为: $$ \boldsymbol{a}\cdot\boldsymbol{b} = a_i b_i $$ 这里的 $i$ 就是**哑下标**。 #### 2. 矩阵乘法 假设有矩阵 $\boldsymbol{A}$(维度 $m \times n$)和 $\boldsymbol{B}$(维度 $n \times p$),它们的乘积 $\boldsymbol{C} = \boldsymbol{A}\boldsymbol{B}$(维度 $m \times p$)的元素定义为: $$ C_{ij} = \sum_{k=1}^n A_{ik} B_{kj} \quad (i=1..m, j=1..p) $$ 用爱因斯坦求和约定简化后: $$ C_{ij} = A_{ik} B_{kj} $$ - 重复下标 $k$ 是**哑下标**(求和维度); - 只出现一次的 $i,j$ 是**自由下标**(对应矩阵 $\boldsymbol{C}$ 的行和列)。 #### 3. 向量与矩阵相乘 向量 $\boldsymbol{x}$(维度 $n \times 1$)和矩阵 $\boldsymbol{A}$(维度 $m \times n$)相乘,得到向量 $\boldsymbol{y} = \boldsymbol{A}\boldsymbol{x}$(维度 $m \times 1$),其元素为: $$ y_i = \sum_{k=1}^n A_{ik} x_k $$ 简化为爱因斯坦求和形式: $$ y_i = A_{ik} x_k $$ ### 三、在机器学习中的应用 爱因斯坦求和约定能极大简化复杂运算的推导,比如: 1. **神经网络反向传播**:推导权重梯度时,多层矩阵乘法的求和符号可以被省略,公式更简洁。 2. **张量运算**:处理高维张量(如卷积层的特征图)时,多维度的求和可以通过重复下标清晰表示。 3. **PyTorch/TensorFlow 中的 `einsum` 函数**: 框架直接提供了 `torch.einsum` / `tf.einsum` 函数,支持用爱因斯坦求和符号直接编写运算,无需手动展开循环。 示例(PyTorch):


    import torch

    a = torch.tensor([1, 2, 3])
    b = torch.tensor([4, 5, 6])
    # 向量点积:a_i * b_i
    dot_product = torch.einsum('i,i->', a, b)  # 输出: 1*4 + 2*5 + 3*6 = 32

    A = torch.randn(2, 3)
    B = torch.randn(3, 4)
    # 矩阵乘法:C_ij = A_ik * B_kj
    matmul = torch.einsum('ik,kj->ij', A, B)

### 四、关键注意事项 1. 哑下标**仅在单个项中有效**,不同项的哑下标可以重名(不影响)。 2. 如果需要**禁止求和**(即使下标重复),必须明确说明(这种情况极少)。 3. 高维张量的运算中,自由下标的顺序对应结果张量的维度顺序(如 `ik,kj->ij` 中,输出维度是 `i` 在前,`j` 在后)。 ### 总结 爱因斯坦求和约定的本质是**用下标重复代替求和符号**,让张量、矩阵运算的表达式更简洁直观,是数学和机器学习中高效的符号工具。

评论

Restricted HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id> <img src>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。
CAPTCHA
请输入"Drupal"
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.

最新内容

最新评论