深度强化学习参数和训练时间用于简单游戏

我想了解深度强化学习算法的工作原理,以及在给定环境中训练所需的时间。我想到了一个非常简单的环境示例:

有一个计数器,保存一个介于0到100之间的整数。其目标是计数到100。

有一个参数direction,其值可以是+1或-1。它简单地显示移动的方向。

我们的神经网络将这个方向作为输入,并输出两种可能的动作。

  1. 改变方向
  2. 不改变方向

第一种动作将简单地翻转方向(+1 => -1 或 -1 => +1)。第二种动作将保持方向不变。

我使用Python作为后端,JavaScript作为前端。看起来需要太多的时间,而且结果仍然相当随机。我使用了4层感知器,训练率为0.001,记忆学习批次为100。代码来自Udemy的人工智能教程,并且运行正常。

我的问题是,完成和每个状态的奖励应该是什么?以及训练这样一个简单示例需要多长时间?


回答:

在强化学习中,底层的奖励函数定义了游戏。不同的奖励函数会导致不同的游戏和不同的最优策略。

在你的情况下,有几种不同的可能性:

  1. 到达100时给予+1,且仅此而已。
  2. 到达100时给予+1,每个时间步未达到100时给予-0.001。
  3. 向上移动时给予+1,向下移动时给予-1。

第三种情况过于简单,不涉及长期规划。在前两种情况下,智能体只有在偶然达到100并发现这是好的之后才会开始学习。但在第一种情况下,一旦它学会向上移动,到达那里需要多长时间并不重要。第二种情况是最有趣的,它需要尽快到达那里。

没有关于使用哪种奖励的正确答案,但最终你选择的奖励定义了你玩的游戏。

注意:对于这个问题使用4层感知器是大材小用。一层就足够了(这个问题非常简单)。你试过OpenAI的gym中的强化学习环境吗?强烈推荐,他们有所有“经典”的强化学习问题。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注