张量、向量和矩阵都是数学和计算中的基本概念,主要用于表示数据和运算。虽然它们有相似之处,但也有显著的区别和具体的应用场景。
向量(Vector)
定义:向量是一个有序数列,可以看作是一个一维的数组。可以看作点+原点到它的方向
表示方法:
维度:一维
应用场景:这个最好理解,中学物理表示力、加速度都是向量的概念。机器学习中最常见的就是词向量的概念。
示例:
矩阵(Matrix)
定义:矩阵是一个二维的数组,包含了行(row)和列(column)。
表示方法:
维度:二维
应用场景:学过线性代数的应该都不陌生这个概念(注意别和行列式搞混了就行),而实际应用中最长用来表示的是图像或图像卷积的特征,或者一批Embedding之后的文本向量。
示例:
张量(Tensor)
定义:张量是一个通用化的n维数组,可以是0维、1维、2维甚至更高维度。
表示方法:
维度:n维(n>=0)
应用场景:机器学习中的深度学习模型,如TensorFlow和PyTorch中的数据表示。在训练神经网络的时候经常会遇到nn.tensor的操作
示例: 三个维度的张量可以表示为:
它们之间的关系
- 维度关系:向量是一维的,矩阵是二维的,而张量可以是n维的。
- 组成关系:向量是多个Number组成的一维的行向量或者列向量,矩阵用多个同形的行向量或者列向量堆叠合并形成,张量则直接用多个同形的矩阵堆叠组合而成。
- 应用层次:向量可以看作是特定情况下的矩阵(单行或单列),矩阵可以看作是特定情况下的张量(二维),张量是最通用、最泛化的表达形式。
我的理解
简单来说,向量是可以描述为一维数组的对象,用来表示点和所处空间中的位置,矩阵是二维数组,而张量则是更高维的通用化数组。它们在不同的应用领域都非常重要,尤其是在现代计算和机器学习中。
之后会整理更多学习、工作中遇到的问题和思考,欢迎大家关注Global AI Pro