深度学习3——数据集概述

1. 机器学习与深度学习

  • 机器学习(Machine Learning,ML)是一个较大的概念,深度学习(Deep Learning,DL)属于机器学习的一个分支。

  • 传统机器学习通常需要人工设计或筛选特征,再把特征输入模型。例如判断垃圾邮件时,可以人工提取邮件长度、链接数量、关键词数量等特征。

  • 深度学习使用多层神经网络自动学习特征,一般需要更多数据、更高算力和更长训练时间。

常见传统机器学习模型:

  • 逻辑回归 Logistic Regression

  • 支持向量机 SVM

  • 决策树 Decision Tree

  • 随机森林 Random Forest

  • XGBoost

  • K近邻 KNN

常见深度学习模型:

  • CNN:主要用于图像、视频等任务

  • RNN、LSTM:主要用于序列任务

  • Transformer:广泛用于大语言模型、视觉和多模态任务

传统机器学习并不一定比深度学习差。对于结构化表格数据、数据量较小、特征含义明确的任务,XGBoost、随机森林等模型往往仍然很有效。


2. 数据集质量与数据划分

数据集质量

衡量数据集不能只看样本数量,还要关注:

  • 标签是否正确

  • 是否存在漏标、错标和重复数据

  • 是否存在缺失值

  • 数据噪声是否严重

  • 各类别数量是否均衡

  • 训练数据能否代表真实业务场景

  • 训练集、验证集和测试集之间是否存在数据泄漏

  • 是否覆盖小目标、遮挡、反光、复杂背景等困难样本

类别不平衡时可以采用:

  • 对多数类下采样

  • 对少数类过采样

  • 提高少数类的损失权重

  • 补充少数类真实数据

  • 使用数据增强

  • 使用 Focal Loss 等更加关注困难样本的损失函数

一般情况下,优先补充真实有效的数据,而不是简单复制少数类样本。

训练集、验证集和测试集

训练集

用于训练模型参数:

复制代码
输入数据
→ 前向传播得到预测结果
→ 计算损失
→ 反向传播计算梯度
→ 优化器更新参数

训练集会直接参与参数更新。

验证集

通常在每个 epoch 结束后评估一次,但不参与反向传播,也不更新模型参数。

主要用途:

  • 观察模型是否过拟合

  • 选择最佳训练轮次

  • 选择最佳模型权重文件

  • 调整学习率、batch size、正则化强度等超参数

  • 比较不同模型结构和训练方案

这里的"模型选择"并不是每个 epoch 后自动更换激活函数或网络结构,而是:

  • 同一次训练中,选择验证集效果最好的 epoch 对应的模型权重

  • 多次实验之间,比较不同模型结构、学习率、优化器等方案

例如:

Epoch 训练集准确率 验证集准确率
20 85% 82%
50 94% 88%
100 99% 84%

虽然第100轮训练集效果最好,但验证集效果已经下降,因此可能选择第50轮的模型。

测试集

只在模型、超参数和最佳权重确定后使用,用于评价模型面对未知数据时的泛化能力。

不能根据测试集结果反复调整模型,否则测试集实际上就承担了验证集的作用,最终结果会偏高。

常见划分比例:

  • 70% : 15% : 15%
  • 80% : 10% : 10%

视频数据不能简单随机按帧划分,因为相邻帧非常相似。更合理的是按照视频、日期、场景或设备划分,防止相邻帧同时进入训练集和测试集。

相关推荐
Csvn3 小时前
第 28 章 案例四 多智能体协作系统
人工智能·aigc·agent
IT_陈寒3 小时前
Java中equals方法比了个寂寞?原来这才是正确的重写姿势
前端·人工智能·后端
吴佳浩3 小时前
Agent 怎么做自动化评测?构建端到端的 Agent Evaluation 体系
人工智能·agent·ai编程
火山引擎开发者社区3 小时前
火山引擎云数据库 TiDB 版公测开启,MySQL 架构升级的一站式选择
人工智能
代码方舟3 小时前
Java数据工程:利用天远全网运营商三要素优化线上实名认证合规体验
java·人工智能
Csvn3 小时前
第 27 章 案例三 自动化工作流 Agent
人工智能·aigc·agent
知几蜗牛3 小时前
AI眼镜把记忆放上云,怎样证明云端也看不见?
人工智能
知几蜗牛3 小时前
训练数据越多越好吗?用LeRobot讲清数据质量与版本化
人工智能
知几蜗牛3 小时前
PR合并慢,别再只看平均时长:GitHub把等待拆成了三段
人工智能
知几蜗牛3 小时前
AI账单失控前,团队真正缺的不是更便宜的模型
人工智能