上一节针对 D y n a − Q Dyna-Q Dyna−Q算法执行过程中的问题,介绍了算力聚焦思想以及 D y n a − Q + Dyna-Q+ Dyna−Q+算法思路。本节将继续介绍基于算力聚焦思想的另一种算法——优先级遍历算法。
算力聚焦的矛盾问题本质上是探索(Exploration)与利用(Exploitation)的矛盾问题:
D
y
n
a
−
Q
+
Dyna-Q+
Dyna−Q+方法主要通过探索自身定义出发构建假设:针对很久没有被访问过的状态-动作对,使用增加对应状态的奖励结果来增加该状态的状态转移频率。具体做法是构建一个关于奖励增量与未被访问的时间间隔之间的函数:
R
←
R
+
κ
τ
R \gets R + \kappa \sqrt{\tau}
R←R+κτ
具体思路:
其本质上是针对 D y n a − Q Dyna-Q Dyna−Q算法中探索(Exploration)部分处理不足产生的想法。
由于 D y n a − Q Dyna-Q Dyna−Q算法对状态-动作对的 纯随机选择 导致算力资源浪费的情况,介绍反向聚焦的核心思想:
具体想法是:如果将 D y n a − Q Dyna-Q Dyna−Q规划过程中的模拟经验与 Q − T a b l e Q-Table Q−Table的更新 集中在某些特定的状态-动作对上,这样规划过程会更加高效。
现在的问题已经转化为:如何挑选规划过程更加高效的状态-动作对,或者说如何定义某种状态-动作对,使规划过程更加高效。
基于上述问题,思考:强化学习求解的任务无非就是希望智能体能够状态转移至终结状态,即情节结束。
基于该思考,提出一个极端假设:
但并不是所有的问题都像‘迷宫问题’一样能够找到‘终结状态信息(迷宫出口)’。
上述假设之所以极端,是因为在真实情况下,我们可能无法找到 终结状态 的信息。因此,基于上述假设,可以提出一个 更一般的假设(反向聚焦)(Backward Focusing):
相比于极端假设,我们不需要 只关注最优状态(终结状态),只需要关注 优秀的状态-动作对 即可,或者说,定义一个规则:通过规则来判断哪些状态-动作对是优秀的,哪些不是优秀的即可。
好的状态-动作对的‘评判标准’是什么——自然是状态-动作价值函数Q(s,a)。
假设已经知道某一状态-动作对的 Q ( s , a ) Q(s,a) Q(s,a)是好的——此时已经得到一个不错的状态 s s s;以 s s s为目标,观察 哪些状态通过状态转移有机会转移至 s s s,这些状态被列为 重点观察对象,这些状态同样可以通过 Q ( s , a ) Q(s,a) Q(s,a)放入优先级队列中,排在最前面的自然是 转移至 s s s后收益最大的状态,以此类推。
该方法与 D y n a − Q + Dyna-Q+ Dyna−Q+方法相对应,其本质上是针对 D y n a − Q Dyna-Q Dyna−Q算法中利用(Exploitation)部分处理不足产生的想法。
观察反向聚焦算法的执行过程:
输入部分(Input):
初始化部分(Initialization):
算法部分
学习过程:
至此,上述产生真实经验(Real Experience)过程与模型学习(Model Learning)过程和 D y n a − Q Dyna-Q Dyna−Q没有区分;但是在 直接强化学习过程(Direct Reinforcement Learning)中存在明显差异:
至此,学习过程 结束。相比
D
y
n
a
−
Q
Dyna-Q
Dyna−Q算法,它删除了直接强化学习过程,而是以增量信息
P
P
P为评价标准,将其插入对应队列位置中。
由于绝对值的原因,转移后的价值函数信息并不一定比转移之前的好,只是说明两者之间的差距较大。
规划过程:
该部分为产生模拟经验与间接强化学习过程。相比于 D y n a − Q Dyna-Q Dyna−Q算法,该部分最大区别是将真实经验与模拟经验一视同仁——只要不是 P Q u e u e PQueue PQueue中的第一顺位,就没有机会执行强化学习过程。
这里可能会产生若干对
(
s
^
,
a
^
)
(\hat s,\hat a)
(s^,a^);
注意:这个条件实际上是‘非常苛刻’的: 状态-动作对
(
s
^
,
a
^
)
(\hat s,\hat a)
(s^,a^)在状态转移过程中可能存在若干种‘下一时刻状态’(包含状态
s
s
s),但这里只要转移至状态
s
s
s的奖赏。
即每一对
(
s
^
,
a
^
)
(\hat s,\hat a)
(s^,a^)均对应一个
r
^
\hat r
r^;
算法结束。最终可得到优化后的
Q
−
T
a
b
l
e
Q-Table
Q−Table。
总结优先遍历算法的特点:
下一节将介绍决策时间规划。
相关参考:
【强化学习】规划与学习-算力聚焦
深度强化学习原理、算法与PyTorch实战——刘全、黄志刚编著