理解机器学习中的 Training、Validation、Testing
——模型如何学习、优化与最终评估的完整指南**
在机器学习和深度学习的世界里,Training(训练)、Validation(验证)、Testing(测试) 是构建优质模型的三大核心步骤。
很多初学者经常混淆它们的作用,或者不知道为什么必须划分这三类数据集。
本指南将以清晰、系统的方式解释整个流程,让你彻底理解模型如何从“学习”走向“真正能用”。
🔥 第1部分 — Training(训练):模型真正学习的阶段
训练阶段是模型根据数据更新参数、学习规律的过程。
每个 Epoch 包含:
- Forward Pass:模型进行前向推理,给出预测
- Loss 计算:计算预测与真实值之间的误差
- Backpropagation(反向传播):计算梯度
- Optimizer 更新参数
- 重复上述步骤多轮训练
✔ 训练的目标
- 从数据中学习模式
- 更新权重,使模型更准确
- 降低训练损失
✔ PyTorch 示例
model.train()
for x, y in train_loader:
optimizer.zero_grad()
preds = model(x)
loss = criterion(preds, y)
loss.backward()
optimizer.step()
训练是模型“变得更聪明”的过程。
🔍 第2部分 — Validation(验证):选择最佳模型的过程
验证阶段 不会更新模型权重。
这一步的目的是检查模型在未见过的数据上的表现,并用于:
- 判断是否过拟合
- 调整超参数(learning rate、dropout、网络结构等)
- 选择最佳模型
验证时我们会:
- 使用
model.eval() - 使用
torch.no_grad()(不计算梯度 → 不训练) - 计算验证损失
- 跟踪验证指标(如 accuracy、F1-score)
✔ PyTorch 示例
model.eval()
with torch.no_grad():
for x, y in val_loader:
preds = model(x)
val_loss += criterion(preds, y).item()
✔ 为什么验证非常重要?
- 防止模型过拟合训练集
- 帮助调整超参数
- 找到训练过程中性能最佳的模型(Best Checkpoint)
⭐ 第3部分 — “每个 Epoch 都验证 → 保存最佳模型”
每训练完一轮(epoch),就用验证集评估模型。
如果当前验证指标比之前最好成绩更优,就保存该模型:
| Epoch | Train Loss | Val Loss | 操作 |
|---|---|---|---|
| 1 | 0.50 | 0.42 | 保存 |
| 2 | 0.40 | 0.36 | 保存 |
| 3 | 0.32 | 0.30 | 保存 |
| 4 | 0.28 | 0.35 | 不保存 |
| 5 | 0.26 | 0.31 | 不保存 |
最佳模型来自 第3轮,即便后面的训练轮数更多。
这样可以避免最终模型被“过拟合后的结果”覆盖。
⚙️ 第4部分 — Early Stopping:自动停止训练避免浪费时间
Early Stopping(早停)用于在验证集长期不再提升时提前终止训练。
例如:
patience = 5
含义:
👉 如果连续 5 个 epoch 验证效果没提升 → 停止训练
优点:
- 避免过拟合
- 节省训练时间
- 自动找到最佳收敛点
🧪 第5部分 — Testing(测试):最终性能评估
测试集用于对最终模型做一次“期末考试”。
特点:
- 只使用一次
- 不能参与训练或调参
- 用于评估最终泛化能力
测试阶段使用的是:
👉 验证表现最好的模型(Best Checkpoint)
测试集告诉我们:
- 模型在真实世界能否表现良好
- 模型是否泛化
- 是否达到生产要求
📊 第6部分 — 完整工作流程(Mermaid.js 图)
flowchart TD
A[Dataset] --> B["划分:训练集 / 验证集 / 测试集"]
B --> C["Training Loop<br>前向传播 + 反向传播 + 更新参数"]
C --> D["Validation Loop<br>仅前向传播,无梯度"]
D --> E{"验证效果更好吗?"}
E -->|"是"| F["保存最佳模型"]
E -->|"否"| G["不保存"]
F --> H["继续训练"]
G --> H["继续训练"]
H --> I{"训练完成<br>或 Early Stopping?"}
I -->|"否"| C
I -->|"是"| J["加载最佳模型"]
J --> K["测试集评估"]
K --> L["最终性能指标"]
🧠 总结
| 阶段 | 作用 | 是否学习? |
|---|---|---|
| Training(训练) | 通过数据更新模型权重 | ✔ 是 |
| Validation(验证) | 选模型、调参、检测过拟合 | ❌ 否 |
| Testing(测试) | 最终评价模型性能 | ❌ 否 |
✨ 标准工作流程:
训练 → 验证 → 保存最佳模型 → 测试(一次)
这是确保模型既能学习得好,又能泛化得好的黄金流程。
Get in Touch with us
Related Posts
- 为什么中小企业在 ERP 定制上花费过高?— 深度解析与解决方案
- Why SMEs Overpay for ERP Customization — And How to Prevent It
- 为什么我们打造 SimpliShop —— 为中国企业提供可扩展、可集成、可定制的电商系统
- Why SimpliShop Was Built — And How It Helps Businesses Grow Faster Worldwide
- Fine-Tuning 与 Prompt Engineering 有什么区别? —— 给中国企业的 AI 应用实战指南
- Fine-Tuning vs Prompt Engineering Explained
- 精准灌溉(Precision Irrigation)入门
- Introduction to Precision Irrigation
- 物联网传感器并不是智慧农业的核心——真正的挑战是“数据整合
- IoT Sensors Are Overrated — Data Integration Is the Real Challenge
- React / React Native 移动应用开发服务提案书(面向中国市场)
- Mobile App Development Using React & React Native
- 面向中国市场的 AI 垂直整合(AI Vertical Integration):帮助企业全面升级为高效率、数据驱动的智能组织
- AI Vertical Integration for Organizations
- 中国企业:2025 年 AI 落地的分步骤实用指南
- How Organizations Can Adopt AI Step-by-Step — Practical Guide for 2025
- 为什么中国企业正在加速采用「AI驱动的EV车队管理系统」
- EV Fleet Management SaaS with AI Optimization: The New Operating System for Modern Fleet Businesses
- 正在改变中国制造业的 7 大机器学习(Machine Learning)系统应用场景
- 7 Real-World Machine Learning System Use Cases Transforming Businesses & Factories













