为什么突然对张量着迷?


171

我最近注意到,很多人都在开发许多方法的张量等效项(张量分解,张量内核,用于主题建模的张量等),我想知道,为什么世界突然对张量着迷?最近是否有特别令人惊讶的论文/标准结果带来了这一结果?在计算上比以前怀疑的便宜很多吗?

我不是一个傻瓜,我很感兴趣,并且如果有关于这方面的文章的指针,我很想阅读。


25
似乎“大数据张量”与通常的数学定义共有的唯一保留特征是它们是多维数组。因此,我想说大数据张量是“多维数组”的一种行销方式,因为我高度怀疑机器学习人员会关心数学和物理通常张量所享有的对称性或变换定律,尤其是它们的用处在形成无坐标方程。
Alex R.

2
@AlexR。没有变换不变,没有张量
Aksakal

2
@Aksakal我当然对张量在物理上的使用有些熟悉。我的观点是,物理张量的对称性来自物理对称性,而不是张量定义中必不可少的东西。
aginensky '16

3
@aginensky如果张量不过是多维数组,那么为什么在数学教科书中发现的张量定义听起来如此复杂?摘自Wikipedia:“多维数组中的数字被称为张量的标量分量……就像矢量的分量在我们更改矢量空间的基础时发生变化一样,张量的分量在这种情况下也会发生变化。变换。每个张量都配备有变换定律,该定律详细说明了张量的组成部分如何响应基础的变化。” 在数学上,张量不仅仅是数组。
littleO

4
只是关于此讨论的一些一般想法:我认为,与向量和矩阵一样,实际应用常常成为更丰富理论的简化实例。我正在更深入地阅读本文:epubs.siam.org/doi/abs/10.1137/07070111X?journalCode=siread,让我印象深刻的是,矩阵的“代表性”工具(特征值和奇异值分解)有一些有趣的概括。我敢肯定,除了提供更多索引的漂亮容器之外,还有更多美丽的属性。:)
YS

Answers:


89

张量通常会提供更自然的数据表示形式,例如考虑视频,它由时间上明显相关的图像组成。您可以将其转换为矩阵,但这不是自然的或直观的(对视频的某些矩阵表示进行因子分解意味着什么?)。

张量趋向于以下几个原因:

  • 我们对多线性代数的理解正在迅速提高,特别是在各种因式分解中,这反过来又有助于我们识别新的潜在应用(例如,多路成分分析
  • 软件工具正在出现(例如Tensorlab)并受到欢迎
  • 大数据应用程序通常可以使用张量来解决,例如推荐系统,而大数据本身很热
  • 由于某些张量运算可能很繁重,因此计算能力有所提高(这也是深度学习现在如此流行的主要原因之一)

9
在计算能力方面:我认为最重要的是线性代数在GPU上可以非常快,并且最近它们拥有越来越大的存储空间,这是处理大数据时的最大限制。
Davidmh '16

6
马克·克莱森(Marc Claesen)的答案很好。杜克大学(Duke)杰出的统计学教授David Dunson一直是基于张量建模方法的主要指数之一,正如本演示文稿中的贝叶斯张量回归一样icerm.brown.edu/materials/Slides/sp-f12-w1/…–
Mike Hunter,

正如David所提到的那样,Tensor算法通常很适合并行性,而硬件(例如GPU加速器)的性能越来越好。
Thomas Russell

1
我以为更好的内存/ CPU功能正在发挥作用,但是最近的关注很有趣。我认为这一定是因为最近在推荐系统上取得了许多令人惊讶的成功,也许还有SVM的内核等。感谢您的链接!学习这些东西的好地方...
YS

5
如果将视频存储为多维数组,我看不到该多维数组将如何具有张量应该具有的不变性。在这个例子中,看起来“张量”这个词似乎不合适。
littleO

73

我认为您的问题应该与一个与问题本身一样自由流动和开放的答案相匹配。因此,这是我的两个类比。

首先,除非您是纯粹的数学家,否则可能首先会教您单变量概率和统计学。例如,您的第一个OLS示例很可能在这样的模型上: 最可能的是,您通过实际最小平方和最小化得出了估算值: 然后为参数编写FOC并获得解决方案:

yi=a+bxi+ei
TSS=i(yia¯b¯xi)2
Ť Ť 小号
TTSa¯=0

然后,您被告知,使用矢量(矩阵)表示法可以更轻松地实现此目的:

y=Xb+e

并且TTS变为:

TTS=(yXb¯)(yXb¯)

FOC为:

2X(yXb¯)=0

解决方案是

b¯=(XX)1Xy

如果您擅长线性代数,那么一旦学习了它,便会坚持使用第二种方法,因为它实际上比写下第一种方法中的所有和更容易,尤其是一旦您进入多元统计时。

因此,我的类比是从矩阵移到张量类似于从矢量移到矩阵:如果您知道张量,则某些事情看起来会更容易。

第二,张量来自哪里?我不确定这件事的全部历史,但是我是从理论力学中学到的。当然,我们有一门关于张量的课程,但是我不明白在该数学课程中所有这些花哨的交换指数方法有什么用。在研究张力的情况下,这一切都变得有意义。

因此,在物理学中,它们也以定义为每单位面积力的简单压力示例开始,因此: 这意味着您可以通过将压力(标量)乘以面积单位来计算力矢量(法向矢量)。那就是当我们只有一个无限的平面时。在这种情况下,只有一个垂直力。一个大气球将是一个很好的例子。

F=pdS
FpdS

但是,如果您正在研究材料内部的张力,则需要处理所有可能的方向和表面。在这种情况下,您将在任意给定的表面上向各个方向拉动或推动力,而不仅仅是垂直方向。一些表面被切向力“向侧面”撕裂等。因此,您的方程变为: 力仍然是向量,并且表面积仍然由其法线向量,但是是张量现在,不是标量。

F=PdS
FdSP

好吧,标量和向量也是张量:)

张量自然出现的另一个地方是协方差或相关矩阵。试想一下:如何将一次相关矩阵转换为另一个?您意识到我们不能只这样做: 其中是因为我们需要保持所有正半定数。C0C1

Cθ(i,j)=C0(i,j)+θ(C1(i,j)C0(i,j)),
θ[0,1]Cθ

因此,我们必须找到路径,使,其中 对矩阵的干扰很小。有很多不同的路径,我们可以搜索最短的路径。这就是我们进入黎曼几何,流形和张量的方式。δCθC1=C0+θδCθδCθ

更新:什么是张量?

@amoeba和其他人对张量的含义以及它是否与数组相同进行了热烈的讨论。因此,我认为一个例子是有条理的。

说,我们去集市买杂货,有两个商人花花公子和。我们注意到,如果我们付出美元和美元 然后远销美国苹果磅,远销美国橘子。例如,如果我们同时支付1美元,即,那么我们必须得到1磅苹果和1.5磅橙子。d1d2x1d1x2d2d1y1=2x1x2d2y2=0.5x1+2x2x1=x2=1

我们可以用矩阵的形式表达这种关系:P

 2   -1
-0.5  2 

然后,如果我们付给他们美元,那么商人就生产出​​这么多的苹果和橘子: x

y=Px

这与通过矢量乘法的矩阵完全一样。

现在,让我们声明与其使用这些商人的消费捆绑,而不是分别从这些商人那里购买商品。我们要么同时支付0.71美元,要么我们支付 0.71美元,并要求返还0.71美元。像最初的情况一样,我们去集市,将花费在束1上,将花费在束2上。d1d2z1z2

因此,让我们看一个示例,其中我们仅在束1上花费 2。在这种情况下,第一个商人获得美元,第二个商人获得相同的。因此,我们必须获得与上述示例中相同数量的产品,不是吗?z1=2x1=1x2=1

也许吧,也许不是。您注意到矩阵不是对角线的。这表明出于某种原因,一个商人对其产品收取多少费用还取决于我们向另一商人支付了多少费用。他们必须知道可能是通过谣言付给他们多少钱?在这种情况下,如果我们开始成捆购买,他们肯定会知道我们为每个捆绑包支付了多少,因为我们将捆绑包声明给了集市。在这种情况下,我们如何知道矩阵应保持不变?PP

也许有了我们在市场上付款的全部信息,定价公式也会改变!这将改变我们的矩阵,并且无法说出精确度。P

这是我们输入张量的地方。本质上,我们使用张量说,当我们开始成捆交易而不是直接与每个商人交易时,计算不会改变。这就是约束,它将对施加变换规则,我们将其称为张量。P

特别地,我们可能注意到我们有一个正交基,其中表示向商户支付1美元,而向商户支付美元。我们可能还会注意到,这些束还形成正交基,这也是将第一基简单逆时针旋转45度。这也是第一个基础的PC分解。因此,我们说切换到束是简单的坐标更改,并且不应更改计算。注意,这是我们强加给模型的外部约束。它不是来自矩阵的纯数学属性。d¯1,d¯2diid¯1,d¯2

现在,我们的购物可以表示为向量。向量也是张量,顺便说一句。张量很有趣:它可以表示为,而杂货则表示为。对于杂货,表示来自商人的产品磅,而不是所支付的美元。x=x1d¯1+x2d¯2

P=ijpijd¯id¯j
y=y1d¯1+y2d¯2yii

现在,当我们将坐标更改为束时,张量方程保持不变:

y=Pz

很好,但是支付向量现在位于不同的基础上:,而我们可以在旧的基础上保持生产向量。张量也变化:。很容易得出张量必须如何转换,这将是,其中旋转矩阵定义为。在我们的例子中,它是束的系数。

z=z1d¯1+z2d¯2
y=y1d¯1+y2d¯2
P=ijpijd¯id¯j
PAd¯=Ad¯

我们可以计算出张量变换的公式,它们将产生与和的示例相同的结果。x1=x2=1z1=0.71,z2=0


2
我在这里感到困惑:So, let's look at an example where we spend just z1=1.42 on bundle 1. In this case, the first merchant gets x1=1 dollars, and the second merchant gets the same x2=1.先前您说的第一束就是我们pay both 0.71 dollars。因此,在第一个捆绑包上花费1.42应该每个获得0.71,而不是1,不是吗?
amoeba

@ameba,想法是,捆绑1是,因此,使用捆绑1,您将获得,即每个$ 1d¯1/2+d¯2/2ˉ d 1+ ˉ d 22d¯1+d¯2
Aksakal

2
@Aksakal,我知道这个讨论已经很老了,但是我也不明白(尽管我确实在尝试)。捆绑1是想法从何而来?您能详细说明一下吗?当您以1.42的价格购买捆绑销售商品时,两个商家都得到1?d¯1/2+d¯2/2
Matek

@Aksakal,太好了,谢谢!我认为您在最后一行上有一个错字,您说x1 = x2 = 1(正确),z1 = 0.71,z2 =0。假设我正确理解了所有内容,z1应该为1.42(或1.41,稍微接近一点)至2 ^ 0.5)。
迈克·威廉姆森

71

这不是您问题的答案,而是对不同人在此处提出的问题的扩展评论,即:机器学习“张量”与数学中的张量是否相同?

现在,根据Cichoki 2014年的《大数据处理时代:通过Tensor网络和Tensor分解的新方法》和Cichoki等人的文章。2014年,用于信号处理应用的Tensor分解

高阶张量可以解释为多路数组,[...]

张量可以被认为是一个多索引数值数组,[...]

张量(即多路阵列)[...]

所谓的机器学习中的张量

因此,在机器学习/数据处理中,张量似乎被简单地定义为多维数值数组。这种3D张量的示例是大小的视频帧。根据该定义,通常的 ×数据矩阵是2D张量的一个示例。640 × 480 n × p1000640×480n×p

这不是在数学和物理学中定义张量的方式!

V ... V * p × pVVVp×pp×p×ppV

3×34×44×4×4×4 V

VWpVqW

V

p×ppVn×pX

XWVWnVpXVWXWV

XRn×pRn×pn×p

我的结论是:(a)机器学习张量不是数学/物理张量,并且(b)将它们视为张量积的元素也几乎没有用。

相反,它们是矩阵的多维概括。不幸的是,还没有确定的数学术语,因此“张量”的新含义现在仍然存在。


19
我是一个纯粹的数学家,这是一个很好的答案。特别地,协方差矩阵的示例是理解上面似乎引起混淆的“变换特性”或“对称性”的绝佳方法。如果更改维特征空间上的坐标,则协方差矩阵将以特定可能令人惊讶的方式进行转换;如果对协方差进行更幼稚的转换,则结果将不正确。p
汤姆·丘奇

10
谢谢@Tom,非常感谢您在CrossValidated上发表评论。自从我研究微分几何以来已经有很长时间了,所以如果有人确认我的所作所为,我感到很高兴。遗憾的是,在数学中没有“多维矩阵”的既定术语;看来,“张量”将留在机器学习社区中。您如何认为应该称呼它呢?我想到的最好的东西是矩阵(例如矩阵表示一个视频对象),有点类似于类别。3 nn3n
amoeba

4
@amoeba,在对多维矩阵进行编程时,通常将其称为数组,但是某些语言(例如MATLAB)将其称为矩阵。例如,在FORTRAN中,数组可以具有2个以上的维度。在C / C ++ / Java之类的语言中,数组是一维的,但是您可以拥有数组的数组,这也使它们也可以像多维数组一样工作。MATLAB在语法上支持3个或更多维数组。
阿克萨卡尔州

3
那很有趣。希望您能强调这一点。但是请注意不要将集合与其确定的向量空间混淆,因为区别在统计中很重要。特别是(举一个例子),虽然线性的人组合没有意义,但是将线性的实值函数组合到一组人上既有意义又重要。例如,这是解决线性回归的关键。
ub

8
Per T. Kolda,B,Bada,“张量分解和应用”,SIAM评论2009, epubs.siam.org / doi / pdf / 10.1137 / 07070111X '张量是多维数组。更正式地说,N向或N阶张量是N个向量空间的张量积的元素,每个向量空间都有自己的坐标系。张量的这一概念不应与物理和工程中的张量(例如应力张量)相混淆,后者在数学中通常被称为张量场“
Mark L. Stone

14

作为研究和构建神经网络并反复询问此问题的人,我得出的结论是,我们借用了张量表示法的有用方面,仅仅是因为它们使推导变得容易得多,并且将梯度保持在其原始形状中。该张量链式法则是我所见过的最优雅的衍生工具之一。更多的张量表示法鼓励使用高效的简化方法,而在使用矢量微积分的通用扩展版本时,简直就是噩梦般的发现。

例如,在矢量/矩阵演算中,有4种类型的矩阵乘积(Hadamard,Kronecker,普通和Elementwise),但在张量演算中,只有一种类型的乘法,但它涵盖了所有矩阵乘法等等。如果您要慷慨大方,请解释张量以表示多维数组,我们打算使用基于张量的演算来查找其导数,而不是要处理的对象是张量

老实说,我们可能将其称为多维数组张量,因为大多数机器学习专家并不十分在乎遵守高级数学或物理学的定义。现实情况是,我们只是借鉴了发达的爱因斯坦求和惯例和计算公式,它们通常在描述张量时使用,并且不想一遍又一遍地说基于爱因斯坦求和惯例的演算。也许有一天,我们可能会开发出一套新的表示法和约定,它们仅从张量演算中窃取了所需的内容,专门用于分析神经网络,但作为一个年轻的领域却需要时间。


请注册和/或合并您的帐户(您可以在我们的帮助中心的“ 我的帐户”部分中找到有关如何执行此操作的信息),然后就可以对自己的答案进行编辑和评论。
gung

10

现在,我实际上同意其他答案的大部分内容。但是我将在某一方面扮演Devil的拥护者。再次,它将是自由流动的,所以道歉...

谷歌宣布了一个名为Tensor Flow的深度学习程序。这使我想知道深度学习的“张量”是什么,因为我无法与所见定义建立联系。

在此处输入图片说明

iy

yi=σ(βijxj)

现在的想法是将一堆这样的转换链接在一起,以便获得原始坐标的有用表示。因此,例如,在图像的最后变换之后,简单的逻辑回归将产生出色的分类准确性;而在原始图像上绝对不会。

现在,似乎已经看不见的东西是在适当的张量中寻求的不变性。特别是当转换后的变量的尺寸可能在每一层不同的情况下。[例如,我在张量上看到的一些东西对于非方形雅可比主义者是没有意义的-我可能缺少一些方法]

保留的是变量转换的概念,对于特定任务,向量的某些表示可能比其他表示更有用。类比是在笛卡尔坐标系或极坐标系中解决问题是否更有意义。


编辑以响应@Aksakal:

由于坐标数的变化,无法完美保留向量。但是,从某种意义上说,至少有用的信息可以在转换下保留。例如,使用PCA,我们可能会降低坐标,因此我们无法反转转换,但是降维仍然有用。如果所有后续转换都是可逆的,则可以从倒数第二层映射回输入空间。实际上,我只看到了概率模型,该模型可以通过采样来实现(RBM)。


1
在神经网络的背景下,我一直假设张量的作用就像多维数组。您能否详细说明不变性如何帮助分类/表示?
YS 2016年

上面我可能不清楚,但是在我看来-如果解释正确-不变属性的目标已被放弃。似乎保留的是变量转换的想法。
推测

r¯

但这不是张量的转换属性吗?至少对于在神经网络中似乎更受欢迎的线性和按元素类型的转换,它们在矢量和矩阵中均存在。张量的附加好处是什么?
YS

1
@推测,PCA只是一个旋转和投影。就像将N维空间旋转到PC基础,然后投影到子空间一样。张量在物理学类似的情况下使用,例如在力表面上看着里面机构等的时候
Aksakal

7

这是《非负张量因式分解及其在统计学和计算机视觉中的应用》(A. Shashua和T. Hazan)的简短编辑(针对上下文)摘录,这是为什么至少有人对张量着迷的原因。

任何n维问题都可以通过连接维以二维形式表示。因此,例如,找到一组图像的非负低秩分解的问题是3-NTF(非负张量因式分解),其中图像形成3D立方体的切片,但也可以表示为通过对图像(构成矩阵列的图像)进行矢量化处理来解决NMF(非负矩阵分解)问题。

图像集合的矩阵表示不合适的原因有两个:

  1. 空间冗余(像素,不一定相邻,具有相似的值)在矢量化过程中丢失,因此我们期望效率较低的分解,并且
  2. NMF分解不是唯一的,因此,即使存在(局部)生成模型,NMF也不一定会朝该方向移动,这一点已由Chu,M.,Diele,F.,Plemmons,R. &Ragni,S.“非负矩阵分解的最优性,计算和解释”,SIAM矩阵分析杂志,2004年。例如,图像集上的不变部分趋于在所有因素中形成重影并污染稀疏效应。NTF几乎总是唯一的,因此我们希望NTF方案朝生成模型的方向发展,特别是不受不变部分的影响。

6

[编辑]刚发现彼得·麦卡拉(Peter McCullagh)的书,《统计中的Tensor方法》

张量在信号(或图像)的未知混合物识别中显示出感兴趣的特性,尤其是在规范多态(CP)张量分解的概念周围,例如参见“ 张量:简介”,P。Comon,2014年。以“盲源分离(BSS)”为名:

无论是显式的还是隐式的,张量分解都是许多盲源分离(BSS)算法的核心。特别地,规范多联体(CP)张量分解在确定不确定混合物中起着核心作用。尽管有一些相似之处,但CP和奇异值分解(SVD)却有很大不同。正如本简介中所指出的,一般而言,张量和矩阵具有不同的属性。

最近,已经针对三阶张量得出了一些唯一性结果:关于三阶张量的规范多态分解的唯一性(第1 部分第2部分),I。Domanov 等人。,2013年。

张量分解通常与稀疏分解有关,例如通过在分解因子(正交性,范德蒙德,汉克尔)和低阶上施加结构,以适应非唯一性。

随着对不完整数据分析和确定来自传感器阵列的复杂测量的需求日益增长,张量越来越多地用于矩阵完成,潜变量分析和源分离。

附加说明:规范多态分解显然也等同于均质多项式的Waring分解,作为线性形式的幂之和,可用于系统识别(块结构,并行Wiener-Hammerstein或非线性状态空间模型)。


3

我是否可以特别推荐我的书:Kroonenberg,PM Applied Multiway Data Analysis和Smilde等。多路分析。在化学科学中的应用(均为Wiley)。我的文章也可能是有趣的:Kroonenberg,PM(2014年)。多向成分分析和三向对应分析的历史。在J. Blasius和MJ Greenacre(编辑)。数据的可视化和语言化(第77–94页)。纽约:查普曼和霍尔/ CRC。ISBN 9781466589803。

这些参考文献讨论的是多重数据而不是张量,但涉及的是同一研究领域。


-1

确实,机器学习中的人们不会像数学家和医生那样看重张量。这是一篇可以澄清这种差异的论文:Comon P.,“张量:简要介绍” IEEE Sig。进程 杂志,2014年5月31日


5
数学/物理学中的张量与机器学习中的张量之间的区别真的是“关心”之一吗?似乎机器学习人员使用“张量”作为数字数组(标量,向量,矩阵和具有3个或更多轴的数组,例如在TensorFlow中)的通用术语,而在数学/物理环境中的“张量”则有所不同含义。我认为,建议有关“护理”的问题是将用法的使用错误化为机器学习能力中的“不正确”,而事实上,机器学习上下文无意精确复制数学/物理用法。
Sycorax
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.