在机器学习中,标量、向量、矩阵和张量是线性代数的一部分,用于机器学习中的数学计算。在本文中,我将带您了解什么是机器学习中的标量、向量、矩阵和张量。
线性代数是数学学科的基本主题,在物理科学中极为普遍。它还构成了许多机器学习算法的支柱。因此,对于深度学习从业者来说,理解其核心思想至关重要。
线性代数是连续数学的一个分支,而不是离散数学的一个分支。数学家、物理学家、工程师和量化专家可能会通过研究微分方程来熟悉连续数学,微分方程用于模拟许多物理和金融现象。
然而,计算机科学家、软件开发人员或零售全权交易员可能只能通过图论或组合学等学科(离散数学中的主题)接触数学。因此,这里介绍的集合和函数符号最初可能不熟悉。
线性代数是对向量和线性函数的研究。从广义上讲,向量是可以添加的东西,线性函数是遵循向量加法的向量函数。线性代数的目标是教您以一种使涉及多变量线性函数的问题变得容易的方式组织有关向量空间的信息。理解线性代数的概念对于理解和使用许多机器学习算法非常重要,特别是在构建神经网络时。
标量、向量、矩阵和张量是线性代数中最重要的数学概念。如果标量是一个点,您添加一个维度并获得一个向量(有方向的线),您添加另一个维度并获得一个矩阵(值网格),将它们堆叠在一起,您将获得一个 3D 张量。
标量只是一个数字。例如温度,仅用一个数字表示。
向量是数字数组,数字按顺序列出,是一阶张量。我们可以通过索引按顺序识别每个单独的数字。简单来说,向量是一个箭头,表示一个具有大小和方向的量,其中箭头的长度表示大小,方向告诉您方向。例如风,有方向和大小。
向量的元素通过用斜体写下其名称并带有下标来标识。x 的第一个元素是 x1,第二个元素是 x2,依此类推。我们还需要指示向量中存储的数字的类型。
有时需要明确地识别向量的组成部分。这i向量的第一个标量元素写为xi。请注意,这是非粗体小写字母,因为该元素是标量。一个n维向量本身可以使用以下符号显式编写:
既然标量是用来表示值的,为什么还需要向量呢?向量的主要用例之一是表示具有大小和方向的物理量。标量只能表示大小。
例如,标量和向量对汽车的速度和速度之间的差异进行编码。速度不仅包含其速度,还包含其行进方向。不难想象更多具有类似特征的物理量,例如重力、电磁力或风速。
在机器学习中,向量通常表示特征向量,其各个分量指定特定特征的重要性。这些特征可能包括文本文档中单词的相对重要性、二维图像中一组像素的强度或金融工具横截面的历史价格值。
简而言之,我们可以将向量视为空间中的标识点,每个元素给出沿不同轴的坐标。
矩阵是一个二维数字数组,因此每个元素由两个下标标识。一维张量可以表示为向量,而二维张量可以表示为矩阵。从技术上讲,彩色图像是 3D 张量,包含 R、G 和 B 值的网格(有时还有第四个 Alpha 通道)。完整的m✖️n矩阵可以写为:
矩阵表示一种称为线性映射的函数,可以定义矩阵之间或矩阵与向量之间的乘法运算。此类操作在物理科学、定量金融、计算机科学和机器学习中非常重要。
矩阵可以编码旋转、反射和变换等几何操作。因此,如果向量集合表示计算机辅助设计软件中三维几何模型的顶点,则将这些向量分别乘以预定义的旋转矩阵将输出表示旋转顶点位置的新向量。这是现代 3D 计算机图形学的基础。
在深度学习中,神经网络权重存储为矩阵,而特征输入存储为向量。用线性代数来表述问题可以紧凑地处理这些计算。通过将问题转化为张量并利用线性代数机制,可以在现代 GPU 硬件上实现快速训练。
矩阵的一项重要操作是转置。矩阵的转置是矩阵在对角线(称为主对角线)上的镜像。我们将矩阵A的转置表示为 A^T,定义如下: A^T (i, j) = A (j, i)
张量是线性代数中使用的一种数据结构,用于描述向量空间内代数对象集之间的多线性关系,封装了标量、向量和矩阵。一般情况下,是排列在规则网格上的数字数组,轴数可变,称为张量。我们通过写 A_( i, j, k ) 来识别张量A在坐标 ( i, j, k )处的元素。但要真正理解张量,我们需要扩展将向量视为具有大小和方向的箭头的方式。
在张量流中:
等级 0 张量是标量
1 阶张量是一个向量
2 阶张量是一个矩阵
3 阶张量是 3-张量
阶 n 张量是一个 n-张量
在深度学习中,我们允许矩阵和向量相加,产生另一个矩阵,其中 C(i, j) = A(i, j) + b_(j)。换句话说,向量b被添加到矩阵的每一行。这种将b隐式复制到许多位置的行为称为广播。