将值除以 100 时回归问题得到更好的结果
Posted
技术标签:
【中文标题】将值除以 100 时回归问题得到更好的结果【英文标题】:Regression problem getting much better results when dividing values by 100 【发布时间】:2020-11-15 22:26:06 【问题描述】:我正在研究 pytorch 中的回归问题。我的目标值可以介于 0 到 100 或 0 到 1 之间(它们表示 % 或 % 除以 100)。
数据不平衡,我有更多数据但目标较低。
我注意到,当我使用 0-100 范围内的目标运行模型时,它不会学习 - 验证损失没有改善,25% 大目标的损失非常大比该组的标准大。
但是,当我使用 0-1 范围内的目标运行模型时,它会学习并且我会得到很好的结果。
如果有人能解释为什么会发生这种情况,并且如果使用 0-1 范围是“作弊”,那就太好了。
另外 - 我应该缩放目标吗? (如果我使用更大或更小的范围)。
一些附加信息 - 我正在尝试为特定任务微调 bert。我使用 MSEloss。
谢谢!
【问题讨论】:
【参考方案1】:我认为您的观察与批量标准化有关。有一个paper 写在这个主题上,有很多媒体/数据科学的帖子,我不会在这里列出。想法是,如果您的模型和损失函数中没有非线性,那没关系。但即使在 MSE 中,您也确实存在非线性,这使得它对目标和源数据的缩放都很敏感。您可以尝试在密集层或卷积层之后将Batch Normalization 层插入模型。根据我的经验,它通常会提高准确性。
【讨论】:
以上是关于将值除以 100 时回归问题得到更好的结果的主要内容,如果未能解决你的问题,请参考以下文章