zer*_*ord 4 artificial-intelligence machine-learning markov reinforcement-learning
在使用广义时间差分(例如SARSA,Q学习)的任何标准强化学习算法中,出现的问题是用于特定任务的λ和伽马超参数的值.
我知道lambda与资格痕迹的长度有关,而gamma可以解释为折扣未来的奖励多少,但是我怎么知道我的lambda值对于给定的任务来说太低了,或者我的gamma太高了?
我意识到这些问题没有明确定义的答案,但是知道某些"危险信号"会产生不适当的价值会非常有用.
以标准推车杆或倒立摆任务为例.我应该将gamma设置为高,因为它需要很多步骤来使任务失败,或者因为状态信息完全是Markovian而需要低吗?而且我甚至无法理解lambda值......
小智 10
通常,伽玛被视为问题的一部分,而非算法.强化学习算法尝试每个州优化累积折扣奖励:
r1 + gamma*r2 + gamma^2*r3 + gamma^3*r4 ...
从当前状态的rn
时间步骤收到的奖励在哪里n
.因此,对于一种伽玛选择,算法可以优化一件事,而对于另一种选择,它将优化其他东西.
但是,当您定义了某个高级目标时,仍然经常会有一个建模选择,因为许多不同的伽玛可能会满足目标的要求.例如,在推车杆中,目标是无限期地平衡杆.如果你为平衡的每一步给予+1的奖励,那么相同的政策(总是平衡极点的政策)对于所有伽马> 0都是最佳的.但是,次优政策的排名 - 决定学习属性朝向这个目标 - 对于不同的伽马值将会有所不同.
通常,大多数算法在不必看得太远的情况下学得更快.因此,它有时可以帮助将性能设置得相对较低.一般的经验法则可能是:确定min_gamma
仍然满足您的高级目标的最低伽玛值,然后将伽玛值设置为gamma = (min_gamma + 1)/2
.(你不想使用gamma = min_gamma
它自己,因为一些次优的目标将被视为几乎与期望的目标一样好.)另一个有用的经验法则:对于许多问题,0.9或0.95的伽玛是好的.但是,在与奖励功能结合使用时,请始终考虑这样的伽马对于您正在优化的目标意味着什么.
lambda参数确定您使用当前的蒙特卡罗推出时对早期学习值的引导程度.这意味着在更多偏差(低λ)和更多方差(高λ)之间进行权衡.在许多情况下,将lambda设置为零已经是一个很好的算法,但将lambda设置得更高有助于加快速度.在这里,您不必担心您正在优化的内容:目标与lambda无关,此参数仅有助于加快学习速度.换句话说,lambda完全是算法的一部分,而不是问题的一部分.
一般的经验法则是使用等于0.9的lambda.但是,尝试一些设置(例如,0,0.5,0.8,0.9,0.95和1.0)并绘制学习曲线可能会很好.然后,你可以选择似乎学得最快的那个.