machine-learning - 回归网络Pybrain回归网络如何正确地进行网络预测

  显示原文与译文双语对照的内容
0 0

我正尝试用递归神经网络( 我使用pybrain来构建它) 解决回归任务。 我的网络适合后,我想用它来预测。 但递归网络的预测受它的前预测( whih反过来受到预测前的预测影响)的影响。

问题是- 一旦网络被训练,我想对数据集进行预测,如何正确地启动预测过程。 如果我在一个数据集的第一个示例中调用. activate(),那么重复连接将传递 0到undesireable的预测。 是否有一种强制完全受训的反复网络认为前一个激活结果是一个特殊值的方法。 如果是的话,这里的哪个值最好( 可以能是可以能的激活输出值或者 smth)?

更新。好,因为一天内没有任何想法,如何在pybrain中使用重复网络,让我来改变 pybrain 。 考虑我为回归( 例如预测股票的价格) 构建了一个pybrain网络。 网络将与具有 10个特性的数据集一起使用。 我向数据集中添加一个附加特性,并用数据集的以前的价格填充它。 因此我复制了一个递归网络( aditional输入神经元复制递归连接) 。 问题是:

1 ) 在训练数据集中,我用以前的价格填充这个附加特性。 但是,如何处理训练数据集( 我不知道以前的价格) 中的第一条记录。 应该保留 0这是个坏主意,以前的价格不是零。 我应该在训练数据集中使用价格的平均值? 再次建议2 ) 同样的问题,与 #1 相同,但针对测试数据集运行完全训练的网络。 在运行测试数据集时,我应该总是选择它的预测,并将它的结果放入新的11th 输入神经元。 但是,当我需要在数据集( 因为我不知道以前的价格) 中首次运行预测时应该做?

时间: 原作者:

0 0

这并不是我对递归网络的理解。

当你最初创建一个递归网络时,回归连接( 说中间层到中间层) 将是随机的,与任何它的他连接。 这就是他们的开始值。 每次激活一个递归网络,你都会改变这些连接,这样你的输出就会被改变。

如果你编写了一些代码来培训递归网络并将它的保存到文件中,则该文件将包含你最后激活的反馈。

你要做的事情是确保在你想保存它的状态时保存你的回复网络。 对于简单的FFN,这不会是一个问题,因为仅在培训期间更改状态,因为在任何激活之后都会保持状态。

我不认为是因为重复连接的初始值,因这里我不会信任第一个调用,但是它们不是问题。

关于你更新的问题,我并不认为任意添加单个输入节点将模拟这里问题。 事实上我怀疑你绝对会破坏网络的预测能力。 例如首先输入 10个输入节点,然后假装有 20个中间节点,只需添加额外的输入节点,就可以生成一个额外的20个连接,这将是最初的随机连接。 每个附加点将会复合这个更改,并且在 10个附加输入节点之后,你将有多个随机连接。

我没有看到这个工作,我当然并不相信它会以你认为的方式模拟循环学习。

...