论文地址: https://papers.nips.cc/paper/3964-double-q-learning.pdf
本论文由DeepMind发表于2015年NIPS的一篇论文,作者Hasselt。
前言: Q-Learning算法由于受到大规模的动作值过估计(overestimation)而出现不稳定和效果不佳等现象的存在,而导致overestimation的主要原因来自于最大化值函数(max)逼近,该过程目标是为了最大的累计期望奖励,而在这个过程中产生了正向偏差。而本文章作者巧妙的是使用了两个估计器(double estimator)去计算Q-learning的值函数,作者将这种方法定义了一个名字叫“Double Q-learning”(本质上一个off-policy算法),并对其收敛过程进行了证明(缺点:当然double Q-learning算法有时会低估动作值,但不会像Q学习那样遭受过高估计)
1. 问题及原因
“过估计” (overestimate)
过估计是指对一系列数先求最大值再求平均,通常比先求平均再求最大值要大(或相等,数学表达为: E ( max ( X 1 , X 2 , . . . ) ) ≥ max ( E ( X 1 ) , E ( X 2 ) , . . . ) E(\max (X1, X2, ...)) \geq \max (E(X1), E(X2), ...) E(max(X1,X2,...))≥max(E(X1),E(X2),...)
一般来说Q-learning方法导致overestimation的原因归结于其更新过程,其表达为:
Q t + 1 ( s t , a t ) = Q t ( s t , a t ) + α t ( s t , a t ) ( r t + γ max a Q t ( s t + 1 , a ) − Q t ( s t , a t ) ) Q_{t+1}\left(s_{t}, a_{t}\right)=Q_{t}\left(s_{t}, a_{t}\right)+\alpha_{t}\left(s_{t}, a_{t}\right)\left(r_{t}+\gamma \max _{a} Q_{t}\left(s_{t+1}, a\right)-Q_{t}\left(s_{t}, a_{t}\right)\right) Qt+1(st,at)=Qt(st,at)+αt(st,at)(rt+γamaxQt(st+1,a)−Qt(st,at))
其中的 max a \max\limits_{a} amax 表示为最大化action-value, 而更新最优化过程如下:
∀ s , a : Q ∗ ( s , a ) = ∑ s ′ P s a s ′ ( R s a s ′ + γ max a Q ∗ ( s ′ , a ) ) \forall s, a: Q^{*}(s, a)=\sum_{s^{\prime}} P_{s a}^{s^{\prime}}\left(R_{s a}^{s^{\prime}}+\gamma \max _{a} Q^{*}\left(s^{\prime}, a\right)\right) ∀s,a:Q∗(s,a)=s′∑Psas′(Rsas′+γamaxQ∗(s′,a))
对于任意的 s , a s, a s,a 来说,最优值函数 Q ∗ Q^{*} Q∗ 的更新依赖于 max a Q ∗ ( s , . . . ) \max \limits_{a} Q^{*}(s,...) amaxQ∗(s,...), 从公式中可以看出,我们把N个Q值先通过取max操作之后,然后求平均(期望),会比我们先算出N个Q值取了期望之后再max要大。这就是overestimate的原因。
注: 一般用于加速Q-learning算法的方法有:Delayed Q-learning, Phased Q-learning, Fitted Q-iteration等
2. Estimator原理与思想
通常情况下对于一个集合中的变量 X = { X 1 , X 2 , . . . , X M } X= \left\{ X_{1},X_{2},...,X_{M} \right\} X={
X1,X2,...,XM}来说,奖励的最大化累计期望表示为:
max a E { X i } \max \limits_{a} E \left\{ X_{i} \right\} amaxE{
Xi}
那么在实际的过程中,对于每个 X i X_{i} X