文章:用神经网络进行价格预测 - 页 14 1...7891011121314151617 新评论 Илья 2008.04.14 22:02 #131 中子,增加输入数量的平滑效果是合法的。但是,滞后性可以由很多因素决定,既有这些输入的缺乏,也有可能是网络的不完善,也许是训练不足。如果这样做,加上对上述标准的所有 "+",就会产生滞后性,这是另一回事。 ds2 2008.04.14 22:41 #132 Neutron: 这显示了测试两个NS的预测能力的结果。 图中红色显示的是原始时间序列(RT),蓝色显示的是线性单层网络在1bar前的预测,绿色显示的是非线性双层网络。在这两种情况下,浸泡的深度是相同的。可以看出,对于这个人工案例,在BP趋势部分的预测数据有一个明显的残留。我不知道我有经验的同事是否观察到这种效果,如果是的话,这可能与什么有关? 你的网络在某种程度上表现得很奇怪--它在趋势部分得到同一组输入数据,却得到不同的预测结果(它在图表上得到一条断线,而它应该是直线)。在这方面,问题是。 1)中间网络层中有多少个神经元? 2)有多少个输入? 3)输入的是什么? 关于对趋势的预测的滞后性。这就是它应该工作的方式。你向网络输入了大约30个训练向量,其中连续的上升值为0.1,产生了0.1的上升,并输入了一个向量,同样的连续上升值产生了3的下降。你在不一致的数据上训练网络。所以它平均了你的那31个矛盾的预测...... 我还建立了一个2层的NS。有3个输入和3个中间神经元。输入的是增量值。为了比较,我在所有数据上训练了这个网络一次,第二次我在训练中排除了异常值--即所有在输入中包含过大数值的训练向量,即非常突然地崩溃了3。差异是显而易见的。 Yuriy Zaytsev 2008.04.14 23:02 #133 rip: slava1: 好吧,你可以为这个问题争论很久,谁理解他们的理解,或者不理解。谈话的内容是关于数据准备。我明白,没有人愿意在这里讨论这个问题。遗憾的是 如果你想做一个关于如何为NS训练准备数据的讲座,我认为不应该在这个论坛上进行,没有多少人会对这里感兴趣。 好吧,你错了!我认为阅读实践者的经验会很有趣,他们是如何做到的。 Neutron 2008.04.15 06:25 #134 ds2: 你的网络表现得很奇怪--它在趋势部分接收相同的输入数据集,但却给出不同的预测(它在图上显示为一条断线,而它应该是直线)。在这方面,问题是。 1)中间网络层中有多少个神经元? 2)有多少个输入? 3)输入的是什么? 关于对趋势预测的滞后性。这就是它应该工作的方式。你向网络输入了大约30个训练向量,其中连续的上升值为0.1,产生了0.1的上升,并输入了一个向量,同样的连续上升值产生了3的下降。你在不一致的数据上训练网络。所以它平均了你的那31个矛盾的预测...... 我还建立了一个2层的NS。有3个输入和3个中间神经元。输入的是增量值。为了比较,我在所有数据上训练了这个网络一次,第二次我在训练中排除了异常值--即所有在输入中包含过大数值的训练向量,即非常突然地崩溃了3。差异是显而易见的。 ds2,以及 所有回应的人,非常感谢你们的关注和明智的建议--这真的很有帮助。问题是,我把训练周期的数量(我相信它叫做Epochs)限制在100次,以加快我的网络的预测速度。当然,这还不够,所以网络没有正常学习。在将历时数增加到1000后,一切都运行良好--滴答到滴答(好吧,几乎如此)。 我有一个两层网络,具有双曲正切形式的非线性,隐藏层的神经元数量为2,突触数量为d*2+2,其中d是NS输入的一个维度。对于图中所示的情况,我有d=2,训练向量的数量是6。训练样本中的向量数量等于突触的数量,所以我看到,网络没有重新训练,也没有尝试平滑预测,这可以更有效地跟踪价格跳动。为了训练,我还输入了一连串的增量值作为输入。我还不熟悉准备输入数据的精细艺术(我指的是你的 "第二次训练时排除尖峰"),但我希望能很快掌握这门艺术。 这里有一个预先感兴趣的结果: 这是一个单层非线性NS的单步预测,每一步都要重新训练,只有一个输入!而训练样本=2个向量,每个都有一个元素。 我被吓到了.... 事实证明,奈伦网络和人工智能并不简单,而是非常简单 RIP 2008.04.15 07:17 #135 Neutron:ds2。 你的网络表现得很奇怪--它在趋势部分接收相同的输入数据集,但却给出不同的预测(它在图上显示为一条断线,而它应该是直线)。在这方面,问题是。1)中间网络层中有多少个神经元? 2)有多少个输入?3)输入的是什么?关于对趋势预测的滞后性。这就是它应该工作的方式。你向网络输入了大约30个训练向量,其中连续的上升值为0.1,产生了0.1的上升,并输入了一个向量,同样的连续上升值产生了3的下降。你在不一致的数据上训练网络。所以它平均了你的那31个矛盾的预测......我还建立了一个2层的NS。有3个输入和3个中间神经元。输入的是增量值。为了比较,我在所有数据上训练了这个网络一次,第二次我在训练中排除了异常值--即所有在输入中包含过大数值的训练向量,即非常突然地崩溃了3。差异是显而易见的。ds2,以及 所有回应的人,非常感谢你们的关注和明智的建议--这真的很有帮助。问题是,我把训练周期的数量(我相信它叫做Epochs)限制在100次,以加快我的网络的预测速度。当然,这还不够,所以网络没有正常学习。在将历时数增加到1000后,一切都运行良好--滴答到滴答(好吧,几乎如此)。我有一个两层网络,具有双曲正切形式的非线性,隐藏层的神经元数量为2,突触数量为d*2+2,其中d是NS输入的一个维度。对于图中所示的情况,我有d=2,训练向量的数量是6。训练样本中的向量数量等于突触的数量,所以我看到,网络没有重新训练,也没有尝试平滑预测,这可以更有效地跟踪价格跳动。为了训练,我还输入了一连串的增量值作为输入。我离输入数据准备的精细艺术还很远(我指的是你的 "在第二次训练中排除尖峰"),但希望我很快就能学会这个技巧。 为了改善样本,尝试扩大训练序列,比如说,按照这个原则。 有两个相邻的数列值 - x1,x2在它们相加的区间内 x1,2 = (x1+x2)/2 这种方法对于相邻数值高度相关的时间序列 效果很好。 语录流的情况就是如此。 RIP 2008.04.15 07:20 #136 Neutron: 这里有一个预先感兴趣的结果: 这是一个单层非线性NS的单步预测,每一步都进行再训练,只有一个输入!而训练样本=2个向量,每个向量有一个元素。 我被吓到了... 我可以请你公布生成训练向量的原始数据文件吗? Neutron 2008.04.15 07:22 #137 文件的格式应该是什么样子的,以便你能读懂它。重点是,我从头开始写自己的NS,并以我觉得舒服的格式使用数据。 Для улучшения выборки попробуйте расширить обучающий ряд, скажем по такому принципу: 有两个相邻的数列值--x1,x2在它们之间加x1,2=(x1+x2)/2 这种方法在时间序列上效果很好,相邻值的相关性很高。 流媒体报价的情况就是如此。 这种情况适用于正相关的系列。价格VR在相邻的样本之间有明显的负相关,所以这种方法不会正确。 还有一件事。如果尊敬的论坛用户能够发表有根据的论据,支持在其他条件相同的情况下,2层NS比单层NS有更大的预测能力,那就更好了。 作为一种选择。下面你可以找到一个带有测试矢量的压缩文件,如图所示,你可以根据自己的需要来剪裁它。 附加的文件: rnd.zip 1 kb Candid 2008.04.15 08:39 #138 Neutron: 我被吓到了... 事实证明,尼禄网络和人工智能并不只是,而是非常简单! 我还没有尝试实际应用NS(尽管在最后一个想法的背景下,我似乎被带到了那里),但从人类的角度来看,测试向量由非常简单的依赖关系组成(大约两三个参数),应该非常容易被片断地逼近。 我怀疑这正是NS的工作。快速重排可能是NS简单化的结果,也就是说,在这种情况下,短时记忆是一种福气。 Neutron 2008.04.15 09:35 #139 总的来说,Candid,我同意你的观点,但我想深入挖掘......例如,NS(隐藏层)的复杂性有多大的合理性。 而且,实际上,我是个疯子!"。重点是,如果你以某种形式表示NS的非线性,你可以得到权重的精确分析解。这反过来意味着,它将有可能拒绝采用误差反向传播的方法进行网络训练,并在一次行动中获得尽可能准确的结果,而不需要任何有1000个纪元的训练!!。 P.S.我忘了提醒你,我在每个神经元中使用了一个具有恒定兴奋水平的突触。 补遗。 带着它,带着它,带着它;-) 这是一个单层非线性NS的尺度的 "精细 "分析解决方案。 这让我微笑。 但整个计算过程需要一毫秒。 Евгений 2008.04.15 18:24 #140 作为一个 "神经科学家 "的新手,请向我解释这个问题。据我所知,有关的网络是一个多层感知器。 选择这种类型的网络的原因是什么?为什么不是霍普菲尔德或科霍宁或其他的东西? 1...7891011121314151617 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
这显示了测试两个NS的预测能力的结果。
图中红色显示的是原始时间序列(RT),蓝色显示的是线性单层网络在1bar前的预测,绿色显示的是非线性双层网络。在这两种情况下,浸泡的深度是相同的。可以看出,对于这个人工案例,在BP趋势部分的预测数据有一个明显的残留。我不知道我有经验的同事是否观察到这种效果,如果是的话,这可能与什么有关?
你的网络在某种程度上表现得很奇怪--它在趋势部分得到同一组输入数据,却得到不同的预测结果(它在图表上得到一条断线,而它应该是直线)。在这方面,问题是。
1)中间网络层中有多少个神经元?
2)有多少个输入?
3)输入的是什么?
关于对趋势的预测的滞后性。这就是它应该工作的方式。你向网络输入了大约30个训练向量,其中连续的上升值为0.1,产生了0.1的上升,并输入了一个向量,同样的连续上升值产生了3的下降。你在不一致的数据上训练网络。所以它平均了你的那31个矛盾的预测......
我还建立了一个2层的NS。有3个输入和3个中间神经元。输入的是增量值。为了比较,我在所有数据上训练了这个网络一次,第二次我在训练中排除了异常值--即所有在输入中包含过大数值的训练向量,即非常突然地崩溃了3。差异是显而易见的。
好吧,你可以为这个问题争论很久,谁理解他们的理解,或者不理解。谈话的内容是关于数据准备。我明白,没有人愿意在这里讨论这个问题。遗憾的是
如果你想做一个关于如何为NS训练准备数据的讲座,我认为不应该在这个论坛上进行,没有多少人会对这里感兴趣。
好吧,你错了!我认为阅读实践者的经验会很有趣,他们是如何做到的。
你的网络表现得很奇怪--它在趋势部分接收相同的输入数据集,但却给出不同的预测(它在图上显示为一条断线,而它应该是直线)。在这方面,问题是。
1)中间网络层中有多少个神经元?
2)有多少个输入?
3)输入的是什么?
关于对趋势预测的滞后性。这就是它应该工作的方式。你向网络输入了大约30个训练向量,其中连续的上升值为0.1,产生了0.1的上升,并输入了一个向量,同样的连续上升值产生了3的下降。你在不一致的数据上训练网络。所以它平均了你的那31个矛盾的预测......
我还建立了一个2层的NS。有3个输入和3个中间神经元。输入的是增量值。为了比较,我在所有数据上训练了这个网络一次,第二次我在训练中排除了异常值--即所有在输入中包含过大数值的训练向量,即非常突然地崩溃了3。差异是显而易见的。
ds2,以及 所有回应的人,非常感谢你们的关注和明智的建议--这真的很有帮助。问题是,我把训练周期的数量(我相信它叫做Epochs)限制在100次,以加快我的网络的预测速度。当然,这还不够,所以网络没有正常学习。在将历时数增加到1000后,一切都运行良好--滴答到滴答(好吧,几乎如此)。
我有一个两层网络,具有双曲正切形式的非线性,隐藏层的神经元数量为2,突触数量为d*2+2,其中d是NS输入的一个维度。对于图中所示的情况,我有d=2,训练向量的数量是6。训练样本中的向量数量等于突触的数量,所以我看到,网络没有重新训练,也没有尝试平滑预测,这可以更有效地跟踪价格跳动。为了训练,我还输入了一连串的增量值作为输入。我还不熟悉准备输入数据的精细艺术(我指的是你的 "第二次训练时排除尖峰"),但我希望能很快掌握这门艺术。
这里有一个预先感兴趣的结果:
这是一个单层非线性NS的单步预测,每一步都要重新训练,只有一个输入!而训练样本=2个向量,每个都有一个元素。
我被吓到了....
事实证明,奈伦网络和人工智能并不简单,而是非常简单
你的网络表现得很奇怪--它在趋势部分接收相同的输入数据集,但却给出不同的预测(它在图上显示为一条断线,而它应该是直线)。在这方面,问题是。
1)中间网络层中有多少个神经元?
2)有多少个输入?
3)输入的是什么?
关于对趋势预测的滞后性。这就是它应该工作的方式。你向网络输入了大约30个训练向量,其中连续的上升值为0.1,产生了0.1的上升,并输入了一个向量,同样的连续上升值产生了3的下降。你在不一致的数据上训练网络。所以它平均了你的那31个矛盾的预测......
我还建立了一个2层的NS。有3个输入和3个中间神经元。输入的是增量值。为了比较,我在所有数据上训练了这个网络一次,第二次我在训练中排除了异常值--即所有在输入中包含过大数值的训练向量,即非常突然地崩溃了3。差异是显而易见的。
ds2,以及 所有回应的人,非常感谢你们的关注和明智的建议--这真的很有帮助。问题是,我把训练周期的数量(我相信它叫做Epochs)限制在100次,以加快我的网络的预测速度。当然,这还不够,所以网络没有正常学习。在将历时数增加到1000后,一切都运行良好--滴答到滴答(好吧,几乎如此)。
我有一个两层网络,具有双曲正切形式的非线性,隐藏层的神经元数量为2,突触数量为d*2+2,其中d是NS输入的一个维度。对于图中所示的情况,我有d=2,训练向量的数量是6。训练样本中的向量数量等于突触的数量,所以我看到,网络没有重新训练,也没有尝试平滑预测,这可以更有效地跟踪价格跳动。为了训练,我还输入了一连串的增量值作为输入。我离输入数据准备的精细艺术还很远(我指的是你的 "在第二次训练中排除尖峰"),但希望我很快就能学会这个技巧。
为了改善样本,尝试扩大训练序列,比如说,按照这个原则。
有两个相邻的数列值 - x1,x2在它们相加的区间内 x1,2 = (x1+x2)/2
这种方法对于相邻数值高度相关的时间序列 效果很好。
语录流的情况就是如此。
这里有一个预先感兴趣的结果:这是一个单层非线性NS的单步预测,每一步都进行再训练,只有一个输入!而训练样本=2个向量,每个向量有一个元素。
我被吓到了...
我可以请你公布生成训练向量的原始数据文件吗?
文件的格式应该是什么样子的,以便你能读懂它。重点是,我从头开始写自己的NS,并以我觉得舒服的格式使用数据。
Для улучшения выборки попробуйте расширить обучающий ряд, скажем по такому принципу:
有两个相邻的数列值--x1,x2在它们之间加x1,2=(x1+x2)/2
这种方法在时间序列上效果很好,相邻值的相关性很高。
流媒体报价的情况就是如此。
这种情况适用于正相关的系列。价格VR在相邻的样本之间有明显的负相关,所以这种方法不会正确。
还有一件事。如果尊敬的论坛用户能够发表有根据的论据,支持在其他条件相同的情况下,2层NS比单层NS有更大的预测能力,那就更好了。
作为一种选择。下面你可以找到一个带有测试矢量的压缩文件,如图所示,你可以根据自己的需要来剪裁它。
我被吓到了...
事实证明,尼禄网络和人工智能并不只是,而是非常简单!
我还没有尝试实际应用NS(尽管在最后一个想法的背景下,我似乎被带到了那里),但从人类的角度来看,测试向量由非常简单的依赖关系组成(大约两三个参数),应该非常容易被片断地逼近。 我怀疑这正是NS的工作。快速重排可能是NS简单化的结果,也就是说,在这种情况下,短时记忆是一种福气。
总的来说,Candid,我同意你的观点,但我想深入挖掘......例如,NS(隐藏层)的复杂性有多大的合理性。
而且,实际上,我是个疯子!"。重点是,如果你以某种形式表示NS的非线性,你可以得到权重的精确分析解。这反过来意味着,它将有可能拒绝采用误差反向传播的方法进行网络训练,并在一次行动中获得尽可能准确的结果,而不需要任何有1000个纪元的训练!!。
P.S.我忘了提醒你,我在每个神经元中使用了一个具有恒定兴奋水平的突触。
补遗。
带着它,带着它,带着它;-)
这是一个单层非线性NS的尺度的 "精细 "分析解决方案。
这让我微笑。
但整个计算过程需要一毫秒。作为一个 "神经科学家 "的新手,请向我解释这个问题。据我所知,有关的网络是一个多层感知器。
选择这种类型的网络的原因是什么?为什么不是霍普菲尔德或科霍宁或其他的东西?