q-learning相关内容

在 Keras 中仅训练网络的一个输出

我在 Keras 中有一个具有许多输出的网络,但是,我的训练数据一次只提供一个输出的信息. 目前我的训练方法是对有问题的输入进行预测,更改我正在训练的特定输出的值,然后进行单批更新.如果我是对的,这与将所有输出的损失设置为零相同,除了我要训练的输出. 有没有更好的办法?我已经尝试过班级权重,我将所有权重设置为零,但我正在训练的输出除外,但它没有给我预期的结果? 我正在使用 The ..

OpenAI健身房breakout-ram-v4无法学习

我正在使用 Q learning 并且程序应该能够在一些尝试后玩游戏,但即使 epsilon 值为 0.1,它也无法学习. 我尝试将批量大小更改为内存大小.如果玩家死亡,我已更改代码以提供 -1 奖励. 导入健身房将 numpy 导入为 np随机导入将张量流导入为 tf将 numpy 导入为 np从时间导入时间进口键盘导入系统导入时间env =gym.make("Breakout-ram- ..

运行 Tensorflow 时 GPU 利用率低

我一直在使用 Tensorflow 和 OpenAI 健身房进行深度强化学习.我的问题是 GPU 利用率低.谷歌搜索这个问题,我明白在训练小型网络(例如训练 mnist)时期望大量 GPU 利用率是错误的.但是我的神经网络并不小,我想.该架构类似于原始 deepmind 论文中给出的(或多或少).我的网络架构总结如下 卷积层 1(filters=32,kernel_size=8x8,stri ..

Q-learning 和 SARSA 与贪婪选择等价吗?

Q-learning 和 SARSA 的区别在于 Q-learning 比较当前状态和可能的最佳下一个状态,而 SARSA 比较当前状态和实际下一个状态. 如果使用贪心选择策略,即 100% 的时间选择具有最高动作值的动作,那么 SARSA 和 Q-learning 是否相同? 解决方案 好吧,实际上并非如此.SARSA 和 Q-learning 之间的一个主要区别在于,SARSA ..
发布时间:2021-07-07 18:56:14 其他开发

奖励功能,用于学习使用DQN玩“曲线发烧"游戏

我制作了一个简单的Curve Fever版本,也称为"Achtung Die Kurve".我希望机器找出最佳玩法.我从一些使用Google Tensorflow制作的Atari游戏示例中复制了现有的DQN并对其进行了一些修改. 我想找出合适的奖励功能.目前,我使用以下奖励设置: 不会崩溃的每一帧为0.1 -500每次崩溃 这是正确的方法吗?我需要调整值吗?还是我需要一种完全不 ..

DQN在奖励始终为-1的环境中如何工作

鉴于OpenAI Gym环境 MountainCar-v0 总是返回-1.0作为奖励(即使达到目标),我不知道具有体验重播功能的DQN如何收敛,但我知道这样做,因为我有 据我了解,最终需要找到一个“稀疏奖励".但据我从openAI Gym看到的代码,除-1之外没有其他任何奖励.感觉更像是一个“无奖励"的环境. 什么几乎可以回答我的问题,但实际上却没有:当任务快速完成时,剧集的回报(奖励总和) ..

Q学习和SARSA有什么区别?

尽管我知道 SARSA 处于策略状态,而 Q学习是不合政策的,在查看它们的公式时(对我而言)很难看到这两种算法之间的任何区别. 根据这本书《强化学习:简介》 (由Sutton和Barto撰写).在SARSA算法中,给定一个策略,相应的动作值函数Q(在状态s和动作a,在时间步长t),即Q(s t ,a t ),可以进行如下更新 Q(s t ,a t )= Q(s t ,a t )+α * ..

在强化学习中设定与状态有关的动作

人们如何处理不同州的法律行为不同的问题?在我的案例中,我总共有大约10个诉讼,法律诉讼并不重叠,这意味着在某些州中,相同的3个州始终是合法的,而在其他类型的州中这些州从不合法. 我也想知道,如果法律行动重叠,解决方案是否会有所不同. 对于Q学习(我的网络为我提供状态/动作对的值),我在想,也许我在构建目标值时可能要谨慎选择哪个Q值. (即,我没有选择最高限额,而是在法律诉讼中选择了最高 ..

Q学习代理的学习率

学习率如何影响收敛率和收敛本身的问题. 如果学习速率恒定,那么Q函数会收敛到最佳导通,还是学习速率一定会衰减以保证收敛? 解决方案 学习率说明了朝解决方案迈进的步伐. 它不应太大,因为它可能围绕最小值不断振荡,并且不应太小,否则将花费很多时间和迭代次数以达到最小值. 之所以建议在学习率上使用衰减,是因为最初,当我们处于解决方案空间中的完全随机点时,我们需要朝着解决方案大步前进, ..

Epsilon和学习率在epsilon贪婪q学习中的衰减

我知道epsilon标志着勘探与开发之间的权衡.刚开始时,您希望epsilon高,这样您就可以大跃进并学到东西.当您了解未来的回报时,ε会衰减,以便您可以利用已找到的更高的Q值. 但是,在随机环境中,我们的学习率是否也会随着时间而衰减?我见过的SO帖子仅讨论epsilon衰减. 我们如何设置epsilon和alpha以使值收敛? 解决方案 一开始,您希望epsilon很高, ..

Q学习和价值迭代有什么区别?

Q学习与强化学习中的值迭代有何不同? 我知道Q学习是无模型的,训练样本是过渡(s, a, s', r).但是,由于我们知道Q学习中的过渡和每个过渡的收益,因此它与基于模型的学习不同,在模型学习中,我们了解状态和动作对的收益以及状态从每个行为的过渡(是它是随机的还是确定性的)?我不明白其中的区别. 解决方案 您是100%正确的,如果我们知道转换概率和Q学习中每个转换的奖励,那么我们将不 ..

Q值无限制地增加,是在Q-Learning中重复相同动作后重复奖励的结果

我正在通过一个简单的应用程序开发一个简单的Q-Learning实现,但是有些事情一直困扰着我. 让我们考虑Q-Learning的标准制定方式 Q(S, A) = Q(S, A) + alpha * [R + MaxQ(S', A') - Q(S, A)] 让我们假设该状态K有两个可能的动作,均以A和A'授予我们的代理商奖励R和R'. 如果我们遵循几乎完全贪婪的方法(假设我们 ..

如何将强化学习应用于连续动作空间?

我正试图找一个特工来学习在强化学习设置中最好地执行某些任务所必需的鼠标移动(即,奖励信号是唯一的学习反馈). 我希望使用Q学习技术,但是当我发现我可以强制所有鼠标移动一定程度,并且只能在一定数量的不同方向上移动,但是使动作离散的任何合理方法都会产生巨大的动作空间.由于标准的Q学习需要代理评估所有可能采取的措施,因此这种近似值在任何实际意义上都无法解决问题. 解决方案 解决此问题的常用 ..

如何在不重新计算每次迭代后返回控制的强化学习程序中使用Tensorflow Optimizer而不重新计算激活量的情况下?

编辑(1/3/16):相应的github问题 我正在使用Tensorflow(Python接口)来实现q-learning代理,该代理具有使用stochastic gradient descent训练的函数逼近功能. 在实验的每次迭代中,都会调用代理中的阶跃函数,该阶跃函数根据新的奖励和激活来更新逼近器的参数,然后选择要执行的新动作. 这是问题所在(使用强化学习术语): 代 ..

在Keras中仅训练网络的一个输出

我在Keras有一个网络,其中有很多输出,但是,我的训练数据一次只能提供单个输出的信息. 目前,我的训练方法是对有问题的输入进行预测,更改我正在训练的特定输出的值,然后进行单批更新.如果我是对的,那么这与将所有输出的损失设置为零(除了我要训练的输出)相同. 有更好的方法吗?我尝试过在所有课程中都设置权重为零的类权重,但我正在训练的输出却没有给我期望的结果? 我正在使用Theano ..

Q-Learning值太高

最近我尝试在Golang中实现一个基本的Q-Learning算法。请注意,我是一般的钢筋学习和人工智能的新手,所以错误可能是我的。 以下是我如何实现m,n, K游戏环境: 在每个给定时间 t ,代理保存最后的状态动作(s,a)和获得的奖励;该代理根据Epsilon-greedy策略选择一个移动 a'并计算奖励 r ,然后继续更新时间 t-1 $ b的值 Q(s,a) $ b FUNC ..
发布时间:2017-12-21 21:46:22 其他开发

C ++问题将数组存储在哈希表中

我正在通过使用Q学习算法来帮助代理人获得奖励来开展关于实现C ++程序的研究。 我正在尝试使用Hashtable存储我的州和行动。 我不熟悉C ++编程... 我想要做的是像使用哈希表存储数组。 但我找不到正确的方法存储它...哈希表表示它是数组的错误类型。 using namespace std; int state [2] = {0,0}; unordered_ ..
发布时间:2017-05-24 23:08:35 C/C++开发

泛化Q学习与连续*动*的工作空间

我试图让代理去学习必要的鼠标运动的加强,以最好的执行某些任务,学习设置(即奖励信号是学习的唯一的反馈)。 我希望用Q学习技术,但同时我发现的办法这种方法扩展到连续状态空间时,我似乎无法弄清楚如何适应的问题有连续动作空间 我可以强迫所有的鼠标动作得到一定幅度的,并只在一定数量不同的方向,但使得行动离散会产生巨大的作用空间中的任何合理的方式。由于标准Q学习要求代理评估的所有的可能行动,这种近似不会 ..