我正在从事一个利用OpenStreetMap从卫星图像(使用Tensorflow对象检测数据作为标签)检测建筑物的项目。最近,我升级到Tensorflow 2,并从EfficientDet D4中选择了模范动物园。
我根据我的数据训练(微调)这个预先训练过的模型。在整个培训过程中,我一直使用模型的当前状态进行预测。重点是看看模型的性能如何通过培训得到更好的效果。
问题:在验证数据集中预测建筑物的能力根本没有提高。事实上,情况越来越糟了!然而,训练期间的损失却在不断减少。
下面是一个例子--蓝色是在不到一个时代之后对模型的预测,而红色则是模型训练得更多的预测:

对我来说,这没有任何意义。我花了很多时间尝试这方面的不同变化,使用另一个数据集进行评估等。但是,当我更多地训练模型时,我仍然得到了更糟糕的结果(在精确性、回忆性、f1方面)。而这并不是由于过度拟合,模型的性能几乎立即开始下降。
之前,我使用Tensorflow 1和SSD V2作为模型。这如预期的那样起作用,即随着培训的进展,模型探测建筑物的能力正在提高。
问:造成这一问题的原因是什么,我能做些什么来解决这个问题呢?我的想法已经用完了。
我是机器学习的新手,所以我可能在这里遗漏了一些重要的信息。如果需要更多的细节来回答这个问题,请告诉我。
发布于 2020-09-14 12:45:32
因此,问题是,为什么您看到损失函数减少(对于培训和验证?),但您也观察到在迭代过程中泛化性能下降。
第一个想法可能是由于您选择的丢失功能可能不适合您的任务。
https://datascience.stackexchange.com/questions/81640
复制相似问题