神经网络文献中的张量:最简单的定义是什么?

机器算法验证 神经网络 术语 定义 张量
2022-01-30 12:13:16

在神经网络文献中,我们经常会遇到“张量”这个词。

它与向量不同吗?从矩阵?你有任何具体的例子来阐明它的定义吗?

我对它的定义有点困惑。Wikipedia 没有帮助,有时我的印象是它的定义取决于所使用的特定机器学习环境(TensorFlow、Caffee、Theano)。

2个回答

出于数据分析的目的,您可以有效地将它们视为数组,可能是多维的。因此它们包括标量、向量、矩阵和所有高阶数组。

精确的数学定义更复杂。基本上这个想法是张量将多线性函数转换为线性函数。(1)(2)(多重线性函数是在其每个分量中都是线性的函数,例如将行列式视为列向量的函数。)

这种定义张量的数学属性的一个结果是张量相对于雅可比变换很好,雅可比对从一个坐标系统到另一个坐标系统的变换进行编码。这就是为什么人们经常将张量的定义视为物理学中“在坐标变化下以某种方式变换的对象”。例如,请参阅此视频或视频。

如果我们正在处理足够“好”的对象(我们希望存在并明确定义的所有导数),那么所有这些考虑张量的方式本质上是等价的。请注意,我提到的考虑张量的第一种方法(多维数组)忽略了协变和逆变张量之间的区别。(区别在于它们的系数在基础向量空间的变化下如何变化,即基本上在行向量和列向量之间。)请参阅这些其他 StackExchange 问题:(1) (2) (3) (4)

对于研究张量在神经网络中的应用的研究人员使用的一本书(例如在以色列的 Technion),有 Wolfgang Hackbusch 的Tensor Spaces and Numerical Calculus我自己还没有读过,虽然后面的一些章节似乎使用了高等数学。

张量 = 多维数组

在机器学习文献中,张量只是多维数组的同义词:

张量,也称为多维数组,是矩阵向高阶的推广,是有用的数据表示架构。

因此,1.d 张量是“向量/元组”,而 2.d。张量是一个“矩阵/2.d.array”。


Theano vs TensorFlow vs Pytorch vs ...

在特定的库中,该术语可能仅限于数值数组:

Theano是一个 Python 库,允许您定义、优化和有效评估涉及多维数组的数学表达式。

或包含更广泛数据类型的那些:

Tensor - TensorFlow 程序中的主要数据结构。张量是 N 维(其中 N 可能非常大)数据结构,最常见的是标量、向量或矩阵。张量的元素可以保存整数、浮点或字符串值。


词源

张量在数学中具有更具体的含义,作为向量空间之间的多线性映射的抽象,但是给定一个固定的基础,这样的映射可以表示为多维数组,机器学习术语正是从这种用法中得名的。