相关疑难解决方法(0)

Q学习代理的学习率

问题学习率如何影响收敛速度和收敛本身.如果学习率是恒定的,Q函数会收敛到最优开启还是学习率必然会衰减以保证收敛?

machine-learning reinforcement-learning q-learning

5
推荐指数
1
解决办法
5184
查看次数

Q-Learning 值太高

我最近尝试在 Golang 中实现基本的 Q-Learning 算法。请注意,我对强化学习和人工智能总体来说是新手,所以这个错误很可能是我的。

\n\n

以下是我如何在 m,n,k 游戏环境中实现该解决方案:\n在每个给定时间t,代理持有最后一个状态动作(s, a)及其获得的奖励;代理a'根据 Epsilon 贪婪策略选择移动并计算奖励r,然后继续更新Q(s, a)时间的值t-1

\n\n
func (agent *RLAgent) learn(reward float64) {\n    var mState = marshallState(agent.prevState, agent.id)\n    var oldVal = agent.values[mState]\n\n    agent.values[mState] = oldVal + (agent.LearningRate *\n        (agent.prevScore + (agent.DiscountFactor * reward) - oldVal))\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

笔记:

\n\n
    \n
  • agent.prevState在采取行动之后和环境响应之前(即在代理移动之后和其他玩家移动之前)保持先前的状态我用它来代替状态动作元组,但我不太确定是否这是正确的做法
  • \n
  • agent.prevScore保留对先前状态动作的奖励
  • \n
  • 参数reward表示当前步骤的状态动作的奖励 ( Qmax)
  • \n
\n\n

由于状态动作值溢出,代理无法达到 100K 集。\n我正在使用 golang 的agent.LearningRate = 0.2(标准 …

floating-point go reinforcement-learning q-learning

5
推荐指数
1
解决办法
3401
查看次数