我正在对网格世界实施 Q-learning 以找到最佳策略。困扰我的一件事是状态转换是随机的。例如,如果我处于状态 (3,2) 并采取行动“北”,我将以 0.8 的概率降落在 (3,1),以概率 0.1 降落到 (2,2),然后降落到 (4 ,2) 概率为 0.1。我如何在算法中拟合这些信息?正如我目前所读到的,Q-learning 是一种“无模型”学习——它不需要知道状态转移概率。我不相信算法将如何在训练过程中自动找到这些转换概率。如果有人能把事情弄清楚,我将不胜感激。
1 回答
让我们看看 Q-learning 保证什么,看看它为什么处理转换概率。
我们称其q*
为最优动作价值函数。这是返回在某种状态下采取某种行动的正确值的函数。状态-动作对的价值是采取行动的预期累积奖励,然后遵循最优策略。最优策略只是一种选择实现最大可能预期累积奖励的行动的方式。一旦我们有了q*
,就很容易找到最优策略;从你发现自己所处的每个状态s
中,贪婪地选择最大化的行动q*(s,a)
。Q-learningq*
是在无限次访问所有状态和动作的情况下学习的。
例如,如果我处于状态 (3,2) 并采取行动“北”,我将以 0.8 的概率降落在 (3,1),以概率 0.1 降落到 (2,2),然后降落到 (4 ,2) 概率为 0.1。我如何在算法中拟合这些信息?
因为该算法无限多次访问所有状态和动作,平均 q 值,它学习了尝试向北的值的期望值。我们向北走了很多次,以至于该值收敛到每个可能结果的总和,这些结果由其转移概率加权。假设我们知道网格世界上的所有值,除了从 (3,2) 向北的值,并假设从 (3,2) 的任何转换都没有奖励。从 (3,2) 向北无限次采样后,算法收敛到值0.8 * q(3,1) + 0.1 * q(2,2) + 0.1 * q(4,2)
。有了这个值,来自 (3,2) 的贪婪行动选择现在将被正确地告知尝试向北行驶的真实期望值。转移概率直接融入到价值中!