day31验证集

📅 发布时间:2026/7/16 0:44:03 👁️ 浏览次数:
day31验证集
在刚接触机器学习或者做一些比较基础的练手项目时我们通常只会把数据切分成训练集Train和测试集Test比如经典的 8-2 分成。你现在之所以看到了“训练、验证、测试”三分天下的局面是因为你正在经历从“基础练习”到“严谨的学术/工程级深度学习”的进阶。我们可以从以下几个维度来看看为什么现在必须要有验证集1. 为什么以前不需要验证集在以前的基础项目里模型可能很简单比如线性回归、简单的决策树你只需要让它学完数据然后拿测试集跑个分数就行了。你不怎么需要去调整“学习率有多大”、“训练多少轮”这些复杂的参数所以两个集就够用了。2. 为什么深度学习必须加一个验证集在深度学习比如你配置表里的 ResNet18中模型有非常多需要人工设置的“超参数Hyperparameters”比如学习率lr: 0.01训练轮数epochs: 50是否使用某种注意力机制SE,CBAM致命问题来了你怎么知道学习率设为 0.01 最好你怎么知道训练 50 轮是刚刚好还是已经过拟合了如果用训练集看不准因为模型已经把训练集背下来了相当于学生背过了课后题答案。如果用测试集看绝对不行这在学术界叫作“数据泄露Data Leakage”。如果你根据测试集的成绩来不断修改学习率那就相当于学生偷看了高考卷子来调整复习重点。最后考出的高分是虚假的换一套新题真正应用到现实场景立马就不及格了。3. 验证集充当“模拟考”的缓冲地带为了解决这个问题科学家们硬生生从数据里又抠出了一块叫作验证集Validation Set。现在标准流程变成了这样平时练习训练集模型在这个数据集上更新权重拼命学习。月末模拟考验证集每学完一轮Epoch拿验证集考一下。重点我们只看分数不让模型根据这个卷子更新权重。如果分数提高了说明当前的学习率和策略有效继续保持。如果连续几次模拟考分数都在下降说明模型“学偏了”过拟合我们就立刻叫停Early Stopping或者调低学习率。最终的高考测试集当你在验证集上把所有的参数都调到了完美状态模型彻底定型了最后只在测试集上跑唯一的一次。这个成绩就是你写在论文里的最终准确率。z浙大疏锦行