机器学习的任务攻略 - zs-collab/- GitHub Wiki

机器学习的任务攻略

训练资料拿来训练Model
3阶段
1.写出有未知数的Function,未知数为:θ
2.定义一个loss function
3.optimization,让loss最小,得θ*
用θ*來做test data
屏幕截图 2025-06-04 184727

看看训练资料的loss
发现loss太大→两种可能
屏幕截图 2025-06-04 185151

model太简单,太小了,找不到合适的Function
解决:设一个更大的model,增加features以及deep Learning增加model的弹性
屏幕截图 2025-06-04 185603

Gradient Descent找不到更小的Loss Function 屏幕截图 2025-06-04 190114

56层 v.s. 20层 的测试资料,20层的loss<56层的loss
56层 v.s. 20层 的训练资料,20层的loss<56层的loss
因为在训练的时候,越深/复杂的model应该要越契合训练资料,甚至会overfitting,所以训练资料的loss,深<浅
先用简单的model来做训练,再做深的model,发现loss,深>浅→optimiaztion Issue
屏幕截图 2025-06-04 190552

先看训练资料的loss
发现loss太小→看看测试资料的loss
loss小→恭喜:
loss大→两种可能
屏幕截图 2025-06-04 191357

过拟合是什么?缺乏泛化能力,仅拟合训练数据,因此在测试数据上表现不稳定。例如:像考试高分拿到驾照,实际上路却成了马路杀手。
屏幕截图 2025-06-04 191652 屏幕截图 2025-06-04 191834

解决方案

  1. 增加训练数据
    a. 采集新数据
    b. 数据增强(Data Augmentation) → 通过修改现有数据生成(伪)新样本 屏幕截图 2025-06-04 192441

  2. 对模型施加约束
    优先添加与问题需求相关的限制(例如:已知问题符合二次函数特性,则将模型限制为二次形式)
    注意:过度约束可能导致模型偏差(Model Bias)问题
    减少数据量(特殊场景适用)
    屏幕截图 2025-06-04 192859

复杂模型:包含function和参数比较多
影响:
复杂度↑ → 训练损失(loss)↓,但容易过拟合 → 测试损失(loss)↑
核心问题:如何选择恰到好处的模型?
屏幕截图 2025-06-04 193115

把训练集分成训练集&验证集
屏幕截图 2025-06-04 193543

分三份,每份都分两份训练&一份验证,model交叉测试 屏幕截图 2025-06-04 193726