【转载:什么是张量 (tensor)? - 马同学的回答 - 知乎 https://www.zhihu.com/question/20695804/answer/447498656】
这一系列文章源自此系列视频,需要科学上网
此系列文章算是该视频的读书笔记,不过加入了个人对线性代数的理解,以及增加了很多动画帮助理解。
根据维基百科的介绍,“张量”一词最初由威廉·罗恩·哈密顿在1846年引入。对,就是那个发明四元数的哈密顿:
威廉·罗恩·哈密顿
1890年格雷戈里奥·里奇-库尔巴斯托罗的《绝对微分几何》、1900年列维-奇维塔的《绝对微分》进一步在数学上发展了“张量”的概念。
伟大的物理学家,爱因斯坦为了描述他的天才想法,恶补了黎曼几何和张量分析,终于在这两大数学工具的帮助下,创立了他最为得意的弯曲时空的物理理论:广义相对论。至此张量在物理上大放光彩。如果想学习广义相对论,张量肯定是需要学习的。
阿尔伯特·爱因斯坦
广义相对论中最核心的思想就是质量会带来时空弯曲,就好像保龄球滚过长绒地毯:
可以想象,时空弯曲中有大量的几何关系,为了描述复杂的几何关系,爱因斯坦引入了“张量”,比如著名的 爱因斯坦场方程 :
上面式子中, 就是各种的张量。
可以先有一个直观印象,“张量”就是用来描述几何的,这里几何指的是什么?后面很快就会解释。
1 关于张量的四种定义
“张量”在不同的运用场景下有不同的定义。
第一个定义,张量是多维数组,这个定义常见于各种人工智能软件。听起来还好理解。
第二个定义,张量是某种几何对象,不会随着坐标系的改变而改变。
第三个定义,张量是向量和余向量(covector)通过张量积(tensor product)组合而成的。
第四个定义,张量是多重线性映射,即:
其中,V是矢量空间,V*是对应的对偶空间。
好了,不闹了,后面的文章会尝试逐一解释这四种定义,并且可以看到这四种定义是不断认知升级的结果。
2 多维数组
从第一个定义:张量是多维数组开始。
现在机器学习很火,知名开源框架tensor-flow是这么定义tensor(张量)的:
A tensor is a generalization of vectors and metrics to potentially higher dimensions
也就是说,张量(tensor)是多维数组,目的是把向量、矩阵推向更高的维度。
更具体点,也即是说:
把三维张量画成一个立方体:
我们就可以进一步画出更高维的张量:
从数据结构上来看,张量就是多维数组。
这个定义本身没有错,但是没有真正反映张量的核心。
3 几何对象
我们来看下第二个定义:张量是某种几何对象,不会随着坐标系的改变而改变。
3.1 二维平面
最简单的几何对象就是二维平面,在线性代数中称为 (这是一个向量空间),下面用一个有颜色的方框来表示:
这个可以通过直角坐标系来描述(也就是单位正交基来张成):
也可以由别的坐标系来描述(别的基来张成),当然本身不会因为基不同而发生改变:
上面的图有几点值得注意:
- 是一个几何对象,它与坐标系(基)无关
- 可以通过不同的坐标系(基)来描述(张成)
- 并且,不同的坐标系(基)之间有明确的转换规则(这个我们后面再说)
那这样一个几何对象, 就可以用张量来描述。
3.2 二维平面中的向量
中的向量,也是一个几何对象:
当被某个基张成的时候,向量也获得了坐标值:
如果基发生了变换,坐标值也会不断的变化:
从而可以得到如下的结论:
- 向量是一个几何对象,它与基无关
- 不同的基下,有不同的坐标值
- 并且,不同的坐标值之间有明确的转换规则
所以,向量这个几何对象也可以用张量来描述。
3.3 二维平面之间的线性映射
假设有如下线性映射:
其实它也是一个几何对象,可以图示如下:
上图表示左边中的一点(一点也对应一个向量),通过 ,和右边 中的一点关联了起来,这就是映射。
当用单位正交基来描述左右两个,可以得到一个矩阵A 来表示此:
不同的基,会获得不同的矩阵(也就是等价矩阵),比如说 :
进而得到如下的结论:
- 线性映射 是一个几何对象,它与基无关
- 不同的基下,有不同的矩阵来代表
- 并且,不同的矩阵之间有明确的转换规则
所以, 这个几何对象也可以用张量来描述。
4 总结
可见,张量可以表达非常多的线性代数的研究对象。
借用线性代数中“张成”这个词,或许“张量”这个名字的意思就是“可以张成很多线性代数研究对象的量”。
下一节,我们会仔细研究下,张量是怎么去表示向量空间、矢量、线性映射的,以及不同基下的转换规则是什么。