时序差分方法求解强化学习任务——最大化偏差问题
目录
本系列将介绍求解时序差分控制过程中算法出现的最大化偏差问题以及解决方法——Double Q learning算法。
什么是最大化偏差
前面分别介绍了基于同轨策略求解时序差分控制(SARSA)和基于离轨策略求解时序差分控制(Q-Learning),我们发现,这两种算法本质上都是采用 最大化目标策略 的思想。
什么是最大化目标策略?
经过观察发现,无论是SARSA算法还是Q-Learning算法,它们的策略改进过程均可以表示为:
- 使用贪心策略,获取当前状态 S t S_t St中最大状态-动作价值函数对应的动作:
A ∗ = arg max a Q ( S t , a ) A^* = \mathop{\arg\max}\limits_{a} Q(S_t,a) A∗=aargmaxQ(St,a) - 在 A ∗ A^* A∗的基础上,再使用 ϵ − \epsilon- ϵ−贪心策略将 A ∗ A^* A∗转化为 软性策略:
∀ a ∈ A ( S t ) → π ( a ∣ S t ) = { 1 − ϵ k + ϵ k ∣ A ( S ) ∣ a = A ∗ ϵ k ∣ A ( S ) ∣ a ≠ A ∗ \begin{aligned} \forall a \in \mathcal A(S_t) \to \\ \pi(a \mid S_{t}) &= \left\{ \begin{array}{ll} 1 - \epsilon_k + \frac{\epsilon_k}{\mid\mathcal A(S) \mid} \quad a= A^*\\ \frac{\epsilon_k}{\mid\mathcal A(S) \mid}\quad\quad \quad \quad\quad a \neq A^* \end{array} \right. \end{aligned} ∀a∈A(St)→π(a∣St)={ 1−ϵk+∣A(S)∣ϵka=A∗∣A(S)∣ϵka=A∗
这种操作的本质是将估计值 Q ( S t , a ) Q(S_t,a) Q(St,a)中的最大值作为 真实值的估计。这种估计结果会造成 Q ( S t , a ) Q(S_t,a) Q(St,a)的估计结果与真实值的估计结果之间存在一个 正向偏差,这个偏差被称为 最大化偏差。
最大化偏差是如何出现的
再次观察上面描述策略改进过程:无论是选择最优动作 A ∗ A^* A∗还是将 A ∗ A^* A∗转化为软性策略 —— 根本就 没有偏差的机会:
- 选择最优动作 A ∗ → A^* \to A∗→ 选最大值;
- 软性策略转化 → \to → 基于人为设定 ϵ \epsilon ϵ的贪心算法;
因此,真正可能出现偏差的位置在策略评估过程——准确来说,就在状态-动作价值函数 Q ( S , A ) Q(S,A) Q(S,A)的 迭代过程。
因为策略评估中’动作a的选择‘仍然只是一个ε-贪心策略;和策略改进部分没有区别。
回顾SARSA和Q-Learning算法的迭代过程公式如下:
Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ Q ( S t + 1 , A t + 1 ) − Q ( S t , A t ) ] Q ( S t , A t ) ← Q ( S t , A t ) + α [ R t + 1 + γ max a Q ( S t + 1 , a ) − Q ( S t , A t ) ] Q(S_t,A_t) \gets Q(S_t,A_t) + \alpha[R_{t+1} + \gamma Q(S_{t+1},A_{t+1}) - Q(S_t,A_t)] \\ Q(S_t,A_t) \gets Q(S_t,A_t) + \alpha[R_{t+1} + \gamma \mathop{\max}\limits_{a}Q(S_{t+1},a) - Q(S_t,A_t)] Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)−Q(St,At)]Q(St,At)←Q(St,At)+α[Rt+1+γamaxQ(St+1,a)−Q(St,At)]
我们发现:每个状态-动作价值函数 Q ( S , A ) Q(S,A) Q(S,A)都会选择选择下一时刻的最优状态-动作价值函数 Q ( S t + 1 , A t + 1 ) Q(S_{t+1},A_{t+1}) Q(St+1,At+1)或者 max a Q ( S t + 1 , a ) \mathop{\max}\limits_{a}Q(S_{t+1},a) amaxQ(St+1,a)作为 Q ( S , A ) Q(S,A) Q(S,A)的更新方向。
即便SARSA选择的动作存在一定概率不是最优的,但下一时刻的动作也是通过ε-贪心策略选择出来的,因此,选择到最优动作的概率明显高于其他动作。
如果出现类似于 最优状态-动作价值函数是噪声或奖励结果(Reward)是满足某个分布的随机值时【传送门】
分析:如果出现这种情况会产生什么后果:
某一动作执行后,系统自动产生的随机奖励结果(Reward)和该动作本身 不匹配:
- 例如:在某状态 S ′ S' S′下,执行某动作 A ′ A' A′后的奖励结果不希望它太高;但通过奖励结果分布产生出的随机值导致该奖励结果过高——该结果直接影响 Q ( S ′ , A ′ ) Q(S',A') Q(S′,A′)的计算和后续迭代过程。
下面以Q-Learning为例,具体实现一下 随机奖励结果是如何对策略评估过程产生的影响的。
基于Q-Learning最大化偏差示例
示例环境介绍与问题描述
设计一个简易环境(Environment):如下图所示:
其中:
A A A表示一个状态(State),该状态共包含两个动作(Action):
A ( A ) = { a l e f t , a