文章 "神经网络变得轻松(第四十五部分):训练状态探索技能"

 

新文章 神经网络变得轻松(第四十五部分):训练状态探索技能已发布:

在没有明确奖励函数的情况下,实用的训练技能就是分层强化学习的主要挑战之一。 以前,我们已领略了解决此问题的两种算法。 但环境研究的完整性问题仍然悬而未决。 本文演示了一种不同的技能训练方式,其可取决于系统的当前状态直接使用。

最初的结果比我们预期的要差。 包含的正面结果则是,测试样本中所用的技能分布相当均匀。 这就是最终我们的测试正面结果所在。 在对自动编码器和代理者进行了多次迭代训练后,我们仍然无法获得能够在训练集上产生盈利的模型。 显然,问题在于自动编码器无法足够准确地预测状态。 结果就是,余额曲线与预期结果相去甚远。

为了验证我们的假设,创建了一个替代的代理者训练 EA “EDL\StudyActor2.mq5”。 替代选项与之前研究的选项之间的唯一区别就是生成奖励的算法。 我们依旧用该循环来预测帐户状态的变化。 这一次,我们取相对余额变化指标作为奖励。

      ActorResult = vector<float>::Zeros(NActions);
      for(action = 0; action < NActions; action++)
        {
         reward = GetNewState(Buffer[tr].States[i].account, action, prof_1l);
         ActorResult[action] = reward[0]/PrevBalance-1.0f;
        }

贯穿测试区间,使用修改后的奖励函数进行训练的代理者显示出相当平缓的盈利增长能力。 

基于测试样本的余额曲线图
测试结果

作者:Dmitriy Gizlyk

 

如何在不使用 OpenCL 的 情况下运行测试?

因为处理器支持 OpenCL,但显卡不支持,测试和优化都无法启动....。

 
Oleg Pavlenko 使用 OpenCL 的 情况下运行测试?

因为处理器支持 OpenCL,但显卡不支持,测试和优化都无法运行....。

日安,奥列格。

这种实现方式只适用于 OpenCL。要禁用它,你需要重新设计整个网络算法。但如果处理器支持 OpenCL 并安装了相应的驱动程序,就可以在处理器上运行。

 
Dmitriy Gizlyk #:

下午好 奥列格

这种实现方式仅适用于 OpenCL。要禁用它,需要重新设计整个网络算法。但如果处理器支持 OpenCL 并安装了相应的驱动程序,就可以在处理器上运行。

这就是我遇到的错误(见截图)。从截图中可以看到,显卡不支持 OpenCL,但处理器没问题。我怎样才能绕过这个问题,在测试器或优化器中运行?您有什么建议?


 
Oleg Pavlenko #:

这就是我遇到的错误(见截图)。截图显示显卡不支持 OpenCL,但处理器正常。我怎样才能绕过这个问题,在测试器或优化器中运行?您有什么建议?


问题在于您运行的是 "tester.ex5",它会检查训练模型的质量,而您还没有训练模型。首先,您需要运行Research.mq5 来创建示例数据库。然后运行 StudyModel.mq5,训练自动编码器。在 StudyActor.mq5 或 StudyActor2.mq5 中训练演员(奖励函数不同)。只有这样,tester.ex5 才能正常工作。注意,在后者的参数中需要指定演员模型 Act 或 Act2。这取决于用于研究 Actor 的 Expert Advisor。

 
Oleg Pavlenko_ _

这就是我遇到的错误(见截图)。截图显示显卡不支持 OpenCL,但处理器一切正常。我怎样才能绕过这个问题,在测试器或优化器中运行?您有什么建议?


你运气不好,伙计。我的 i5-12400 也遇到了同样的问题。

显然,英特尔第 12 代和第 13 代处理器不支持 fp64 计算。

英特尔秘密地将 fp64 排除在这两代处理器之外,但第 14 代处理器又会支持 fp64。

 
Dmitriy Gizlyk #:

问题在于您运行的是 "tester.ex5",它会检查训练有素模型的质量,而您还没有这些模型。首先,你需要运行Research.mq5 来创建示例数据库。然后运行 StudyModel.mq5,训练自动编码器。在 StudyActor.mq5 或 StudyActor2.mq5 中训练演员(奖励函数不同)。只有这样,tester.ex5 才能正常工作。注意,在后者的参数中需要指定演员模型 Act 或 Act2。这取决于用于研究 Actor 的 Expert Advisor。

开始优化研究。

结果,它在日志中写入了以下内容:

我又出错了吗?

 
Oleg Pavlenko #:

开始优化研究。

结果,日志中这样写道

我是不是又做错了什么?

测试代理日志中有任何信息吗?在初始化中断的某些阶段,EA 会显示信息。

 
sy4rul #:

你运气不好,伙计。我的 i5-12400 也遇到了同样的问题

显然,某些英特尔第 12 代和第 13 代处理器不支持 fp64 计算。

英特尔秘密地将 fp64 排除在这两代处理器之外,但第 14 代处理器又会支持 fp64。

此版本不使用 fp64。只使用 fp32。我在 Iris Xe i7-1165 上进行了测试


 
Dmitriy Gizlyk #:

测试代理日志中有任何信息吗?在初始化中断的某些阶段,EA 会显示信息。

我清除了所有测试代理日志,并在欧元兑美元 H1 上 运行了2023 年前 4 个月的研究 优化。

我在真实点数上运行了它:

结果:只有 4 个样本,2 个在正值,2 个在负值:

也许我做错了什么,优化的参数不对,或者我的终端出了问题?不清楚...我正试图重复您在文章中提到的结果...

错误从一开始就出现了。

优化的设置和结果以及代理和测试人员的日志都附在 Research.zip 压缩包中。

附加的文件:
Research.zip  36 kb
 
档案 研究.zip
附加的文件:
Research.zip  36 kb
该网站使用cookies。了解有关我们Cookies政策的更多信息。