蒙特卡洛树搜索方法介绍——Q规划与Dyna-Q算法
引言
上一节介绍了规划与学习的相关信息,并介绍了直接强化学习(Direct Reinforcement Learning)和间接强化学习(Indirect Reinforcement Learning),本节利用上述两种概念,介绍 Q Q Q规划算法与Dyna-Q算法。
回顾:直接强化学习与间接强化学习
如果单纯使用规划方法,其主要思想表示如下:
- 已知环境模型——对任意状态 s ∈ S s \in \mathcal S s∈S,动作 a ∈ A ( s ) a \in \mathcal A(s) a∈A(s)确定的情况下,其转移后的新状态 s ′ s' s′,对应的奖励结果 r r r的动态特性函数 P ( s ′ , r ∣ s , a ) P(s',r \mid s,a) P(s′,r∣s,a)均是给定的;
- 根据状态-动作对 ( s , a ) (s,a) (s,a),通过 环境模型 进行搜索(Search),得到新状态 s ′ s' s′和对应奖励结果 r r r(基于 模拟经验(Simulation Experience)产生的结果);
注意:此时产生的s'和r被称为‘模拟经验’——它并不是从真实环境中真实地执行了一次状态转移过程,而是在动态特性函数P(s',r|s,a)中基于转移后新状态的概率分布,随机选择的结果。
- 至此,得到了一组 模拟状态转移结果 → ( s , a , s ′ , r ) \to (s,a,s',r) →(s,a,s′,r),利用该结果更新策略 π \pi π。
以动态规划方法为例,该方法主要使用策略迭代操作:- 策略评估(Policy Evaluation):(贝尔曼期望方程的不动点性质)
V k + 1 ( s ) = ∑ a ∈ A ( s ) π ( a ∣ s ) ∑ s ′ , r P ( s ′ , r ∣ s , a ) [ r + γ V k ( s ′ ) ] V_{k+1}(s) = \sum_{a \in \mathcal A(s)}\pi(a \mid s) \sum_{s',r}P(s',r \mid s,a)[r+ \gamma V_{k}(s')] Vk+1(s)=a∈A(s)∑π(a∣s)s′,r∑P(s′,r∣s,a)[r+γVk(s′)] - 策略改进(Policy Improvment):(贪心算法)
π ∗ ( a ∣ s ) = { 1 i f a = arg max a ∈ A q π ∗ ( s , a ) 0 e l s e \pi_*(a \mid s) = \left\{ \begin{array}{ll} 1\quad if \quad a= \mathop{\arg\max}\limits_{a \in \mathcal A}q_{\pi^*}(s,a)\\ 0\quad else \end{array} \right. π∗(a∣s)={ 1ifa=a∈Aargmaxqπ∗(s,a)0else
- 策略评估(Policy Evaluation):(贝尔曼期望方程的不动点性质)
由于上述思想是基于环境模型给定的条件下,直接使用环境模型对策略进行规划。因此,上述方法属于直接强化学习。
直接强化学习的定义:在真实环境中采集真实经验,根据真实经验直接更新值函数或策略,不受模型偏差的影响。
在动态规划方法中,它通过动态特性函数获取模拟经验,它不是真实经验,但为什么‘动态规划方法’是‘直接强化学习’呢?
以下是个人看法:动态规划中已知的动态特性函数就是‘理想状态下模型的表达’——也可以理解成经过无数次采样近似出的‘完美环境模型’。因此,动态规划方法产生的经验同样是‘真实经验’。
使用学习方法的主要思想是基于环境模型未知或未完全可知,导致我们 无法使用环境模型直接对策略进行规划。因此,使用学习(Learning)方法求解真实经验:
在真实环境中,给定状态 s s s条件下,选择具体动作 a ∈ A ( s ) a \in \mathcal A(s) a∈A(s),并执行一次真实的状态转移过程得到新状态 s ′ s' s′以及对应奖励 r r r。至此,我们得到一组 真实状态转移结果 ( s , a , s ′ , r ) (s,a,s',r) (s,a,s′,r),在求解策略 π \pi π的方向中,共分为 两条路径:
- 由于 ( s , a , s ′ , r ) (s,a,s',r) (s,a,s