作者:訫嬘風飛_487_519 | 来源:互联网 | 2023-08-28 12:39
欠拟合“欠拟合(underfitting)”当数据不能够很好的拟合数据时,有较大的误差.以下面这个逻辑回归拟合的例子而言:这就是highbias的情况.过拟合“过拟合(overfi
欠拟合
“欠拟合(underfitting)”当数据不能够很好的拟合数据时,有较大的误差.
以下面这个逻辑回归拟合的例子而言:
这就是high bias的情况.
过拟合
“过拟合(overfitting)”如果我们拟合一个非常复杂的分类器,比如深度神经网络或者含有隐藏神经的神经网络,可能就非常适用于这个数据集,但是这看起来不是一种很好的拟合方式,分类器方差较高,数据过度拟合
适度拟合
复杂程度市中,数据拟合适度的分类器,数据拟合程度相对合理,我们称之为”适度拟合”是介于过拟合和欠拟合中间的一类.
在这样一个只有x1和x2两个特征的二维数据集中,我们可以绘制数据,将偏差和方差可视化.但是在高维空间数据中,会直属局和可视化分割边界无法实现.但我们可以通过几个指标来研究偏差和方差.
通过验证集/训练集判断拟合
“过拟合”:训练集中错误率很低,但是验证集中错误率比验证集中高很多.方差很大.
“欠拟合”:训练集中错误率相对比较高,但是验证集的错误率和训练集中错误率差别不大.偏差很大.
偏差和方差都很大: 如果训练集得到的错误率较大,表示不能很好的拟合数据,同时验证集上的错误率甚至更高,表示不能很好的验证算法.这是偏差和方差都很大的情况.
较好的情况: 训练集和验证集上的错误率都很低,并且验证集上的错误率和训练集上的错误率十分接近.
以上分析的前提都是假设基本误差很小,训练集和验证集数据来自相同分布,如果没有这些前提,分析结果会更加的复杂
https://blog.csdn.net/u013555719/article/details/78277675
验证集可以用在训练的过程中,一般在训练时,几个epoch结束后跑一次验证集看看效果。(验证得太频繁会影响训练速度)
这样做的第一个好处是,可以及时发现模型或者参数的问题,比如模型在验证集上发散啦、出现很奇怪的结果啦(如无穷大)、mAP不增长或者增长很慢啦等等情况,这时可以及时终止训练,重新调参或者调整模型,而不需要等到训练结束。另外一个好处是验证模型的泛化能力,如果在验证集上的效果比训练集上差很多,就该考虑模型是否过拟合了。同时,还可以通过验证集对比不同的模型。
模型的参数包括普通参数和超参数(与模型设计和训练有关的一些参数),利用bp只能训练普通参数,而无法“训练”模型的超参数,因此,我们设置了验证集,通过验证集的效果进行反馈,根据效果看是否需要终止当前的模型训练,更改超参之后再训练,最终得到最优的模型!
PS:
1)针对超参的选择我们是根据验证集上的效果来进行调整的,因此验证集可以看做参与到“人工调参”的训练过程;
2)注意训练集、验证集和测试集应该服从同一数据分布,这样我们才能进行玄学调参;
3)测试集是可以没有的,但验证集是必须有的,如果验证集具有足够的泛化代表性,是可以不需要设置测试集的;注意测试集的存在只是为了验证我们在训练集和验证集上进行模型的超参和参数训练后,验证我们得到的模型是否具有泛化性能!
更多:
深度学习中的验证集和超参数简介
tensorflow:训练集、测试集、验证集
深度学习: 验证集 & 测试集 区别
训练集(train set) 验证集(validation set) 测试集(test set)
深度学习中的验证集和超参数简介
https://www.zhihu.com/question/67088399/answer/249321489
https://blog.csdn.net/JNingWei/article/details/78170171