#AI夏令营 #Datawhale #夏令营
一、模型损失有两个原因
1.模型偏差 模型太小太简单了,不包含较小损失的函数,可重新设计模型,给模型更大的灵活性,可以通过增加输入的特征。 2.模型优化不好 梯度下降卡在局部最小值 区分方法 通过比较不同的模型来判断模型现在到底够不够大。如果训练损失大,可以先判断是模型偏差还是优化。如果是模型偏差,就把模型变大。假设经过努力可以让训练数据的损失变小,接下来可以来看测试数据损失;如果测试数据损失也小,比这个较强的基线模型还要小,就结束了。但如果训练数据上面的损失小,测试数据上的损失大,可能是真的过拟合。在测试上的结果不好,不一定是过拟合。要把训练数据损失记下来,先确定优化没有问题,模型够大了。接下来才看看是不是测试的问题,如果是训练损失小,测试损失大,这个有可能是过拟合。 |
过拟合:训练集上的结果好,但是测试集上的损失很大。 过拟合两个解决方向: 1.增加训练集 数据增强 2.给模型一些限制,不要过大的灵活性 给模型比较少的参数,例如深度学习,用比较少少的神经元数量 用比较少的特征,本来给 3 天的数据,改成用给2天的数据 其他方法,比如早停(early stopping)、正则化(regularization)和丢弃法(dropoutmethod) 模型太复杂的就过拟合,选太简单的有模型偏差的问题 不匹配: 模型预测出现的反常点 不匹配跟过拟合不同,一般的过拟合可以用搜集更多的数据来克服,但是不匹配是指训练集跟测试集的分布不同,训练集再增加其实也没有帮助了,所以这种问题要怎么解决,匹不匹配要看对数据本身的理解了,我们可能要对训练集跟测试集的产生方式有一些理解,才能判断它是不是遇到了不匹配的情况。 |
比较合理选择模型的方法是把训练的数据分成两半,一部分称为训练集(training set),一部分是验证集(validation set)。比如 90% 的数据作为训练集,有 10% 的数据作为验证集。在训练集上训练出来的模型会使用验证集来衡量它们的分数,根据验证集上面的分数去挑选结果。 如果随机分验证集,可能会分得不好,分到很奇怪的验证集,会导致结果很差,如果有这个担心的话,可以用 k 折交叉验证(k-foldcross validation),如图 2.11 所示。k 折交叉验证就是先把训练集切成 k 等份。在这个例子,训练集被切成 3 等份,切完以后,拿其中一份当作验证集,另外两份当训练集,这件事情要重复 3 次。即第一份第 2 份当训练,第 3 份当验证;第一份第 3 份当训练,第 2 份当验证;第一份当验证,第 2 份第 3 份当训练。 |
这个夏令营不简单 #AI夏令营 #Datawhale #夏令营 |