经典的Q-learning算法因为目标策略的取max步骤使得Q估计值存在过估计现象。Q(s,a)估计的不准确会导致Agent表现力很差,比如原本2个真值 Q ( s , a 0 ) > Q ( s , a 1 ) Q(s,a_0)>Q(s,a_1) Q(s,a0)>Q(s,a1),但过估计可能会使得收敛时他们的估计值 Q ( s , a 0 ) < Q ( s , a 1 ) Q(s,a_0)<Q(s,a_1) Q(s,a0)<Q(s,a1)。那么根据贪心策略,会出现次优策略。
为了解决过估计这个糟糕的问题,2010年Hasselt在NIPS上发表了Double Q-learning这篇论文。旨在通过引入Double Q-learning算法,以欠估计(underestimation)来替代Q-learning的过估计(overestimation)问题。或者说用低于真值的负估计来解决Q-learning高于真值的正估计问题。
这篇文章让我明白了之前犯得一个错误:误认为DQN中的过估计是因为NN本身的误差引起的(当然也有这个因素),但其实过估计问题主要是因为Q-learning算法本身就存在的,DQN由于基于Q-learning,所以会出现过估计。
Double Q-learning的价值:
- 作为后续
DDQN的基础,来解决连续状态,离散动作的RL问题过估计问题。 - 作为Double Q-learning的基础,来解决离散状态,离散动作RL问题过估计问题。
- 作为
TD3算法的基础,用以解决DDPG算法中DQN部分过估计问题,来解连续动作下的RL问题。
Double Q-learning论文主要内容:
- 分析了Q-learning算法的
overestimation。 - 引出了Double Q-learning去解决过估计问题,但是这个算法并不是准确估计的,而是本身会造成
underestimation。
Double Q-learning
Abstract
作者Hasselt指出:
- Q-learning因为存在最大化动作值函数而产生过估计问题。
- 提出了Double Q-learning来解决Q-learning这个缺陷。
- Double Q-learning本地也有缺陷:会产生欠估计(underestimation)问题。
- 作者通过2个实验来凸显出新Q算法和旧Q算法在估计上的表现:即一个欠估计,一个过估计。
1 Introduction
Q-learning是TD算法,是一种结合了DP和MC各自特点的算法。其动作值函数更新公式为:
Q t + 1 ( s t , a t ) = Q t ( s t , a t ) + α t ( s t , a t ) ( r t + γ max a Q ( s t + 1 , a ) − Q t ( s t , a t ) ) (1) Q_{t+1}(s_t,a_t) = Q_t(s_t,a_t) +\alpha_t(s_t,a_t)(r_t+ \\\gamma \mathop{\max_a}Q_(s_{t+1},a)-Q_t(s_t,a_t)) \tag{1} Qt+1(st,at)=Qt(st,at)+αt(st,at)(rt+γamaxQ(st+1,a)−Qt(st,at))(1)
式子中, α ∈ [ 0 , 1 ] \alpha\in[0,1] α∈[0,1]是一个根据状态数而衰减的学习率,类似于 ϵ \epsilon ϵ,我们一般都设为固定值。由于TD目标值也是个估计值,所以 α \alpha α的值不应太大。
最优值函数 Q ∗ ( s , a ) Q^*(s,a) Q∗(s,a)根据贝尔曼公式可得:
∀ s , a : Q ∗ ( s , a ) = ∑ s ′ P s a s ′ ( R s a s ′ + γ max a Q ∗ ( s ′ , a ) ) = r t + γ ∑ s ′ P s a s ′ max a Q ∗ ( s ′ , a ) = E s ′ ∼ ρ ( R s a s ′ + γ max a Q ∗ ( s ′ , a ) ) (2) \forall s,a:Q^*(s,a) =\mathop{\sum_{s'}}P_{sa}^{s'}(R_{sa}^{s'}+\gamma \mathop{\max_a}Q^*(s',a)) \\=r_t+\gamma \mathop{\sum_{s'}P_{sa}^{s'}}\mathop{\max_a}Q^*(s',a) \\= \mathbb{E}_{s' \sim\rho}(R_{sa}^{s'}+\gamma \mathop{\max_a}Q^*(s',a)) \tag{2} ∀s,a:Q∗(s,a)=s′∑Psas′(Rsas′+γamaxQ∗(s′,a))=rt+γs′∑Psas′amaxQ∗(s′,a)=Es′∼ρ(Rsas′+γamaxQ∗(s′,a))(2)
- 从期望中看出,Q-learning由于没有状态转移概率,所以只能通过采样的方式去逼近 E \mathbb{E} E,根据大数定律,无限次采样会达到均值。这里也看出model-free不同于model-based,其实通过n次的采样去做RL任务的。TD算法收敛的过程其实就是在构建一个MDP,通过采样不断去近似状态转移概率。
- γ \gamma γ两个作用:①相对未来,更看重眼前的利益,符合人脑的思维方式。②防止RL中出现的周期往复行为导致G太大,比如MC中,如果某次出现G太大,那么会使得算法的方差进一步拉大,增加了收敛的难度。
- 作者还提出了一些可以增加Q-learning收敛速度的论文,比如
Delayed Q-learning,Phased Q-learning,Fitted Q-learning等
Contributions:
作者提出一种双估计器,相比于基于单估计器的Q-learning而言,他不会产生过估计,但是会有欠估计。基于双估计思想与Q-learning,作者提出了Double Q-learning这种新算法。
接下去论文的组织顺序:
- 第2节:使用单、双估计器来近似一系列R.V.的期望的最大值。
- 第3节:提出Double Q-learning算法,并证明其收敛性。
- 第4节:根据实验来得出Double Q-learning的特性以及和Q-learning的比对。
- 第5、6节:总结与展望。
2 Estimating the Maximum Expected Value
全文的研究以用2种估计器(单、双估计)来近似估计一系列R.V.的最大期望值:
M个随机变量 X = X 1 , X 2 . . . , X M X={X_1,X_2...,X_M} X=X1,X2...,XM。
研究对象为:
max i E ( X i ) (3) \mathop{\max_i}\mathbb{E}(X_i) \tag{3} imaxE(Xi)(3)
单估计器的做法是通过最大化一系列R.V.估计值的期望值来估计这个研究对象,即 max i E { X i } = max i E { μ i } ≈ max i μ i ( S ) \mathop{\max_i}\mathbb{E}\{X_i\}=\mathop{\max_i}\mathbb{E}\{\mu_i\}\approx \mathop{\max_i}\mu_i(S) imaxE{
Xi}=imaxE{
μi}≈imaxμi(S)这种做法使得其实不是无偏的,会产生正偏差的。这点会在2.1节得到证明。
双估计器的做法是通过解耦R.V.估计值和R.V.估计器。这种做法也不是对目标的无偏估计,会产生负偏差,但是其避免了过估计,即正偏差。
Note:
- 随机变量 X i X_i Xi的估计器用 μ i \mu_i μi表示。
- μ i \mu_i μi是 X i X_i Xi的无偏估计,i.g. E { X i } = E { μ i } \mathbb{E}\{X_i\}=\mathbb{E}\{\mu_i\} E{ Xi}=E{ μi}
- 为了更好地理解这一节内容,你可以把 X i X_i Xi当做Q-learning中的 Q ( S , a i ) Q(S,a_i) Q(S,ai)真值,把 μ i \mu_i μi当做 Q ( S , a i ) Q(S,a_i) Q(S,ai)的估计值。
为了下面的分析,需要提前定义一些符号:
设 S = ⋃ i = 1 M S i S=\bigcup_{i=1}^MS_i S=⋃i=1MSi,其中子集 S i S_i Si是对于 X i X_i Xi采集的样本集合。根据概率论的基础知识, S i S_i Si中的样本之间服从iid条件(独立同分布)。故:
E { X i } = E { μ i } ≈ μ i ( S ) = d e f 1 ∣ S i ∣ ∑ s ∈ S i s \mathbb{E}\{X_i\}=\mathbb{E}\{\mu_i\}\approx\mu_i(S) \overset{def}{=}\frac{1}{|S_i|}\sum_{s\in S_i}s E{
Xi}=E{
μi}≈μi(S)=def∣Si∣1s∈Si∑s
u i ( S ) u_i(S) ui(S)是 E { X i } \mathbb{E}\{X_i\} E{
Xi}的无偏估计,我们都知道误差取决预bias和var,因此在这种情况下想要降低error,就得通过继续采集样本来降低var。
这一节的末尾作者提了下概率论中的基础概念:概率密度PDF以及累积分布函数CDF,两者是求导积分的关系。
定义:
F i ( x ) = ∫ − ∞ x f i ( x ) d x m a x i E { X i } = m a x i ∫ − ∞ ∞ x f i ( x ) d x F_i(x)=\int_{- \infty}^x f_i(x)\mathrm{d}x \\max_iE\{X_i\} = max_i\int_{-\infty}^{\infty}xf_i(x) \mathrm{d}x Fi(x)=∫−∞xfi(x)dxmaxiE{
Xi}=maxi∫−∞∞xfi(x)dx
2.1 The single Estimator
Q-learning就是使用单估计器来估计Q真值的。
接下来作者就开始分析单估计器是如何估计式(3)的。
其实正如上面分析那样,单估计的原理就是借鉴矩估计法:
max i E { X i } = max i E { μ i } ≈ max i μ i ( S ) (4) \mathop{\max_i}\mathbb{E}\{X_i\}=\mathop{\max_i}\mathbb{E}\{\mu_i\}\approx \mathop{\max_i}\mu_i(S) \tag{4} imaxE{
Xi}=imaxE{
μi}≈imaxμi(S)(4)
但是呢,虽然矩估计 E { X i } = E { μ i } ≈ μ i ( S ) \mathbb{E}\{X_i\}=\mathbb{E}\{\mu_i\}\approx\mu_i(S) E{
Xi}=E{
μi}≈μi(S)是无偏估计等式,但是式(4)对目标的估计却不是无偏的,乍一看无非从矩估计法外面加个 m a x max max而已,很合理的逻辑,但已不是无偏估计了,而是有偏估计,这也就是单估计器因 m a x max max产生过估计的原因。下面会证明估计会产生正向偏差。
证明过程:
设 μ i \mu_i μi的PDF为 f i μ f_i^\mu fiμ。则 max i u i \mathop{\max_i}u_i maxiui的PDF为 f m a x μ f^\mu_{max} fmaxμ,CDF为 F m a x μ F^\mu_{max} Fmaxμ
故 F m a x μ ( x ) = P ( m a x i μ i ≤ x ) = ∏ i = 1 M P ( μ i ≤ x ) = d e f ∏ i = 1 M F i μ ( x ) F^\mu_{max}(x)=\mathbf{P}(max_i\mu_i\leq x)=\prod^M_{i=1}\mathbf{P}(\mu_i\leq x) \overset{def}{=}\prod^M_{i=1}F^\mu_i(x) Fmaxμ(x)=P(maxiμi≤x)=∏i=1MP(μi≤x)=def∏i=1MFiμ(x)。
继续,
m a x i μ i ( S ) max_i\mu_i(S) maxiμi(S)是 E { m a x i μ i } = ∫ − ∞ ∞ x f m a x μ ( x ) d x \mathbb{E}\{max_i\mu_i\}=\int^\infty_{-\infty}xf^\mu_{max}(x)\mathrm{d}x E{
maxiμi}=∫−∞∞xfmaxμ(x)dx的无偏估计(这个地方作者直接给的结论,至于为啥这是无偏估计,我不知道咋证明,有知道的麻烦告知,这里就当个结论来记吧) 。
单估计器过估计的关键:
E { max i μ j } = ∫ − ∞ ∞ x d d x ∏ i = 1 M F i μ ( x ) d x = ∑ j M ∫ − ∞ ∞ x f j μ ( s ) ∏ i ≠ j M F i μ ( x ) d x (5) \mathbb{E}\{\mathop{\max_i}\mu_j\}=\int^\infty_{-\infty}x\frac{d}{\mathrm{d}x}\prod^M_{i=1}F_i^\mu(x)\mathrm{d}x \\=\sum^M_j\int^\infty_{-\infty}xf^\mu_j(s)\prod^M_{i\neq j}F^\mu_i(x)\mathrm{d}x \tag{5} E{
imaxμj}=∫−∞∞xdxdi=1∏MFiμ(x)dx=j∑M∫−∞∞xfjμ(s)i=j∏MFiμ(x)dx(5)
Note:
从这个式(5)可以看出, ∑ i ≠ j M F i μ \sum^M_{i\neq j}F_i^\mu ∑i=jM

最低0.47元/天 解锁文章
954





