强化学习-Q-Learning算法

1. 前言

Q-Learning算法也是时序差分算法的一种,和我们前面介绍的SARAS不同的是,SARSA算法遵从了交互序列,根据当前的真实行动进行价值估计;Q-Learning算法没有遵循交互序列,而是在当前时刻选择了使价值最大的行动。

2. Q-Learning

Q-Learning算法在计算当前时刻的行动-状态价值\(q_t(s_t,a_t)\)时选择了当前状态使价值最大的行动\(max_aq_{t-1}(s_{t})\)

Q-Learning的迭代公式在SARAS的基础上进行了一些修改,如下:

\[ q_{t}(s_{t},a_{t}) = q_{t-1}(s_{t-1},a_{t-1}) + \frac{1}{N}(r_t + \gamma*max_aq_{t-1}(s_t) - q_{t-1}(s_{t-1},a_{t-1})) \]

3. SARAS和Q-Learning比较

SARSA算法和Q-Learning算法在公式上的不同,实际上这两种算法代表了两种策略评估的方式,分别是On-Policy和Off-Policy

  • On-Policy:对值函数的更新是完全依据交互序列进行的,我们在计算时认为价值可以直接使用采样的序列估计得到。
  • Off-Policy:更新值函数时并不完全遵循交互序列,而是选择来自其他策略的交互序列的子部分替换了原本的交互序列。从算法的思想上来说,Q-Learning的思想更复杂,它结合了子部分的最优价值,更像是结合了价值迭代的更新算法,希望每一次都使用前面迭代积累的最优结果进行更新。

4. 总结

对于Q-Learning和SARSA这样的时序差分算法,对于小型的强化学习问题是非常灵活有效的,但是在大数据时代,异常复杂的状态和可选动作,使Q-Learning和SARSA要维护的Q表异常的大,甚至远远超出内存,这限制了时序差分算法的应用场景。在深度学习兴起后,基于深度学习的强化学习开始占主导地位,因此从下一篇开始我们开始讨论深度强化学习的建模思路。

猜你喜欢

转载自www.cnblogs.com/huangyc/p/10500029.html