尽管“机器学习”和“人工智能”经常互换使用,但它们并不完全同义。简而言之:
所有机器学习都是 AI,但并非所有 AI 都是机器学习
。
在流行的想象中,“AI”通常与科幻小说联系在一起 — 通常是通过对更恰当地称为
通用人工智能 (AGI)
的描述,例如《
2001: A Space Odyssey
》中的 HAL 9000 或《
Ex Machina
》中的 Ava — 或者最近的
生成式
AI
。但“人工智能”是一个统称,指的是任何能够利用信息做出决策或预测而无需人类主动参与的程序。
最基本的 AI 模型是一系列 if-then-else 语句,其规则和逻辑由数据科学家明确编程。在最简单的层面上,即使是基本的恒温器也是一个基于规则的 AI 系统:当使用简单的规则进行编程时,例如
IF room_temperature < 67, THEN turn_on_heater
IF room_temperature > 72, THEN turn_on_air_conditioner
恒温器能够自主决策,无需人工干预。在更复杂的层面上,由医学专家编程的庞大而复杂且基于规则的
决策树
可以分析症状、情况和合并症,以辅助诊断或预后。
2
与专家系统不同的是,机器学习的运行逻辑不是明确编程的,而是通过经验
学习
的。想想垃圾邮件过滤程序:基于规则的 AI 需要数据科学家手动设计准确、通用的垃圾邮件标准,而机器学习只需要选择正确的算法和足够的样本电子邮件数据集。在训练中,模型查看样本电子邮件并预测哪些是垃圾邮件;计算其预测误差,并调整算法以减少误差;系统会重复这个过程,直到模型准确无误为止。新训练的 ML 模型已经
暗中
学会了如何识别垃圾邮件。
随着 AI 系统要执行的任务变得越来越复杂,基于规则的模型也变得越来越脆弱:通常,无法明确定义模型必须考虑的每一个模式和变量。机器学习系统已成为人工智能的主导模式,因为数据自身的隐式学习模式本质上在灵活性、可扩展性和可访问性方面更为突出。
机器学习通过数学逻辑进行。因此,每个数据点的相关特征(或“功能”)必须以数字形式表示,以便数据本身可以输入到数学算法中,该算法将“学习”将给定的输入映射到所需的输出。
机器学习中的数据点通常以矢量形式表示,其中数据点
向量嵌入
的每个元素(或维度)对应于其特定功能的数值。对于本质上是数字的数据模态,例如财务数据或地理空间坐标,这一点相对简单。但许多数据模态,例如文本、图像、社交媒体图形数据或应用程序用户行为,本质上并不是数字,因此需要功能工程才能以 ML 就绪的方式表示。
在机器学习算法中选择使用哪些数据方面的过程(通常手动)称为
功能选择
。
功能提取
技术仅将数据精简到最相关、最有意义的维度。两者都是
功能工程
的子集,功能工程是一门更广泛的学科,用于预处理机器学习的原始数据。深度学习的一个显著特点是,它通常对原始数据进行运算,并自动执行大部分功能工程(或至少是功能提取)过程。尽管可解释性较差,但这使得深度学习比传统机器学习更可扩展。
机器学习模型参数和优化
举一个实际示例,思考一个简单的
线性回归
算法,该算法基于三个变量的加权组合来预测房屋销售价格:平方英尺、房屋年龄和卧室数量。每个房子都表示为具有 3 个维度的向量嵌入:
[square footage, bedrooms, age]
一栋有 30 年历史的房子、4 间卧室和 1900 平方英尺,可以表示为
[1900, 4, 30]
(尽管出于数学目的,这些数字可能首先被缩放或规范化为更统一的范围)。
该算法是一个简单的数学函数:
价格 =(A * 平方英尺)+(B * 房间数)- (C * 使用年限)+ 基本价格
在此处,
,
and
是模型参数:调整这些参数将调整模型对每个变量的权重。机器学习的目标是找到此类模型参数的最优值:换句话说,就是导致整体函数输出最准确的结果。虽然现实世界中的大多数机器学习实例都涉及更复杂的算法和更多的输入变量,但其原理仍然相同:优化算法的可调参数以获得更高的准确性。
所有机器学习方法都可以根据其训练目标的性质以及(通常但不总是)所需的训练数据类型,归类为三种不同的学习范式之一:监督学习、无监督学习或强化学习。
-
监督学习
训练模型来预测给定输入的“正确”输出。它适用于需要相对于某些外部“
基本事实
”具有一定准确度的任务,例如分类或回归。
-
无监督学习
训练模型来辨别数据中的内在模式、依赖关系和相关性。与监督学习不同,无监督学习任务不涉及任何外部基本事实,其输出也不需要进行比较。
-
强化学习 (RL)
训练模型来评估其环境,并采取能够获得最大奖励的行动。RL 场景不需要存在单一的基本事实,但它们确实需要存在“好”和“坏”(或中性)的行为。
对于给定的模型,端到端训练过程可以而且通常确实会涉及充分利用多种学习范式的混合方法。例如,无监督学习通常用于预处理数据,以便用于监督学习或强化学习。大型语言模型 (LLM) 通常通过监督学习变体进行初始训练(预训练)和
微调
,然后通过 RL 技术(例如
基于人类反馈的强化学习 (RLHF))
进行更多微调。
在相似但截然不同的实践中,各种
集成学习
方法汇聚了多种算法的输出。
监督学习算法可为
分类
或回归等要求准确性的任务训练模型。监督机器学习为最先进的深度学习模型和仍在各行各业广泛使用的各种传统机器学习模型提供技术支持。
-
回归
模型可预测连续值,如价格、持续时间、温度或大小。传统回归算法的示例包括
线性回归
、多项式回归和
状态空间模型
。
-
分类
模型可预测离散值,例如数据点所属的类别(或
类
)、二元决策或要采取的特定行动。传统分类算法示例包括
支持向量机 (SVM)
、
朴素贝叶斯
和
逻辑回归
。
-
许多监督 ML 算法可用于这两项任务。例如,名义上是回归算法的输出随后可用于为分类预测提供信息。
为了测量和优化准确性,模型的输出必须与
基本事实
进行比较:任何给定输入的理想或“正确”输出。在传统的监督学习中,该基本事实由标记的数据提供。垃圾邮件检测模型是在一组电子邮件数据集上进行训练的,这些电子邮件被标记为
SPAM
或
NOT SPAM
。
图像分割
模型是在图像上训练的,其中每个单独的像素都已按其分类进行了注释。监督学习的目标是调整模型的参数,直到其输出与这些标记提供的基本事实一致为止。
监督学习的关键是使用
损失函数
来衡量一批训练输入中模型输出与基本事实之间的差异(“损失”)。监督学习的目标在数学上被定义为
最小化损失函数的输出
。计算损失后,就会使用各种优化算法(其中大部分涉及计算损失函数的
导数
)来确定减少损失的参数调整。
由于此过程传统上需要人工以数据注释的形式提供基本事实,因此被称为“监督”学习。因此,使用标记数据历来被认为是监督学习的明确特征。但从最根本层面来说,监督学习的特点是存在一些基本事实,而训练目标则是最小化衡量与基本事实偏离程度的损失函数的输出。
为了适应更加泛用的监督学习概念,现代 ML 术语使用“监督”或“监督信号”来指代任何基本事实来源。
对于复杂任务和大型数据集来说,标记数据可能会变得昂贵且耗时。
自监督学习
需要对直接从
未标记
数据中获取监督信号的任务进行训练,因此是“自”监督的。
例如,
自编码器
经过训练,可以压缩(或
编码
)输入数据,然后使用该压缩表示形式重建(或
解码
)原始输入。它们的训练目标是以原始输入本身为基本事实,最大限度地减少
重建误差
。自监督学习也是 LLM 的主要训练方法:为模型提供隐藏或掩盖了某些字词的文本样本,并负责预测缺失的字词。
自监督学习经常与
迁移学习
相关联,因为它可以为基础模型提供具有广泛功能的
基础模型
,然后针对更具体的任务进行
微调
。
无监督机器学习算法可以辨别未标记数据中的内在模式,例如相似性、相关性或潜在分组。在人类观测者不一定能明显看到此类模式的情况下,它们最有用。由于无监督学习不假设已知的“正确”输出存在,因此它们不需要监督信号或常规损失函数,因此称为“无监督”。
大多数无监督学习方法都具有以下功能之一:
-
聚类
算法根据彼此的接近度或相似性将未标记的数据点划分为“聚类”或分组。它们通常用于市场细分或欺诈检测等任务。主要的聚类算法包括 K 均值聚类、高斯混合模型 (GMM) 和基于密度的方法,例如 DBSCAN。
-
关联
算法可识别相关性,例如特定操作和某些条件之间的相关性。例如,像 Amazon 这样的电子商务企业使用无监督
关联
模型来支持推荐引擎。
-
降维
算法通过使用较少的功能(即,较少的维度)来表示数据点,从而降低数据点的复杂性,同时
保留其有意义的特征
。它们通常用于数据预处理,以及数据压缩或数据可视化等任务。主要的降维算法包括
自编码器
、
主成分分析 (PCA)
、
线性判别分析 (LDA)
和
t 分布随机邻域嵌入 (t-SNE)。
顾名思义,无监督学习算法可以被广泛理解为某种程度上的“自我优化”。例如,
该动画
演示了 k-means 聚类算法如何迭代优化每个聚类的质心。因此,训练无监督模型的挑战集中在有效的数据预处理和适当
调整影响学习过程但本身不可学习的超参数
,例如
学习率
或聚类数量。
监督学习通过优化模型使其与理想的样例拟合来进行训练,无监督学习算法则使自己拟合数据集,而
强化学习
模型则是通过反复试验进行整体训练的。它们主要应用于机器人、视频游戏、
推理模型
和其他用例,其中可能的解决方案和方法的空间特别大、开放式或难以定义。在 RL 文献中,AI 系统通常被称为“智能体”。
强化学习 (RL) 不使用监督学习中使用的独立的输入-输出数据对,而是对相互依赖的状态-动作-奖励数据元组进行运算。强化学习的目标不是最小化误差,而是优化参数以最大化奖励。
强化学习的数学框架主要由以下部分组成:
-
状态空间
包含与模型可能做出的决策相关的所有可用信息。它通常会随着模型采取的每个操作而变化。
-
行动空间
包含模型在某一时刻可以做出的所有决定。例如,在棋盘游戏中,行动空间包括在给定时间内可用的所有合法移动。在文本生成中,行动空间包括 LLM 可用的整个“词汇表”中的词元。
-
奖励信号
是指每次行动后向智能体提供的反馈 — 正面或负面,通常以标量值表示。奖励信号的值可以通过明确的规则、
奖励函数
或单独训练的
奖励模型
来确定。
-
策略
是驱动 RL 智能体行为的“思维过程”。从数学上来说,一项策略 (
) 是一个函数,它接受一个状态 (
) 作为输入并返回一个动作 (
): π(s)→a 。
在
基于策略的
RL 方法(如近端策略优化 (PPO))中,模型直接学习策略。在
基于价值的
方法(如 Q-learning)中,智能体学习一个价值函数,计算出每个状态“好”的程度,然后选择通向更高价值状态的行动。思考一个迷宫:基于策略的智能体可能会学习“在这个拐角处左转”,而基于价值的智能体会学习每个位置的分数,然后简单地移动到得分更高的相邻位置。混合方法(例如,“演员-评判家”方法)可以学习价值函数,然后用于优化策略。
在深度强化学习中,该策略以
神经网络
的形式表示。
深度学习
采用具有多层的
人工神经网络
(因此是“深度”),而不是传统机器学习这样明确设计的算法。尽管机器学习在神经网络历史的早期就被引入,但直到 00 年代末和 10 年代初,部分得益于
GPU
的进步,神经网络才在 AI 的大多数子领域占据主导地位。
神经网络的灵感大致来源于人类大脑,它由相互连接的“神经元”(或
节点
)层组成,每个神经元层执行各自的数学运算(称为“激活函数”)。每个节点的激活函数的输出作为下一层各节点的输入,依此类推,直到最后一层,计算网络的最终输出。至关重要的是,每个节点执行的激活函数都是
非线性的
,这使得神经网络能够模拟复杂的模式和依赖关系。
两个神经元之间的每个连接都有一个唯一
权重
:一个乘数,用于增加或减少一个神经元对下一层神经元的贡献。这些权重以及添加到每个神经元激活函数的独特
偏差
项,都是通过机器学习进行优化的参数。
反向传播
算法能够计算
每个节点
对损失函数整体输出的贡献,从而允许通过
梯度下降
算法对数百万或数十亿个模型权重进行单独优化。由于实现最佳结果所需的更新数量和粒度,与传统 ML 相比,深度学习需要大量的数据和计算资源。
这种分布式结构为深度学习模型提供了令人难以置信的能力和多功能性。将训练数据想象成散布在二维图形上的数据点。本质上,传统的机器学习旨在找到一条贯穿每个数据点的曲线;深度学习将任意数量的、较小的、可单独调整的线条拼凑在一起,形成所需的形状。神经网络是
通用近似器
:理论上已经证明,对于任何函数,都存在可以重现它的神经网络排列。
3, 4
话虽如此,仅仅因为某件事在
理论上
是可能的,并不意味着它实际上可以通过现有的训练方法实现。多年来,即使是深度学习模型,也无法在某些任务上取得足够的性能 — 但随着时间的推移,对标准神经网络架构的修改为 ML 模型解锁了新的能力。
机器学习的大多数应用都属于以下一个或多个类别,这些类别主要由其用例和所处理的数据模式定义。
计算机视觉
计算机视觉是 AI 的一个子领域,涉及图像数据、视频数据以及其他需要模型或机器“看见”的数据模式,从医疗保健诊断到面部识别再到自动驾驶汽车。计算机视觉的重要子领域包括图像分类、
物体检测
、
图像分割
和
光学字符识别 (OCR
)。
自然语言处理 (NLP)
自然语言处理 (NLP)
领域涵盖与文本、语音和其他语言数据有关的多种任务。NLP 的重要子领域包括
聊天机器人
、
语音识别
、
语言翻译
、
情感分析
、
文本生成
、
摘要
和
AI 智能体
。在现代 NLP 领域,大型语言模型继续以前所未有的速度推动着最先进技术的发展。
时间序列分析
时间序列模型
应用于异常检测、市场分析和相关模式识别或预测任务。他们在历史数据方面使用机器学习,以从事各种预测用例。
扩散模型
、
变异自编码器 (VAE)
和
生成式对抗网络 (GAN)
可用于生成原始图像,并应用从训练数据中学到的像素模式。
机器学习运营 (MLOps)
是一套用于实施流水线方法来构建、部署和维护机器学习模型的实践。
仔细策划和预处理训练数据以及正确的
模型选择
,是 MLOps 流程中的关键步骤。从基准数据集的设计到特定性能
指标
的优先级排序,周全的训练后验证对于确保模型具有良好的泛化能力(而不仅仅是
过拟合
训练数据)至关重要。
部署后,必须监控模型是否存在
模型漂移
、推理效率问题和其他不利发展。明确的
模式治理
实践对于继续提高效率至关重要,尤其是在监管或快节奏的行业中。
有许多开源工具、库和框架可用于构建、训练和测试机器学习项目。虽然此类库提供了一系列预配模块和抽象来简化构建基于 ML 的模型和工作流的过程,但从业者需要熟悉常用的编程语言(尤其是
Python
)才能充分利用它们。
著名的开源库,尤其是用于构建深度学习模型的库,包括
PyTorch
、
TensorFlow
、Keras 和 Hugging Face Transformers 库。
专注于传统 ML 的著名开源
机器学习库
和工具包包括 Pandas、
Scikit-learn
、
XGBoost
、
Matplotlib
、SciPy 和 NumPy 等。
IBM 本身维护和更新了一个重要的
教程
库,供初学者和高级 ML 从业者使用。
所有链接均为 ibm.com 外部链接
1.
《Some Studies in Machine Learning Using the Game of Checkers
》,《
IBM Journal
》(通过麻省理工学院访问),1959 年 7 月 3 日
2.
《Using Decision Trees as an Expert System for Clinical Decision Support for COVID-19
》
,《
Interactive Journal of Medical Research
》第 12 卷,2023 年 1 月 30 日
3.
《Kolmogorov's Mapping Neural Network Existence Theorem
》,《
Proceedings of the IEEE First International Conference on Neural Networks
》(通过滑铁卢大学访问),
1987 年
4.
《Multilayer Feedforward Networks with a Non-Polynomial Activation Function Can Approximate Any Function
》,
Center for Research on Information Systems(纽约大学),1992 年 3 月