Q-Learning
(1). 什么是Q-Learning :
Q-Learning是一种决策过程,选择潜在奖励大的行为。本次行为选择后,产生下一次状态。
根据Q-table中的状态(s1,s2,s3...)选择相应的奖励值(R)较大的行为(a1,a2,a3...)。
(2). 此处有两个值需要注意:估计值和现实值。
估计值: 当到达某一状态(s1),根据Q-table估计下一步的行为是奖励值较大的行为(a2)。也就是估计出的Q值是 Q(s1,a2)
现实值: 由上一次的奖励值(R)加上本次Q-table中较大奖励值的行为(max Q(s2) )产生的影响。也就是现实中的Q值是 R + * maxQ(s2)
两者之间的 差距 = 现实值 - 估计值
(3). 通过这个上一次的Q值和这次产生的差距值计算出新的Q值:
New Q(s1,a2) = Old Q(s1,a2) + *差距值 (其中
是学习效率)
New Q(s1,a2) = Old Q(s1,a2) + * [ ( R +
* maxQ(s2) ) - Q(s1,a2) ]
(4). Q-Learning的算法:
(5). 算法中的参数意义:
-greedy :用在决策上的一种策略。 例如
= 0.9,说明有90%的可能按照Q-table中的最优值选择行为,10%的可能性随机产生行为。
: 是学习效率。决定本次的误差有多少需要学习。(
< 1)
: 是未来奖励的衰减值。
因为s1可以转化为以下公式:
继而便可知,s1可以用之后的每一个奖励值组合表示
但是越往后奖励值的分量就越轻。
详细信息请查看莫烦Python: https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/intro-q-learning/