TRACK A · 复合内容来源 · 对应课程 1.4.1、1.4.2、1.4.5 和 3.1.6 · KNOWLEDGE PLANET
什么是机器学习模型?
了解训练产生的结果:具有特定架构和已学习参数的模型。学习超参数、模型家族、推理阶段以及完整AI系统。
- 准确解释本课核心概念
- 区分相关方法与系统组件
- 用图示描述主要流程
- 识别局限并说明验证方法
1. 模型、算法与数据
数据是学习样本;学习算法是寻找合适解的过程;训练后的模型是具有具体参数值的计算关系。三者相关,但不能混为一谈。
2. 架构与参数
架构描述计算结构及执行顺序;参数是训练过程中调整的内部数值。单特征线性模型为 ŷ = w·x + b:x是输入,w是权重,b是偏置。改变w或b会改变模型表示的直线。
3. 参数与超参数
参数从训练数据中学习,例如权重和偏置。超参数配置模型或训练过程,例如学习率、树深度和批量大小。它们通常在训练前或训练流程之外选择,并借助验证集比较。
4. 模型家族
线性模型计算特征的加权组合,通常较易检查;决策树依次判断特征并在叶节点预测;神经网络组合多个参数化变换层,可以表达复杂非线性规律,但通常需要更多数据和计算资源。
5. 训练与推理
训练阶段使用样本、损失函数和优化器估计参数;推理阶段使用固定的已训练模型处理新输入。普通推理不会更新权重。在线学习或微调是需要单独设计和控制的过程。
6. 需要保存什么?
可复现部署可能需要保存权重、架构配置、预处理步骤、类别映射、分词器、库版本和实验元数据。仅保存模型文件可能不够,输入必须按训练时相同方式转换。
7. 模型不等于完整产品
部署系统还包括输入验证、预处理、推理、后处理、业务规则、界面、监控和人工复核。即使模型数学上正确,单位不一致也会造成故障。
8. Python示例
下面的代码创建并训练线性回归模型,读取已学习参数,并预测新温度下的能耗。fit()执行训练;predict()执行推理。X是二维数组:行表示观测,列表示特征。
9. 实验与回顾
分别训练最大深度为1、2、3和5的决策树。保持训练集和验证集划分不变并比较误差。树更深通常会降低训练误差,但也可能拟合噪声,在新样本上表现更差。每次只改变一个超参数。
Python实践
import numpy as np
from sklearn.linear_model import LinearRegression
X = np.array([[-10], [-5], [0], [5], [10], [15]])
y = np.array([2100, 1950, 1780, 1600, 1450, 1280])
model = LinearRegression().fit(X, y)
print("weight:", model.coef_[0])
print("bias:", model.intercept_)
print("prediction:", model.predict([[7]])[0])fit()估计参数,predict()对新输入执行推理。
理解检查
请用自己的话解释本课核心术语,举出真实应用例子,并说明如何验证系统结果。
10. 本课术语表
将输入数据转换为输出结果的计算关系。
模型的结构以及各项计算的执行顺序。
学习算法根据训练数据调整的内部数值。
独立于常规参数更新而选择的模型结构或训练配置。
决定某个特征或连接对计算结果贡献大小的参数。
用于平移模型输出的附加参数。
利用训练数据调整模型参数的过程。
将已训练模型应用于新的输入数据。
将数据输入模型之前执行的转换。
训练阶段与实际应用阶段的数据统计属性发生变化。
保存的模型状态或训练过程状态。
模型计算完成后对输出结果进行转换。
为什么必须保存完整流程?
假设训练数据使用一个已拟合的标准化器进行转换。部署时必须使用相同的标准化器和特征顺序。如果每次请求都重新计算均值和标准差,输入表示就会变化,预测可能不一致。应将预处理配置与模型一起保存,并测试完整流程,而不仅仅是模型对象。
下一课: 1.2.4 · 1.2.6 · 1.4.3 · 1.5.1–1.5.7 · 如何评估机器学习模型? ↗
完整课程内容:模型的组成与使用方式
区分数据、学习算法和模型
训练数据是用于构建模型的样本。学习算法是搜索合适模型或参数值的过程。训练完成的模型则是最终得到的计算对象,通常包括模型架构和学习到的参数,有时还包括其他状态。在推理阶段,模型接收新的输入并计算输出。这些概念承担不同角色:数据集不是模型,算法不是拟合后的结果,训练模型也不等于完整应用程序。
架构、参数与超参数
架构定义模型的结构,以及信息在模型内部经过哪些运算。参数由数据学习得到,例如线性系数、偏置、树的分裂值或神经网络权重。超参数用于配置架构或学习过程,例如树深度、正则化强度、层数、批量大小和学习率。超参数通过开发和验证过程选择,通常不会像普通权重一样在同一次训练步骤中直接估计。具体区别取决于模型家族,因此应明确记录哪些值是学习得到的,哪些值是预先配置的。
三类常见模型
线性模型使用学习得到的系数组合输入特征。它通常是很好的基线,也相对容易检查,但其假设可能无法描述复杂关系。决策树通过一系列基于特征的条件进行判断,并在叶节点输出预测。它可以表达非线性关系和特征交互,也能提供可读的决策路径,但过深的树容易不稳定并发生过拟合。神经网络由多层带参数的变换组成,能够学习丰富的内部表示,尤其适用于非结构化输入,但通常需要更多数据、计算资源和谨慎的评估。
这三类模型并不是固定的优劣排名。在小规模结构化数据上,梯度提升树可能以更低成本超过神经网络;图像识别可能更适合神经网络;对于安全关键决策,可检查的规则或受约束模型可能更合适。比较模型时应使用相同的基线和数据划分。
训练与推理是不同过程
训练阶段中,算法利用样本和损失函数调整参数。训练过程可能包括优化、验证、超参数选择和提前停止。模型通过验收后,推理阶段使用保存的参数处理新输入。普通推理不会更新模型。在线学习或定期重新训练属于单独的受控流程,需要监控、版本管理和回滚机制。
应该保存哪些内容?
可部署模型不只是一个权重文件。应保存模型架构和参数、特征名称及顺序、预处理步骤、类别编码、单位、目标变量定义、训练数据版本、软件依赖、必要时的随机种子、评估结果和模型版本。如果标准化器是在训练阶段拟合的,推理时必须复用这个已拟合的标准化器,而不能每次请求都重新计算统计量。否则模型收到的输入表示就与训练时不同。
模型只是AI系统中的一个组件
生产系统的处理链可能先校验输入、处理缺失值、转换特征、调用模型,再应用业务或安全规则、整理结果并展示给用户。日志、监控、人工复核和反馈也属于整个系统。即使模型本身准确,如果上游数据错误、使用场景超出预期范围或输出被错误理解,整个系统仍可能不可靠。因此,解释结果时也必须说明解释针对的是哪个组件。
同一个能耗任务中的三种模型
假设任务是根据天气、建筑面积和人员数量估计建筑每日能耗。线性回归可以提供透明的基线;决策树能够捕捉阈值效应,例如气温低于某点后供暖需求明显上升;神经网络可以表达更复杂的交互关系,但在小数据集上可能更难论证。应在相同的留出样本上比较MAE或RMSE,按运行条件检查残差,并记录训练成本和推理延迟。选择能够满足真实需求的最简单模型。
实践实验
使用不同的最大深度训练决策树,并保持训练集和测试集划分不变。记录每种深度下的训练误差和测试误差。如果训练误差持续下降,而测试误差开始上升,说明树可能发生了过拟合。解释改变的是哪个超参数、训练时哪些参数被学习,以及在部署前还需要哪些验证。
模型比较与可复现性检查清单
把模型作为完整候选方案进行比较
比较线性模型、决策树和神经网络时,应保持目标变量、输入特征、训练/测试划分和评价指标一致。否则,分数差异可能来自实验设置不同,而不是模型更好。先建立简单基线。除了预测质量,还应记录训练时间、推理延迟、内存使用、可检查程度以及维护成本。
应按重要运行条件检查错误。模型的平均误差可能很好,但在极端天气、低人员密度或某类设备上表现很差。平均值可能掩盖系统不可靠的特定群体。必须记录模型预期适用范围,并为超出范围的情况设置备用方案或人工复核。
模型发布包应包含什么?
- 带版本号的模型文件、架构和配置。
- 准确的特征结构、顺序、单位和预处理流程。
- 训练数据引用、代码版本和依赖版本。
- 评估报告,包括基线、数据划分、指标和错误分析。
- 预期用途、已知局限、监控信号和回滚方案。
无法复现或追踪的模型很难接受审计。只保存模型文件,而不保存特征定义和预处理步骤是不够的:训练和推理时必须以相同方式转换输入。
部署前需要回答的问题
- 评估数据是否代表真实用户、设备和运行条件?
- 用户能否识别模型不确定或超出适用范围的情况?
- 谁负责复核可能产生重大后果的输出?
- 如何发现数据漂移、输入缺失和异常预测?
- 能否安全恢复到之前的模型版本?
11. 互动自测
问题 1
学习算法的结果是什么?
问题 2
哪些数值通常属于线性模型的参数?
问题 3
普通推理过程中会更新模型参数吗?
问题 4
为了可复现地使用模型,需要保存哪些内容?
问题 5
“神经网络越大,就一定越适合所有任务”这一说法正确吗?
问题 6
生产环境中的 AI 系统可能包含哪些模型周边组件?