理解机器学习中的 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
- Understanding Training, Validation, and Testing in Machine Learning
- 深入理解神经网络
- Understanding Neural Networks Deeply
- AI 商品真伪鉴定系统:为现代零售品牌打造的智能解决方案
- AI-Powered Product Authenticity Verification for Modern Retail Brands
- Timeless Wisdom: The Books That Teach You How to Think Like an Experimental Physicist
- SimpliBreakout: The Multi-Market Breakout and Trend Screener for Active Traders
- SimpliUni: The Smart Campus App That Simplifies University Life
- Building a Multi-Market Breakout Stock Screener in Python
- How Agentic AI and MCP Servers Work Together: The Next Step in Intelligent Automation
- DevOps in Django E-Commerce System with DRF and Docker
- How AI Can Solve Real Challenges in Agile Development
- Connecting TAK and Wazuh for Real-Time Threat Awareness
- Scaling Wazuh for Multi-Site Network Security Monitoring
- Why ERP Projects Fail — and How to Avoid It
- How to Build Strong Communities with Technology
- How AI Can Make Open Zoos More Fun, Smart, and Educational
- How to Choose the Right Recycling Factory for Industrial Scrap
- Understanding Modern Database Technologies — and How to Choose the Right One
- The Future Is at the Edge — Understanding Edge & Distributed Computing in 2025













