gpt4 book ai didi

c++ - 神经网络中的 Q 学习不是 'learning'

转载 作者:搜寻专家 更新时间:2023-10-31 02:14:16 25 4
gpt4 key购买 nike

我用 C++ 制作了一个简单的 Tron 游戏和一个带有一个隐藏层的 MLP。我已经在这个神经网络中实现了 Q-learning,但是,它并没有导致代理随着时间的推移赢得更多的比赛(即使在 100 万场比赛之后)。我将尝试在文本中解释我所做的,希望有人能发现可能导致此问题的错误。

在每个州都有四种可能的移动方式(北、东、南、西),奖励在游戏结束时显示(-1 输,0 平,1 赢)。

我初始化了 4 个 MLP,每个可能的 Action 一个,有 100 个输入节点(整个游戏网格 10x10),如果玩家本身在那里,每个点都为 1,如果点为空则为 0,如果对手为 -1已访问此点。然后有 50 个隐藏节点和 1 个输出节点(我也尝试过一个具有 4 个输出节点的网络,但这也无济于事)。权重在-0.5和0.5之间随机选择

在每个时期,我都会用随机放置在网格中的 2 个代理来初始化游戏环境。然后我在 while 循环中运行游戏,直到游戏结束,然后重置游戏环境。在这个 while 循环中,我执行以下操作。

  1. 我向 MLP 提供当前状态并确定最高Q 值并有 90% 的机会去那里(10% 随机移动)。 Q 值是使用 sigmoid 或 RELU 激活函数确定的(我都试过了)。
  2. 然后我在新状态下计算 4 个 Q 值,并用它来训练我第一步的网络,目标如下:Target = reward + gamma*(maxQnextState)。然后error = Target - qValue 在之前的状态下计算。
  3. 我使用带有 S 型函数导数的反向传播以及高学习率和动量项来向后传播误差。

似乎我的 qValues 要么非常低(数量级为 0.0001)要么非常接近 1 (0.999)。如果我查看每 10.000 场比赛的错误项,它似乎并没有减少。

我从一个可以学习 XOR 函数的 MLP 开始,现在将其用于 Q-learning。也许 XOR 案例中的某些基本假设不同并导致 Q-learning 出现问题?

或者可能是稀疏输入(只是 0、1 或 -1 的 100 倍)导致无法学习?

非常感谢您的建议!

最佳答案

有几个因素使得 MLP 与 Q 学习难以结合,特别是对于该领域的新手。 Rich Sutton(强化学习先锋之一)在他的 web site 的常见问题解答中有一个问题与你的问题有关。所以我建议您阅读该文档。

众所周知,Q 学习 + 前馈神经网络作为 Q 函数逼近器即使在简单问题中也会失败 [Boyan & Moore,1995]。

一种可能的解释是 [Barreto & Anderson, 2008] 中描述的称为干扰的现象:

Interference happens when the update of one state–action pair changes the Q-values of other pairs, possibly in the wrong direction.

Interference is naturally associated with generalization, and also happens in conventional supervised learning. Nevertheless, in the reinforcement learning paradigm its effects tend to be much more harmful. The reason for this is twofold. First, the combination of interference and bootstrapping can easily become unstable, since the updates are no longer strictly local. The convergence proofs for the algorithms derived from (4) and (5) are based on the fact that these operators are contraction mappings, that is, their successive application results in a sequence converging to a fixed point which is the solution for the Bellman equation [14,36]. When using approximators, however, this asymptotic convergence is lost, [...]

Another source of instability is a consequence of the fact that in on-line reinforcement learning the distribution of the incoming data depends on the current policy. Depending on the dynamics of the system, the agent can remain for some time in a region of the state space which is not representative of the entire domain. In this situation, the learning algorithm may allocate excessive resources of the function approximator to represent that region, possibly “forgetting” the previous stored information.

总而言之,从 MLP 开始逼近 Q 函数并不是一个好主意。

引用资料

Boyan, J. A. & Moore, A. W. (1995) 强化学习中的泛化:安全地逼近值(value)函数。 NIPS-7。加利福尼亚州圣马特奥市:Morgan Kaufmann。

André da Motta Salles Barreto & Charles W. Anderson (2008) Restricted gradient-descent algorithm for value-function approximation in reinforcement learning, Artificial Intelligence 172 (2008) 454–482

关于c++ - 神经网络中的 Q 学习不是 'learning',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40129386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com