在机器学习 (ML) 中,线性代数涉及使用数学运算来表示和操作 ML 模型内的数据、参数和运算。它提供语言和工具来表达数据在模型中的流动方式以及模型的“学习”方式。
强大的现代机器学习和生成式 AI 的核心是由线性代数驱动的。无论是训练神经网络、构建推荐系统,还是将主成分分析 (PCA) 应用于复杂的高维数据集,从业者都在使用线性代数进行大规模计算。
从早期到深度学习的最新进展,线性代数在 ML 领域无处不在。许多核心机器学习模型都是使用线性代数原理从根本上表达和求解的。在实践中,数据很少是一个简单的单一数字;相反,数据通常以数据集的形式出现:通常是杂乱数据点的集合。线性代数提供了有效整理、操作和分析这些数据的工具。
它允许从业者操作向量、矩阵和张量等对象来表示结构化数据(通常是表格数据)和非结构化数据(例如图像或视频)。这些看似抽象的概念是计算机科学和数据科学家的数据语言。例如,图像可以表示为像素值矩阵,而描述房屋的特征集合(例如社区、年龄和平方英尺)可以表示为线性回归模型中的向量。线性回归将输出建模为输入特征的线性组合,是线性代数在现实世界中运作方式的经典示例。
从最基本的层面上讲,线性代数提供了以结构化形式表示和处理数据的工具。大多数机器学习工作流程都是从将数据整理成数字格式开始的,每种结构(标量、向量、矩阵和张量)都有不同的用途。
点积是将两个向量相乘产生一个标量的方法。它广泛用于计算向量之间的相似性,是许多推荐系统中的关键步骤。矩阵的转置(即翻转矩阵的行和列)是另一种基本操作,它能够使维度对齐以进行乘法运算,并揭示数据中的结构模式。
线性代数能够以算法可以理解和处理的方式表达复杂的数据集,从而允许使用从现实世界收集的大量数据构建复杂的模型。
许多机器学习算法都建立在线性方程组的基础上。线性回归是一种简单而强大的算法,用于预测连续值。找到“最佳拟合”线或平面,使预测值与实际值之间的误差最小,这个过程通常归结为求解线性方程组。例如,在根据平方英尺和卧室数量预测房价时,必须找到满足以下等式的系数(权重):
...其中 , 以及 是需要求解的未知系数。这可以用矩阵来表示和求解。当不存在精确解时,使用“最小二乘法”等技术来找到这些系统的近似解,这在现实世界的嘈杂数据中经常出现。换句话说,损失函数的近似表示为一系列线性方程,用微积分求解。
更复杂的算法,例如深度学习和神经网络中的算法,严重依赖于大规模矩阵乘法等运算来通过不同层处理信息。神经网络中的每一层都对其输入执行变换,这本质上是一个矩阵变换,即输入向量乘以权重矩阵。这使得网络能够学习数据中的复杂模式和关系。
许多现实世界的数据集包含每个数据点的大量特征(或变量):有时达数百、数千甚至数百万。这被称为高维数据。虽然更多的特征似乎应该可以让模型更加准确,但它们往往使学习变得更加困难。高维数据的处理计算成本可能很高,存储内存密集,并且容易过拟合,即模型记住噪声而不是学习有意义的模式。
另一个挑战是维数灾难。随着维数的增加,数据点在特征空间中变得越来越稀疏,而点之间的“紧密程度”概念变得越来越没有意义。这种稀疏性使得算法难以可靠地检测关系。因此,拥有正确的工具以减少特征数量并从噪声中提取信号至关重要。降维是将数据从高维空间变换为低维空间的过程,同时尽可能多地保留原始结构和重要信息。通过减少特征的数量,从业者可以简化模型、提高泛化能力、加快计算速度,并且通常可以实现有用的数据可视化。
线性代数是许多降维技术的核心。例如,主成分分析使用特征值和特征向量等概念来查找捕捉数据中最大方差的新轴(主成分),表示高维数据集中有意义的属性。通过将数据投影到前几个成分上,从业人员可以保留最重要的模式,同时摒弃不那么有用的变化。
例如,假设有一个数据集描述了数千名客户,每个客户具有 100 个不同的特征(年龄、收入、各种产品类别的支出等)。同时分析所有 100 个特征将既缓慢又复杂,而且其中许多特征可能是多余的(例如,对“运动装备”的兴趣经常与“户外装备”重叠)。PCA 可以将数据集简化为仅 2 或 3 个成分,总结客户行为的大部分变化,从而更轻松地可视化并更高效地运行下游算法。
简而言之,降维是一种将复杂数据提炼成信息量最大的部分的方法,而线性代数提供了使之成为可能的数学机制。
特征值、特征向量和特征分解共同描述了线性变换或系统的基本行为模式:
另一种强大的技术 — 奇异值分解 (SVD) — 在降维方面也起着至关重要的作用,并且是推荐系统中矩阵分解等领域的基础。虽然 SVD 与特征分解相关,但可应用于任何矩阵(而不仅仅是方阵),并提供一种更通用的方法将矩阵分解为其组成部分,从而揭示基础结构并有效降低维度。例如,在推荐系统中, SVD 有助于将用户-物品交互矩阵分解为表示用户和物品潜在特征的低维矩阵,然后用于预测新的推荐。
许多机器学习模型涉及优化问题,其目标是找到模型的最佳参数集,以最小化误差函数或最大化似然函数。梯度下降等算法被广泛用于训练神经网络和其他机器学习算法,它们依靠线性代数来计算梯度(指向函数最陡上升方向的向量),并迭代更新模型参数。
了解优化还意味着了解这些计算中涉及的矩阵的属性。这就是行列式和同位矩阵等概念的意义所在。方阵的行列式是一个数字,它提供了有关矩阵的关键信息。例如,非零行列式表示矩阵是可逆的(意味着它具有相应的矩阵求逆运算),这对于独特地求解线性方程组至关重要。如果行列式为零,则系统可能没有唯一解或者有无限多个解,这表明存在线性独立性(其中一组中的一个向量可以表示为其他向量的线性组合)等问题。单位矩阵(主对角线上为 1,其他位置为 0 的方阵)很特殊,因为当将任何矩阵乘以单位矩阵时,原始矩阵保持不变,就像标量乘法中的数字“1”一样。
好消息是,ML 从业者不需要手动执行这些复杂的计算。Python 中的 NumPy 等库为所有这些线性代数概念提供了高度优化的函数,从而使其成为机器学习中数值计算的事实标准。例如,numpy.linalg.eig() 可以计算特征值和特征向量,而 numpy.dot() 轻松处理点积和矩阵乘法。Tensorflow (在深度学习领域很受欢迎)等框架也充分利用线性代数研究,抽象出低层细节,以便用户专注于构建模型。
本文对机器学习的线性代数进行了简单的介绍。线性变换和矩阵变换等概念描述了如何操作和重塑数据,例如旋转图像或缩放其特征。了解矩阵的类型,如单位矩阵(乘法时保持向量不变)和正交矩阵(其中逆矩阵只是转置,简化计算)也是有益的。虽然在 ML 中通常不会手动执行高斯消元法(一种求解线性方程组的算法),但了解其原理有助于理解这些系统是如何通过计算求解的。线性独立对于理解解的唯一性和向量空间(一组向量的所有可能线性组合的集合)的基础也非常关键。
最终,对线性代数概念的扎实掌握使 ML 从业者不仅能使用预构建的机器学习算法,还能真正理解其内部工作原理,对其进行有效调试,甚至开发新的解决方案。数十年来,它一直是推动 ML 发展的无声动力,在未来的人工智能发展中将继续不可或缺。
使用面向 AI 构建器的新一代企业级开发平台 IBM watsonx.ai,可以训练、验证、调整和部署生成式 AI、基础模型和机器学习功能。使用一小部分数据,即可在很短的时间内构建 AI 应用程序。
借助 IBM 业界领先的人工智能专业知识和解决方案组合,让人工智能在您的业务中发挥作用。
通过增加 AI 重塑关键工作流程和运营,最大限度提升体验、实时决策和商业价值。