张量
- 2019-2-24
- 计算机视觉
张量(Tensor)是一个定义在一些向量空间和一些对偶空间的笛卡儿积上的多重线性映射,其坐标是 \(|n|\) 维空间内,有 \(|n|\) 个分量的一种量, 其中每个分量都是坐标的函数, 而在坐标变换时,这些分量也依照某些规则作线性变换。
### 2019.3.26 更新 ###
之前曾在百度百科中看过这么一段话:
在同构的意义下,第零阶张量 (r = 0) 为标量 (Scalar),第一阶张量 (r = 1) 为向量 (Vector), 第二阶张量 (r = 2) 则成为矩阵 (Matrix)。例如,对于3维空间,r=1时的张量为此向量:(x,y,z)。
当时对 在同构的意义下
这句限定语不是很理解。刚好最近离散数学上到了同构
这一节,总算是弄懂了。 我们知道,如果两个代数系统同构,则要求两者的载体、定义在载体上的运算以及相应的代数常数完全相同(可以理解为两个代数仅符号不同)。为什么要加 在同构的意义下
这个限定语呢?因为高阶张量通常有着更多的运算(如三阶张量的纤维操作)而这些运算在标量、向量甚至是矩阵中都是没有的,因此要将多的运算去掉,保持两者的运算数目和种类完全相同,所以说是在同构的意义下,才能说第零阶张量为标量、第一阶张量为向量以及第二阶张量为矩阵。
--- 以下是原文 ---
什么是张量
说到张量之前,让我们先复习一下标量、向量和矩阵:
标量(scalar),其实就是一个实数,如a,b...
向量(vector),又称矢量,是一个一维数组,如 \(x= \begin{bmatrix} a \\ b \\ c \\ d \end{bmatrix}\)
矩阵(matrix),是一个二维数组,如 \(x= \begin{bmatrix} a & b & c \\ d&e&f \\ g&h&i \\ j&k&l \end{bmatrix}\)
张量(tensor),其实就是标量、向量和矩阵在多维空间(\(r\geqslant 3\))中的推广,即张量是一个多维数组,张量的维度 \(r\) 又叫做张量的阶或张量的秩(注意它和矩阵的秩没有关系)。我们可以把标量看成是 0 阶张量、向量是 1 阶张量,矩阵是 2 阶张量。如果把上面那个矩阵改写成 \(x = [[a\ b\ c]\ [d\ e\ f]\ [g\ h\ i]\ [j\ k\ l]]\) 这个形式,可以看出矩阵(2 阶张量)其实就是 1 阶张量(向量)的两重嵌套。按这个思路下去,有以下推论: n 阶张量是 1 维张量的 n 重嵌套。
有了张量,我们可以很轻松地表示一幅图片的信息,如: \[ \begin{bmatrix} [2\ 34\ 45]&[200\ 123\ 34]&[1\ 1\ 1]\\ \lbrack 168\ 3\ 4 ]& [5\ 77\ 1] & [3\ 9\ 25]\\ \lbrack 2\ 3\ 9 ]& [1\ 1\ 1] & [23\ 78\ 255] \end{bmatrix} \] 上面这个 3 维张量表示的就是一幅 3x3 大小的 RGB 图片,我们可以把这个 3 维度张量看成是一个矩阵(2 阶张量)与一个向量(1 阶张量)的嵌套。上面这个 3 维张量还可以这样表示: \[ [[[2\ 34\ 45]\ [200\ 123\ 34]\ [1\ 1\ 1]]\ [\lbrack 168\ 3\ 4 ]\ [5\ 77\ 1]\ [3\ 9\ 25]]\ [\lbrack 2\ 3\ 9 ]\ [1\ 1\ 1]\ [23\ 78\ 255]]] \]
即这个 3 阶段张量的 3 个维度分别是图片高度、宽度和颜色信息。 当然,张量的能够表达的信息远远不止一张图片这么简单。比如,对于一个图片数据集,我们可以使用一个 4 维张量来表示它,这 4 个维度分别是图片在数据集中的编号、图片高度、宽度和色彩信息。