我正在处理pytorch中的一个回归问题。我的目标值可以在0到100或0到1之间(它们表示%或%除以100)。
数据是不平衡的,我有更多的数据和更低的目标。
我注意到,当我运行目标在0-100范围内的模型时,它不会学习-验证损失没有改善,25%大目标的损失非常大,比这组中的std大得多。
然而,当我用0-1范围内的目标运行模型时,它确实学习了,并且我得到了很好的结果。
如果有人能解释为什么会发生这种情况,如果使用范围0-1是“作弊”,那就太好了。
还有-我应该扩展目标吗?(如果我使用较大或较小的范围)。
一些额外的信息-我正在尝试微调bert以完成特定的任务。我使用MSEloss。
谢谢!
发布于 2020-07-26 21:48:14
我认为您的观察与批量规范化有关。有一个关于这个主题的paper,大量的媒体/趋势数据科学的帖子,我不会在这里列出。这个想法是,如果你的模型和损失函数中没有非线性,那就没有关系了。但即使在MSE中,也存在非线性,这使得它对目标数据和源数据的缩放都很敏感。您可以尝试在密集层或卷积层之后将Batch Normalization层插入模型中。在我的经验中,它经常提高准确性。
https://stackoverflow.com/questions/63100933
复制相似问题