【问题标题】:Increased Error with more Training Data for a Neural Network in MatlabMatlab 中神经网络的更多训练数据会增加错误
【发布时间】:2015-04-13 07:39:22
【问题描述】:

我有一个关于 Matlab NN 工具箱的问题。作为研究项目的一部分,我决定创建一个 Matlab 脚本,该脚本使用 NN 工具箱来提供一些合适的解决方案。

我有一个正在加载到我的系统的数据流。输入数据由 5 个输入通道和 1 个输出通道组成。我在此配置上训练我的数据一段时间,并尝试将输出(在一段时间内)拟合为新数据流。我不断重新训练我的网络以使其保持更新。

到目前为止,一切正常,但经过一段时间后,结果变差,并不代表所需的输出。我真的无法解释为什么会发生这种情况,但我可以想象一定有某种内存问题,因为数据集仍然很小,一切都很好。

只有当它变大时,模拟的质量才会下降。是否有某种内存已满,或者糟糕的模拟仅仅是庞大数据集的结果?我是这个工具的初学者,非常感谢您的反馈。提前致以最诚挚的问候和感谢!

【问题讨论】:

  • 这是一个可能很有趣的问题,但我认为您提供的有关 NN 设置和传入数据的信息几乎不足以让任何人提供帮助。
  • 嗨,约翰,感谢您的评论。 NN setup配置如下:1个Neuron,Training function:trainingbr,0.7/0.15/0.15。数据是机器数据流,5 个输入通道,1 个输出,正如我在上一篇文章中提到的。我对数据进行了 1 小时的数据训练,然后在接下来的一个小时内进行了模拟。然后我训练 2 小时的数据并模拟第 3 小时,依此类推。

标签: matlab neural-network


【解决方案1】:

请详细说明您使用新数据进行再培训的方法。你会进行进一步的迭代吗?你认为什么是“时间”?你的意思是纪元吗?

乍一看,假设时间意味着时代,我会说您过度拟合数据。神经网络应该使用early stopping 进行有限数量的训练。您可以尝试正则化、不同的梯度下降方法(如果您使用 GD 方法)、GD 动量。此外,根据前几个训练数据集的值,您可能使用不正确的归一化范围训练数据。如果我的假设正确,您应该检查这些问题。

【讨论】:

  • 嗨,平均训练时间为 1 小时的数据(例如 1Hz 数据 - 3600 个数据行。)经过这 1 小时的训练(3600 分),我模拟下一小时(接下来的 3600 分) .第二个小时过去后,我使用可用的 2 个小时数据(7200 行),重新训练网络并模拟第 3 个小时。对我的整个数据范围重复此过程。问题是一切正常,直到某个阶段,然后质量迅速下降。我已经在上面描述了我的 NN 的设置。
  • @mitCo 我明白了。可能存在多个问题,所以我认为说它是内存有点牵强。也许通过从每个来源获取更少的数据(例如,第一个小时的 50% 和第二个小时的 50%)来对数据进行二次抽样会很有用。我使用我的一些数据来进行 SVM 训练。另一件要尝试的事情是改变你的架构。考虑扩展您的架构以包含更多神经元。更多的神经元可以让你覆盖更多的变异数据,但请再次记住过度训练的问题
  • 归根结底,如果模型发生变化,您可能无法对这种变化进行建模,可能需要更多层。
猜你喜欢
  • 2010-11-20
  • 1970-01-01
  • 1970-01-01
  • 2015-08-13
  • 2015-05-28
  • 2021-12-12
  • 2012-12-04
  • 2017-08-18
  • 1970-01-01
相关资源
最近更新 更多