标签: reinforcement-learning

改善Q-Learning

我目前正在使用Q-Learning尝试教一个机器人如何在一个充满墙壁/障碍物的房间里移动.它必须从房间的任何地方开始并进入目标状态(例如,这可能是带有门的瓷砖).目前,当它想要移动到另一个磁贴时,它将转到该磁贴,但我想在将来我可能会添加一个随机的机会去另一个磁贴,而不是那个.它只能向上,向下,向左和向右移动.达到目标状态会产生+100,其余的操作将产生0.

我正在使用此处找到的算法,可以在下面的图像中看到.

替代文字 替代文字

现在,关于这一点,我有一些问题:

  1. 当使用Q-Learning时,有点像神经网络,我必须区分学习阶段和使用阶段吗?我的意思是,他们在第一张照片上显示的内容似乎是学习的,而在第二张照片中显示的是使用一张.
  2. 我在某处读到,需要无数步才能达到最佳Q值表.真的吗?我说这不是真的,但我必须在这里遗漏一些东西.
  3. 我也听说过TD(时间差异),它似乎用下面的表达式表示:

    Q(a, s) = Q(a, s) * alpha * [R(a, s) + gamma * Max { Q(a', s' } - Q(a, s)]
    
    Run Code Online (Sandbox Code Playgroud)

    对于alpha = 1,只是看起来在图片中首先显示的那个.这个伽玛有什么不同呢?

  4. 如果我尝试一个非常大的房间(例如300x200像素),我会遇到一些并发症.因为它基本上是随机运行的,如果房间非常大,那么从第一个状态到目标状态随机需要花费很多时间.我可以用什么方法加快速度?我想也许有一张桌子上充满了真实和愚蠢,关于那段已经处于该状态的情节.如果是,我会丢弃它,如果不是,我会去那里.如果我已经在所有这些州,那么我会去随机的.这样,它就像我现在正在做的那样,知道我现在做的事情要少一些.
  5. 我想尝试除Q-Values的查找表之外的其他内容,所以我正在考虑使用具有反向传播的神经网络.我可能会尝试为每个动作(向上,向下,向左,向右)设置神经网络,因为它似乎是产生最佳结果的.有没有其他方法(除了SVM,这似乎太难以实现自己),我可以使用和实现,这给我很好的Q值函数近似?
  6. 您是否认为遗传算法在这种情况下会产生良好的结果,使用Q值矩阵作为它的基础?我怎么能测试我的健身功能?它给我的印象是GA通常用于更随机/复杂的事物.如果我们仔细观察,我们会注意到Q值遵循一个明确的趋势 - 在目标附近有较高的Q值,而在距离它们较远的地方有较低的Q值.试图通过GA达成这个结论可能会花费太长时间?

language-agnostic artificial-intelligence reinforcement-learning genetic-algorithm

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

即使访问无限数据,dropout也可以改进模型吗?

是否有充分了解何时使用辍学与简单获取更多数据的指导原则?我之前已经理解,如果有足够的数据,就不会想要使用dropout.然而,我最近有一个模型(4层LSTM处理音频输入),无论我提供多少数据,都会凭经验收敛到一定的损失 - 然后在我添加丢失时显着改善.

这种现象很好理解吗?那么,即使有更多(可能是无限的)数据可用,总是会使用dropout吗?

后续行动:如果是这样,我在RL论文中没有多少提及辍学.我认为这是因为有无限的可生成数据.这里是否有其他细微差别可以考虑探讨的状态空间的分数,或者可用的训练数据的异质性等?

reinforcement-learning deep-learning lstm tensorflow

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

为什么 RMSProp 被认为是“泄漏”?

decay_rate = 0.99 # decay factor for RMSProp leaky sum of grad^2
Run Code Online (Sandbox Code Playgroud)

我对上面的评论措辞感到困惑,他们谈论了 RMSProp 优化器的“泄漏”平方和。到目前为止,我已经发现这一行是从 Andrej Karpathy 的深度强化学习:Pong from Pixels中复制粘贴的,而 RMSProp 是Hinton 在他的 Coursera 课程之一中提出的未发布的优化器。查看链接 2中 RMSProp 的数学计算,很难弄清楚其中任何一个是如何“泄漏”的。

有人知道为什么 RMSProp 是这样描述的吗?

gradient artificial-intelligence machine-learning reinforcement-learning

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

keras-rl 的 EpisodeParameterMemory 是做什么的?

我找到了keras-rl/examples/cem_cartpole.py示例,我想了解,但没有找到文档。

线有什么作用

memory = EpisodeParameterMemory(limit=1000, window_length=1)
Run Code Online (Sandbox Code Playgroud)

做?什么是limit和 什么是window_length?增加其中一个/两个参数会产生什么影响?

reinforcement-learning keras-rl

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

强化学习还是监督学习?

如果强化学习(RL)算法在现实世界中工作之前需要在模拟环境中进行大量迭代,为什么我们不使用相同的模拟环境来生成标记数据,然后使用监督学习方法RL?

\n

reinforcement-learning supervised-learning

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

增强学习以获取连续的状态和动作空间

问题

我的目标是应用强化学习来预测物体在3D环境下处于已知力下的下一个状态(该方法将简化为监督学习,离线学习)。

我的方法的细节

当前状态是代表物体在环境中的位置(3维)和物体的速度(3维)的向量。起始位置以及起始速度在环境中被随机初始化。

动作是代表从状态t到状态t + 1的运动的向量。

奖励只是预测的下一个状态与实际的下一个状态(我已经有了目标位置)之间的欧几里得距离。

到目前为止,我做了什么?

我一直在寻找许多方法来做到这一点。深度确定性策略梯度适用于连续的操作空间,但就我而言,我也具有连续的状态空间。如果您对此方法感兴趣,请参考DeepMind上的原始文章:http//proceedings.mlr.press/v32/silver14.pdf

演员,评论家方法应该可行,但它通常是(或总是)应用于离散和低维状态空间。

Q-LearningDeep-Q Learning无法处理高维状态空间,因此即使离散化状态空间,我的配置也无法使用。

逆向强化学习(模仿学习的一个实例,具有行为克隆直接策略学习)可以在发现奖励功能比查找策略功能复杂时近似奖励功能。有趣的方法,但是我还没有看到任何实现,对于我来说,奖励功能非常简单。有没有可以解决我的配置问题的方法?

python artificial-intelligence machine-learning reinforcement-learning

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

演员-评论家模型中的共享参数如何工作?

StackOverflow 社区您好!

我有一个关于强化学习中的演员评论家模型的问题。

在听伯克利大学的策略梯度方法课程时,讲座中提到,在 actor-critic 算法中,我们都使用一些策略参数来优化我们的策略,并使用一些价值函数参数来优化我们的价值函数,我们在两种优化中都使用相同的参数某些算法(例如A2C/A3C)中的问题(即策略参数=价值函数参数)

我无法理解这是如何工作的。我想我们应该分别优化它们。这个共享参数解决方案对我们有什么帮助?

提前致谢 :)

reinforcement-learning

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

我可以在 tensorflowjs 中使用强化学习吗?

我目前正在做一个项目,需要 tensorflowjs 来创建一个从强化学习算法中学习的神经网络。这是可能的吗?

javascript machine-learning reinforcement-learning neural-network tensorflowjs

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

RL 代理的批评损失

当我为各种问题实施代理时……我已经看到我的演员损失正在按预期减少。但是即使学到的策略非常好,我的评论家损失也一直在增加。这发生在 DDPG 、 PPO 等。

为什么我的评论家损失在增加的任何想法。

我尝试使用超参数,它实际上使我的策略变得更糟。

artificial-intelligence reinforcement-learning

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

R:带方向箭头的矩阵

我试图用 R 重现 Sutton 和 Barto(2018 年)中描述的算法,但我无法像作者在第 65 页上描述的那样生成带有箭头的矩阵:

在此处输入图片说明

为此,我尝试使用包“字段”,但没有取得多大成功。

在 Python 中,Shangtong Zhang 和 Kenta Shimada 提出的解决方案依赖于使用箭头符号: ACTIONS_FIGS=[ '?', '?', '?', '?'] 但这对 R 来说效果不佳......

编辑:我对初始动作进行编码,动作以数字方式更新如下:

library(data.table)
action_random = data.table(cell=c(1:25))
action_random$action_up = action_random$action_right = action_random$action_down =
action_random$action_left = rep(1,25)
action_random$proba = rep(1/4,25)
action_random
Run Code Online (Sandbox Code Playgroud)

我还能够调整此处发布的代码,以绘制带有简单箭头的简单网格:

arrows = matrix(c("\U2190","\U2191","\U2192","\U2193"),nrow=2,ncol=2)
grid_arrows = expand.grid(x=1:ncol(arrows),y=1:nrow(arrows))
grid_arrows$val = arrows[as.matrix(grid_arrows[c('y','x')])]

library(ggplot2)

ggplot(grid_arrows, aes(x=x, y=y, label=val)) + 
  geom_tile(fill='transparent', colour = 'black') + 
  geom_text(size = 14) + 
  scale_y_reverse() +
  theme_classic() + 
  theme(axis.text  = element_blank(),
        panel.grid = …
Run Code Online (Sandbox Code Playgroud)

symbols r reinforcement-learning

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