我正在为网格世界实施Q-learning以寻找最佳策略。困扰我的一件事是状态转换是随机的。例如,如果我处于状态(3,2)并采取行动'北',我将以(3,1)概率为0.8,以(2,2)概率为0.1和(4) ,2)概率为0.1。如何在算法中包含此信息?正如我到目前为止所读到的,Q学习是一种“无模型”学习 - 它不需要知道状态转移概率。我不相信算法将如何在训练过程中自动找到这些转换概率。如果有人可以解决问题,我将不胜感激。
答案 0 :(得分:4)
让我们看看Q-learning保证了解为什么它处理转换概率。
让我们调用q*
最佳动作值函数。这个函数返回在某个状态下执行某些操作的正确值。状态 - 动作对的值是采取操作的预期累积奖励,之后是最优策略。最优策略只是选择实现最大可能预期累积奖励的操作的一种方式。一旦我们q*
,就很容易找到最优政策;来自您发现自己的每个州s
,贪婪地选择最大化q*(s,a)
的行动。 Q-learning会学习q*
,因为它会无限次地访问所有状态和操作。
例如,如果我处于状态(3,2)并采取行动'北部'我将以(3,1)的概率以0.8的概率上升到(2,2) )概率为0.1,而(4,2)的概率为0.1。如何在算法中包含此信息?
因为算法无限次地访问所有状态和动作,平均q值,所以它学会了尝试向北的值的期望。我们向北走了很多次,这个值会收敛到每个可能结果的总和,加权的转移概率。假设我们知道gridworld上的所有值,除了从(3,2)向北的值,并假设从(3,2)的任何转换都没有奖励。在从(3,2)向北无数次采样后,算法收敛到值0.8 * q(3,1) + 0.1 * q(2,2) + 0.1 * q(4,2)
。有了这个值,从(3,2)的贪婪行动选择现在将被正确地告知试图向北的真实期望值。转换概率直接融入价值!