QLearning中的Alpha和Gamma参数

dev*_*ium 6 language-agnostic artificial-intelligence reinforcement-learning

算法与伽玛值大或小的差异有什么不同?在我的视觉中,只要它既不是0或1,它应该完全相同.另一方面,无论我选择什么样的伽玛,看起来Qvalues都非常快地接近于零(我在这里的值大约是10 ^ -300,只是在快速测试中).通常人们如何绘制Qvalues(我正在为这个问题绘制一个(x,y,最佳QValue)?我试图用对数来解决这个问题,但即便如此,感觉有点尴尬.

另外,我不知道Q学习更新功能中有和alpha参数背后的原因是什么.它基本上设置了我们要对Q值函数进行更新的幅度.我认为它通常会随着时间的推移而减少.让它随着时间的推移减少有什么兴趣?一开始的更新值应该比以后的1000集更重要吗?

此外,我认为每次代理不想做贪婪行动时探索状态空间的好主意是探索任何仍然具有零QValue的状态(这意味着,至少在大多数时候,一个前所未有的国家),但我没有看到任何文献中提到的那个.这有什么缺点吗?我知道这不能与(至少一些)泛化函数一起使用.

其他想法是保留一个访问状态/操作表,并尝试执行在该状态之前尝试次数较少的操作.当然,这只能在相对较小的状态空间中完成(在我的情况下,这绝对是可能的).

在探索过程的最后阶段,第三个想法是不仅要查看选定的行动以寻找最佳的q值,还要查看所有可能的行动和状态,然后查看其他状态等等.

我知道这些问题有点无关,但我想听听之前有过这方面工作的人的意见,并且(可能)也与其中一些人挣扎过.

use*_*902 13

从一个强化倾斜大师候选人:

Alpha是学习率.如果奖励或转换函数是随机的(随机的),则alpha应随时间变化,在无穷远处接近零.这与近似内积的预期结果(T(过渡)*R(奖励))有关,当两者之一或两者具有随机行为时.

这个事实很重要.

Gamma是未来奖励的价值.它可以影响学习,可以是动态或静态值.如果它等于1,则代理人将未来的奖励视为当前奖励.这意味着,在十个动作中,如果一个代理做了一件好事,这就像直接做这个动作一样有价值.因此,在高伽玛值的情况下,学习并不适用.

相反,伽玛为零将导致代理仅评估即时奖励,这仅适用于非常详细的奖励功能.

此外 - 至于探索行为......实际上有很多关于此的文献.100%的所有想法都经过了尝试.我会建议更详细的搜索,甚至开始谷歌搜索决策理论和"政策改进".

只需在Alpha上添加一个注释:想象一下,你有一个奖励函数可以为某个状态动作组合SA吐出1或零.现在,每次执行SA时,您将得到1或0.如果将alpha保持为1,则将得到Q值为1或零.如果它是0.5,你将获得+0.5或0的值,并且该函数将始终在这两个值之间振荡.但是,如果每次将alpha减少50%,就会得到这样的值.(假设奖励收到1,0,1,0,......).你的Q值最终会达到,1,0.5,0.75,0.9,0.8,......最终会收敛到接近0.5的值.在无限远处它将是0.5,这是概率意义上的预期奖励.


Bet*_*eta -3

我以前没有使用过这样的系统,所以我不知道我能有多大用处,但是......

伽玛是衡量智能体期待未来奖励的倾向的指标。它越小,代理就越倾向于采取具有最大奖励的行动,无论结果状态如何。具有较大伽玛值的智能体将学习通往丰厚奖励的漫长道路。至于所有 Q 值接近零,您是否尝试过使用 gamma=0 的非常简单的状态图(例如,一个状态和两个动作)?这应该很快就会接近 Q=奖励。

减少 alpha 的想法是抑制 Q 值的振荡,以便智能体在经历了狂野的青春期后能够进入稳定的模式。

探索状态空间?为什么不直接迭代它,让代理尝试一切?没有理由让代理在学习中实际遵循一系列行动——除非这是你模拟的目的。如果只是为了找到最佳行为模式,请调整所有 Q,而不仅仅是路径上最高的 Q。

  • 进行 Q-Learning 的重点不是迭代所有空间。准确地说,是尽可能快地学习(即,拥有巨大的状态空间,快速学习如何针对给定任务充分探索它们)。如果想法要迭代它,那么我会使用典型的搜索系统(呼吸优先、深度搜索等)。另外,我不明白将伽玛设置为零有什么意义。它只会执行导致目标更新的操作。所有其他都将等于零。 (2认同)