概念
张量(Tensor)和向量(Vector)都是数学中的概念,它们在线性代数和深度学习中有着重要的应用。
-
向量(Vector):
- 向量是一种数学对象,可以视为具有大小和方向的量。在数学和物理学中,向量常用来表示力、速度、位移等。
- 在更抽象的数学领域,向量可以看作是一个一维数组,其中的元素可以是实数、复数等。例如,一个三维向量可以表示为 ([a, b, c]),其中 (a)、(b) 和 (c) 是向量的分量。
- 向量是张量的一种特殊情况,具体来说,向量可以看作是一阶张量。
-
张量(Tensor):
- 张量是向量和矩阵概念的推广。它是一个可以表示在多个维度上的数据的数学对象。在物理学中,张量用来描述物体的物理属性(如应力、应变等)在不同方向上的分布。
- 在深度学习中,张量通常用来表示数据和参数。例如,一个二维张量可以表示一个矩阵,一个三维张量可以表示一组矩阵,更高维度的张量可以用来表示更复杂的数据结构。
- 张量的“阶”或“秩”是描述张量维度的方式。标量(单个数字)可以看作是零阶张量,向量是一阶张量,矩阵是二阶张量,以此类推。
简而言之,向量是一维的,可以看作是一阶张量,而张量是一个更广泛的概念,可以有多个维度。在深度学习中,张量是非常重要的数据结构,用于表示和处理多维数据。下图展示了张量在不同维度的形式:
通俗易懂的解释
-
向量(Vector):
- 想象你正在看一部电影,电影的评分可以用一个向量来表示。假设这部电影有三个评分来源:IMDb、烂番茄(Rotten Tomatoes)和观众投票。如果这部电影在 IMDb 上得到 8 分,在烂番茄上得到 90% 的新鲜度,观众投票给了 85 分,那么我们可以用一个向量 ([8, 90, 85]) 来表示这部电影的评分。这里的向量是一维的,每个维度代表一个评分来源。
-
张量(Tensor):
- 现在,假设你想要比较三部不同的电影。每部电影都有来自 IMDb、烂番茄和观众投票的评分。这时,你可以用一个二维张量来表示这些信息,比如:
在这个例子中,张量中的每一行代表一部电影的评分向量,整个张量包含了三部电影的评分信息。[ [8, 90, 85], # 电影 A 的评分 [7, 85, 80], # 电影 B 的评分 [9, 95, 90] # 电影 C 的评分 ]
- 如果你还想要记录这些电影在不同年份的评分变化,你可能需要使用一个三维张量。例如,假设你有过去三年的评分数据,那么张量可以扩展为:
在这个三维张量中,每个 “层” 代表一年的评分数据,每一行代表一部电影,在每一行中,每个元素代表一个不同的评分来源。[ [ [8, 90, 85], [7, 92, 82], [8, 93, 84] ], # 电影 A 过去三年的评分 [ [7, 85, 80], [7, 87, 83], [8, 89, 85] ], # 电影 B 过去三年的评分 [ [9, 95, 90], [9, 96, 91], [9, 97, 92] ] # 电影 C 过去三年的评分 ]
- 现在,假设你想要比较三部不同的电影。每部电影都有来自 IMDb、烂番茄和观众投票的评分。这时,你可以用一个二维张量来表示这些信息,比如:
通过这个例子,你可以看到向量是张量的一种特殊情况(一维张量),而张量可以有多个维度,用于表示更复杂的数据结构。在深度学习中,我们经常使用这样的高维张量来处理和分析大量的数据。