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

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

有一个计数器,保存一个介于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

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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