张量、向量与矩阵:多维世界的数据密码
核心关系:包容与泛化
简单来说,向量和矩阵是张量的特殊形式,而张量是向量和矩阵在任意维度上的泛化。
- 向量是一维张量。
- 矩阵是二维张量。
- 张量可以是零维、一维、二维,乃至N维。
分点详解与对比
让我们通过一个表格和具体例子来清晰地看一下。
特征 | 向量 | 矩阵 | 张量 |
---|---|---|---|
维度(阶) | 1阶 | 2阶 | N阶 (N ≥ 0) |
直观理解 | 一条有方向的线 | 一个表格 | 一个数据容器,可以存在于多维空间中 |
表示方式 | [1, 2, 3] | [[1, 2], [3, 4]] | 高维数组,例如在Python中是一个NumPy的ndarray或PyTorch的Tensor |
索引需求 | 1个索引 (e.g., v[i] ) | 2个索引 (e.g., M[i, j] ) | N个索引 (e.g., T[i, j, k, ...] ) |
几何意义 | 空间中的一个点和方向 | 一个线性变换 | 一个更广义的“多重线性”映射 |
常见例子 | 速度、力 | 灰度图像、数据集表 | 彩色图像、视频、3D模型、天气数据 |
具体例子说明
1. 向量(1阶张量)
- 维度: 1
- 例子:
[175, 70, 26]
可以表示一个人的 [身高(cm), 体重(kg), 年龄]。 - 解释: 要找到“体重”,你只需要1个索引(比如索引1)就能定位到这个数据。它就像一条线上的一个点序列。
2. 矩阵(2阶张量)
- 维度: 2
- 例子: 一个28x28像素的灰度图像。每个像素有一个灰度值(0-255)。
[[ 10, 120, 255, ... ],[ 45, 200, 110, ... ],... ]
- 解释: 要找到某个特定像素的值,你需要2个索引(行索引和列索引,例如
image[5, 10]
)。它是一张二维的表格。
3. 张量(3阶及以上)
这是张量真正发挥价值的地方。
-
3阶张量例子:彩色图像
- 形状:
[高度, 宽度, 颜色通道]
- 一张256x256的RGB彩色图像就是一个
256 x 256 x 3
的张量。 - 解释: 要找到一个像素的蓝色通道的值,你需要3个索引(行、列、通道),例如
image[100, 50, 2]
(假设通道0是红,1是绿,2是蓝)。
- 形状:
-
4阶张量例子:一个图像批量
- 形状:
[批量大小, 高度, 宽度, 颜色通道]
- 在深度学习训练中,我们通常一次处理多张图片。比如一个包含64张256x256的RGB图像的批次,就是一个
64 x 256 x 256 x 3
的张量。 - 解释: 要找到第32张图片上(100,50)位置像素的红色通道值,你需要4个索引:
batch[31, 100, 50, 0]
。
- 形状:
-
5阶张量例子:视频流
- 形状:
[批量大小, 时间帧, 高度, 宽度, 颜色通道]
- 一个包含10个视频片段的数据,每个片段有30帧,每帧是128x128的RGB图像,那么它的形状就是
10 x 30 x 128 x 128 x 3
。 - 解释: 这已经是一个5维空间中的数据容器了。
- 形状:
总结与核心区别
对比角度 | 向量/矩阵 | 张量 |
---|---|---|
核心思想 | 数学对象,强调线性代数运算(如点积、特征值)。 | 数据结构,强调在任意维度上组织和存储数据。 |
灵活性 | 维数固定(1维或2维)。 | 维数灵活,可以是任意阶,这是最根本的区别。 |
应用场景 | 经典物理学、传统机器学习、线性方程组。 | 现代人工智能(深度学习)、物理学(广义相对论)、工程学。在深度学习中,所有数据(输入、输出、参数)都是以张量形式存在和流动的。 |
物理本质 | 在特定坐标系下表示。 | 真正的物理量,不依赖于坐标系的选择。在不同坐标系下,其分量会通过特定规则进行变换,这才是张量在物理学中的严格定义。 |
一句话总结:
你可以把张量看作一个多维数组。当它的维度是1时,我们叫它向量;维度是2时,我们叫它矩阵;当维度是3或更高时,我们通常就直接称它为张量。在深度学习的语境下,为了统一,即使是一维和二维的数组,我们也习惯性地统称为“张量”。