MDP中的随机状态转移:q学习是如何估计的?



我正在一个网格世界中实现Q-learning,以寻找最优策略。困扰我的一件事是状态转换是随机的。例如,如果我处于状态(3,2)并采取行动"向北",我将以0.8的概率到达(3,1),以0.1的概率到达(2,2),以0.1的概率到达(4,2)。如何在算法中拟合这些信息?正如我目前所读到的,Q-learning是一种"无模型"学习——它不需要知道状态转移概率。我不相信算法如何在训练过程中自动找到这些转移概率。如果有人能把事情弄清楚,我将不胜感激。

让我们看看Q-learning保证了什么,看看为什么它处理转移概率。

q*最优动作值函数。这个函数返回在某种状态下执行某种操作的正确。状态-动作对的是采取该动作,然后遵循最优策略的预期累积奖励。最优策略是一种选择行动的方法,可以实现最大可能的预期累积奖励。一旦我们有了q*,就很容易找到最优策略;从你所处的s状态中,贪婪地选择使q*(s,a)最大化的行动。Q-learning学习q* ,假设它访问所有状态和动作无限次

例如,如果我处于状态(3,2)并采取行动"向北",我将以0.8的概率到达(3,1),以0.1的概率到达(2,2),以0.1的概率到达(4,2)。如何在算法中拟合这些信息?

因为算法访问所有状态和动作无限次,取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)中的贪婪行为选择现在将被正确地告知尝试向北移动的真实期望值。转换概率被直接写入值中!

最新更新