我已经训练了一个模型,花了我相当长的时间才能找到正确的超参数。 该模型现在已经训练了15小时,在工作上似乎还不错。
当我观察到训练和验证损失时,训练损失比验证损失要高一些。 (红色曲线:训练,绿色:验证)
我使用dropout来规范化我的模型,据我所知,droput仅在训练期间应用,这可能是原因。
现在Iam想知道我是否训练了有效的模型? 似乎该模型的拟合程度很低?
预先感谢您的任何建议,
欢呼
M
答案 0 :(得分:0)
如果模型未达到,其性能将会降低,与过度拟合相似,因为实际上它无法有效地学习以获得最佳结果,即适合给定分布的适当功能。因此您必须使用较少的正则化技术,例如减少辍学以获得最佳结果。
此外,采样也可能至关重要,因为可能存在训练-验证子集,其中模型在验证集上表现良好,而在训练集上效果较差,反之亦然。这就是我们使用 crossvalidation 和其他采样方法(例如, 分层的k折。
答案 1 :(得分:0)
首先,检查您是否有良好的数据集,即,如果它是一个分类,则为所有类获取相等数量的图像,并从同一来源而不是不同来源获得。正则化,辍学用于过度拟合/高方差,因此不必担心这些。
然后,当您训练模型时,我认为您的模型运行良好,它们之间的初始误差有所不同,但是随着时间的增加,它们都进入了稳定的道路。这样很好。可能是我上面提到的原因,或者您应该尝试将其改组,然后使用train_test_split来更好地分配训练和验证集。 在以下情况下,学习曲线图显示出很好的拟合度:
在您的情况下,满足这些条件。
如果您想解决高偏差/欠拟合问题,那么这里有几种方法:
也可以使用交叉验证或GridSearchCV来查找更好的优化程序或超级参数,但这可能会花费很长时间,因为考虑到您的时间是15个小时,那么每次必须在不同的参数上对其进行训练,那么这可能会很长但是您会发现更好的参数,然后对其进行训练。
首先,我认为您的模型还可以。