首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果学习曲线显示验证误差低于训练误差,预测是否可信?

如果学习曲线显示验证误差低于训练误差,预测是否可信?
EN

Stack Overflow用户
提问于 2019-01-29 17:48:44
回答 3查看 319关注 0票数 2

我正在使用神经网络(NN)作为我的地球物理学论文的一部分,并且正在使用TensorFlow和Keras来训练我的网络。

我目前的任务是使用神经网络来近似热力学模型,即非线性回归问题。它接受13个输入参数,并输出450个参数的速度剖面(速度与深度)。我的数据由100,000个合成示例(即没有噪声存在)、训练(80k)、验证(10k)和测试(10k)组成。

我已经针对许多不同的架构测试了我的网络:更宽(5-800个神经元)和更深(最多10层),不同的学习率和批量大小,甚至是许多时期(5000)。基本上所有交易的标准技巧...

但是,令我困惑的是,学习曲线显示验证误差低于训练误差(对于我的所有测试),并且我从未能够过度拟合训练数据。如下图所示:

看起来一个50个神经元的隐藏层就足够了。我认为这可能是由于由“容易”预测的示例组成的验证集,但我看不出我应该如何改变这一点。也许是一个更大的验证集?

如果使用该网络所做的预测是合理的呢?

对于我的问题和数据,是否有可能根本不可能进行过拟合?

EN

回答 3

Stack Overflow用户

发布于 2020-05-24 05:33:38

除了尝试更高的k倍和额外的测试坚持样本之外,在从原始数据集采样时可能会将其混合:在划分训练和验证/测试集时选择分层样本。然后在不分层抽样的情况下对验证和测试集进行划分。

我的观点是,如果你在你的建模方法中引入更多的变化(而不违反任何“统计规则”),你可以对你创建的模型更有信心。

票数 1
EN

Stack Overflow用户

发布于 2019-01-29 18:16:04

通过在不同的数据上重复实验,您可以获得更可靠的结果。将交叉验证与高折叠(如k=10)结合使用,可以更好地确定解决方案的性能。通常神经网络很容易过拟合,如果你的解决方案在验证和测试集上有类似的结果,这是一个好兆头。

票数 0
EN

Stack Overflow用户

发布于 2019-01-29 18:27:21

当不知道你设置实验的确切方式时,要说出来并不容易:

  • 您使用了哪种交叉验证方法?
  • 您是如何拆分交叉验证的

正如您所提到的,您观察到的验证错误低于训练,这可能是因为训练数据集包含许多“难以学习”的案例,或者验证集包含许多“容易”预测的案例。

然而,由于一般来说,训练损失预计会低估验证,对我来说,特定的模型似乎具有不可预测/未知的拟合(在预测未知方面表现得更好,因为已知的感觉确实很奇怪)。

为了克服这一点,我会通过重新考虑数据拆分策略,尽可能添加更多数据,甚至更改您的性能指标来开始实验。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54418149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档