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

现在,关于这一点,我有一些问题:
我也听说过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,只是看起来在图片中首先显示的那个.这个伽玛有什么不同呢?
language-agnostic artificial-intelligence reinforcement-learning genetic-algorithm
是否有充分了解何时使用辍学与简单获取更多数据的指导原则?我之前已经理解,如果有足够的数据,就不会想要使用dropout.然而,我最近有一个模型(4层LSTM处理音频输入),无论我提供多少数据,都会凭经验收敛到一定的损失 - 然后在我添加丢失时显着改善.
这种现象很好理解吗?那么,即使有更多(可能是无限的)数据可用,总是会使用dropout吗?
后续行动:如果是这样,我在RL论文中没有多少提及辍学.我认为这是因为有无限的可生成数据.这里是否有其他细微差别可以考虑探讨的状态空间的分数,或者可用的训练数据的异质性等?
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
我找到了keras-rl/examples/cem_cartpole.py示例,我想了解,但没有找到文档。
线有什么作用
memory = EpisodeParameterMemory(limit=1000, window_length=1)
Run Code Online (Sandbox Code Playgroud)
做?什么是limit和 什么是window_length?增加其中一个/两个参数会产生什么影响?
如果强化学习(RL)算法在现实世界中工作之前需要在模拟环境中进行大量迭代,为什么我们不使用相同的模拟环境来生成标记数据,然后使用监督学习方法RL?
\n问题
我的目标是应用强化学习来预测物体在3D环境下处于已知力下的下一个状态(该方法将简化为监督学习,离线学习)。
我的方法的细节
当前状态是代表物体在环境中的位置(3维)和物体的速度(3维)的向量。起始位置以及起始速度在环境中被随机初始化。
动作是代表从状态t到状态t + 1的运动的向量。
奖励只是预测的下一个状态与实际的下一个状态(我已经有了目标位置)之间的欧几里得距离。
到目前为止,我做了什么?
我一直在寻找许多方法来做到这一点。深度确定性策略梯度适用于连续的操作空间,但就我而言,我也具有连续的状态空间。如果您对此方法感兴趣,请参考DeepMind上的原始文章:http: //proceedings.mlr.press/v32/silver14.pdf
该演员,评论家方法应该可行,但它通常是(或总是)应用于离散和低维状态空间。
Q-Learning和Deep-Q Learning无法处理高维状态空间,因此即使离散化状态空间,我的配置也无法使用。
逆向强化学习(模仿学习的一个实例,具有行为克隆和直接策略学习)可以在发现奖励功能比查找策略功能复杂时近似奖励功能。有趣的方法,但是我还没有看到任何实现,对于我来说,奖励功能非常简单。有没有可以解决我的配置问题的方法?
python artificial-intelligence machine-learning reinforcement-learning
StackOverflow 社区您好!
我有一个关于强化学习中的演员评论家模型的问题。
在听伯克利大学的策略梯度方法课程时,讲座中提到,在 actor-critic 算法中,我们都使用一些策略参数来优化我们的策略,并使用一些价值函数参数来优化我们的价值函数,我们在两种优化中都使用相同的参数某些算法(例如A2C/A3C)中的问题(即策略参数=价值函数参数)
我无法理解这是如何工作的。我想我们应该分别优化它们。这个共享参数解决方案对我们有什么帮助?
提前致谢 :)
我目前正在做一个项目,需要 tensorflowjs 来创建一个从强化学习算法中学习的神经网络。这是可能的吗?
javascript machine-learning reinforcement-learning neural-network tensorflowjs
当我为各种问题实施代理时……我已经看到我的演员损失正在按预期减少。但是即使学到的策略非常好,我的评论家损失也一直在增加。这发生在 DDPG 、 PPO 等。
为什么我的评论家损失在增加的任何想法。
我尝试使用超参数,它实际上使我的策略变得更糟。
我试图用 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) gradient ×1
javascript ×1
keras-rl ×1
lstm ×1
python ×1
r ×1
symbols ×1
tensorflow ×1
tensorflowjs ×1