Q5:定义张量缩并(Tensor Contraction)并推导其梯度计算(如
)
张量缩并到底是啥
张量这东西,你就把它当作一种超厉害的数组,能用来表示各种各样维度的数据。比如说,单独一个数,像 5,这就是 0 - 阶张量,也就是我们平常说的标量;要是一条有方向、有长度的线,用数组 [2, 3] 这样表示出来,这就是 1 - 阶张量,也就是向量;一个像表格一样的数据,比如 [[1, 2], [3, 4]] ,这就是 2 - 阶张量,也就是矩阵。而更高阶的张量呢,能表示更为复杂的多维数据。
张量缩并,简单来讲,就是对张量进行的一种操作,核心就是把张量的某些指标加起来,这样就能让张量的阶数降低。就拿这个式子来说,这里的 A 和 B 都是 3 - 阶张量。这意味着 A的数据结构是三维的,有 i、k、l这三个维度的指标,B也是如此。我们要得到 C 这个张量,就得对 A 和 B 里的 k 和 l 这两个指标进行求和。具体的计算过程是
。你看,经过这么一操作,原本 3 - 阶的 A 和 B ,就得到了一个 2 - 阶的 C 张量。
梯度计算是怎么推导的
现在来讲讲怎么算 关于
和
的梯度,这和我们学过的多元函数求导思路差不多。
- 求
:
看 的计算公式
。当 m = i , n = k , q = l 时,在求导过程中,只有
这一项和
有关,其他项都能当作常数。我们把这个求和式子展开来看,
。当求导变量
与
指标对应相等时,比如 m = i , n = k , q = l ,此时
对应的就是
,那么对
关于
求导,就相当于对
这一项求导(因为其他项不含
,求导为 0)。根据求导公式
,这里
,
,
,