论文笔记之Double Q-learning

经典的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年HasseltNIPS上发表了Double Q-learning这篇论文。旨在通过引入Double Q-learning算法,以欠估计(underestimation)来替代Q-learning的过估计(overestimation)问题。或者说用低于真值的负估计来解决Q-learning高于真值的正估计问题。

这篇文章让我明白了之前犯得一个错误:误认为DQN中的过估计是因为NN本身的误差引起的(当然也有这个因素),但其实过估计问题主要是因为Q-learning算法本身就存在的,DQN由于基于Q-learning,所以会出现过估计。

Double Q-learning的价值

  1. 作为后续DDQN的基础,来解决连续状态,离散动作的RL问题过估计问题。
  2. 作为Double Q-learning的基础,来解决离散状态,离散动作RL问题过估计问题。
  3. 作为TD3算法的基础,用以解决DDPG算法中DQN部分过估计问题,来解连续动作下的RL问题。

Double Q-learning论文主要内容

  1. 分析了Q-learning算法的overestimation
  2. 引出了Double Q-learning去解决过估计问题,但是这个算法并不是准确估计的,而是本身会造成underestimation


Abstract
作者Hasselt指出:

  1. Q-learning因为存在最大化动作值函数而产生过估计问题。
  2. 提出了Double Q-learning来解决Q-learning这个缺陷。
  3. Double Q-learning本地也有缺陷:会产生欠估计(underestimation)问题。
  4. 作者通过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)=sPsas(Rsas+γamaxQ(s,a))=rt+γsPsasamaxQ(s,a)=Esρ(Rsas+γamaxQ(s,a))(2)

  1. 从期望中看出,Q-learning由于没有状态转移概率,所以只能通过采样的方式去逼近 E \mathbb{E} E,根据大数定律,无限次采样会达到均值。这里也看出model-free不同于model-based,其实通过n次的采样去做RL任务的。TD算法收敛的过程其实就是在构建一个MDP,通过采样不断去近似状态转移概率。
  2. γ \gamma γ两个作用:①相对未来,更看重眼前的利益,符合人脑的思维方式。②防止RL中出现的周期往复行为导致G太大,比如MC中,如果某次出现G太大,那么会使得算法的方差进一步拉大,增加了收敛的难度。
  3. 作者还提出了一些可以增加Q-learning收敛速度的论文,比如Delayed Q-learning,Phased Q-learning,Fitted Q-learning

Contributions:
作者提出一种双估计器,相比于基于单估计器的Q-learning而言,他不会产生过估计,但是会有欠估计。基于双估计思想与Q-learning,作者提出了Double Q-learning这种新算法。
接下去论文的组织顺序:

  1. 第2节:使用单、双估计器来近似一系列R.V.的期望的最大值。
  2. 第3节:提出Double Q-learning算法,并证明其收敛性。
  3. 第4节:根据实验来得出Double Q-learning的特性以及和Q-learning的比对。
  4. 第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

  1. 随机变量 X i X_i Xi的估计器用 μ i \mu_i μi表示。
  2. μ 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}
  3. 为了更好地理解这一节内容,你可以把 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)=defSi1sSis
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}=maxixfi(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μix)=i=1MP(μix)=defi=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=1MFiμ(x)dx=jMxfjμ(s)i=jMFiμ(x)dx(5)
Note:
从这个式(5)可以看出, ∑ i ≠ j M F i μ \sum^M_{i\neq j}F_i^\mu i=jMFiμ是单调递增的,且 x x x在积分内,因此这个整体的值有可能会很大,也暗示了过估计的可能。

根据这篇论文的补充材料(NIPS官网可寻)中的Lemma1所示
在这里插入图片描述
i.g.
E { max ⁡ i μ i } ≥ max ⁡ i E { μ i } \mathbb{E}\{\max_i\mu_i\}\ge \max_i\mathbb{E}\{\mu_i\} E{imaxμi}imaxE{μi}
单估计器通过采样,即 1 ∣ S i ∣ ∑ s ∈ S i s \frac{1}{|S_i|}\sum_{s\in S_i}s Si1sSis来估计我们的目标 max ⁡ i E { X i } \max_i\mathbb{E}\{X_i\} maxiE{Xi}。但是根据上述结论,这种采样方式是 E { max ⁡ i μ i } \mathbb{E}\{\max_i\mu_i\} E{maxiμi}的无偏估计,而根据Lemma1可知,单估计器对 max ⁡ i E { X i } \max_i\mathbb{E}\{X_i\} maxiE{Xi}的估计是有偏差的,且是正偏差,即过估计。因此,我们可以得出结论:单估计器对max的估计是有偏差的,且是正偏差,根本原因在于
E { max ⁡ i μ i } ≥ max ⁡ i E { μ i } \mathbb{E}\{\max_i\mu_i\}\ge \max_i\mathbb{E}\{\mu_i\} E{imaxμi}imaxE{μi}

2.2 The Double Estimator

接下来作者会用一种新的估计器去估计 m a x i E { X i } max_i\mathbb{E}\{X_i\} maxiE{Xi}。这个新的估计器叫Double estimator。他需要用到2个估计器 μ A = { μ 1 A , . . . , μ M A } \mu^A=\{\mu_1^A,...,\mu_M^A\} μA={μ1A,...,μMA}以及 μ B = { μ 1 B , . . . , μ M B } \mu^B=\{\mu_1^B,...,\mu_M^B\} μB={μ1B,...,μMB}。另外,类似于单估计器,定义:

  1. S = S A ∪ S B S=S^A\cup S^B S=SASB,且 S A ∩ S B = ∅ S^A\cap S^B=\varnothing SASB=
  2. μ i A ( S ) = 1 ∣ S i A ∣ ∑ s ∈ S i A s , μ i B ( S ) = 1 ∣ S i B ∣ ∑ s ∈ S i B s \mu^A_i(S)=\frac{1}{|S_i^A|}\sum_{s\in S_i^A}s,\mu^B_i(S)=\frac{1}{|S_i^B|}\sum_{s\in S_i^B}s μiA(S)=SiA1sSiAs,μiB(S)=SiB1sSiBs,各自样本都要服从iid条件。
  3. μ i A , μ i B \mu^A_i,\mu^B_i μiA,μiB仍是 X i X_i Xi的无偏估计,且两者相互独立,这个独立体现在各自采样时自己采自己的。双方估计器互相独立的好处在于有利于解耦,当在第j号估计器通过采样出现过估计时,只要在B中对应的第j号估计器通过采样得到的没有出现过估计,那么最后估计就不会出现正偏差;当B中第j号估计器会出现过估计时,只要A不要选出第j号,那么最后估计就不会出现正偏差。从此可见双估计器利用的就是双方采样的差异性大,随机性强,各自单估计的话出现结果的差异大,这就是上面第1条的原因。我们不妨从极端考虑,如果双方采样样本一模一样,那么解耦就没有意义了!
  4. M a x A ( S ) = d e f { j ∣ μ j A ( S ) = m a x i μ i A ( S ) } Max^A(S)\overset{def}{=}\{j|\mu^A_j(S)=max_i\mu_i^A(S)\} MaxA(S)=def{jμjA(S)=maxiμiA(S)}是一个保存最大 μ A ( S ) \mu^A(S) μA(S)对应估计器的序号。

显然对于 E { μ j B } = E { X j } \mathbb{E}\{\mu_j^B\}=\mathbb{E}\{X_j\} E{μjB}=E{Xj} j ∈ [ 1 , M ] j\in[1,M] j[1,M],意味着包括 j ∈ M a x A ( S ) j\in Max^A(S) jMaxA(S)

定义 a ∗ a^* a为最大化 μ A ( S ) \mu^A(S) μA(S)的那个估计器 μ a ∗ A \mu^A_{a^*} μaA,
i.g. μ a ∗ A ( S ) = d e f m a x i μ i A ( S ) \mu^A_{a^*}(S)\overset{def}{=}max_i\mu^A_i(S) μaA(S)=defmaxiμiA(S),显然 a ∗ ∈ M a x A ( S ) a^*\in Max^A(S) aMaxA(S)如果这个集合例有多个估计器,那就随机抽选一个估计器出来

接下来就可以引入Double估计器的核心思想
μ a ∗ B ( S ) \mu^B_{a^*}(S) μaB(S)这个采样值来作为 m a x i E { μ i B } max_i\mathbb{E}\{\mu_i^B\} maxiE{μiB}的估计值。通俗一点来讲就是,用A中的最大估计器对应的序号去寻找B中该序号对应的估计器,这个估计器就是我们需要的那个。
数学表达式:
max ⁡ i E { X i } = max ⁡ i E { μ i B } ≈ μ a ∗ B ( S ) (6) \max_i\mathbb{E}\{X_i\} = \max_i\mathbb{E}\{\mu_i^B\}\approx\mu^B_{a^*}(S) \tag{6} imaxE{Xi}=imaxE{μiB}μaB(S)(6)
Note:

  1. 虽然采用解耦2个估计器来估计目标,但其实本质还是利用了矩估计法。因此随着采样增多,估计的方差会不断减小,当采样无限次时, μ i A ( S ) = μ i B ( S ) = E { X i } \mu_i^A(S)=\mu_i^B(S)=\mathbb{E}\{X_i\} μiA(S)=μiB(S)=E{Xi},且式(6)最终将会收敛到一个正确的值,关于收敛性的证明后面将会以证明Double Q-learning收敛性来展现。

分析
如果PDF是连续的话(离散同理):
定义 P ( j = a ∗ ) = ∫ − ∞ ∞ P ( μ j A = x ) ∏ i ≠ j M P ( μ i A < x ) d x = d e f ∫ − ∞ ∞ f j A ( x ) ∏ i ≠ j M F i A ( x ) d x \mathbf{P}(j=a^*)=\int_{-\infty}^\infty\mathbf{P}(\mu_j^A=x)\prod^M_{i\neq j}\mathbf{P}(\mu_i^A<x)\mathrm{d}x \\\overset{def}{=}\int_{-\infty}^\infty f_j^A(x)\prod^M_{i\neq j}F_i^A(x)\mathrm{d}x P(j=a)=P(μjA=x)i=jMP(μiA<x)dx=deffjA(x)i=jMFiA(x)dx其中, f i A , F i A f_i^A,F_i^A fiA,FiA μ i A \mu_i^A μiA的PDF和CDF。这里 P ( μ j A = x ) \mathbf{P}(\mu_j^A=x) P(μjA=x)本来应该是为0的,这里参考了最大似然估计里面的处理方式,将其定义为概率密度 f A ( x ) f^A(x) fA(x)
又因为 μ a ∗ B ( S ) \mu^B_{a^*}(S) μaB(S) E { μ a ∗ B } \mathbb{E}\{\mu^B_{a^*}\} E{μaB}的无偏估计,故:
E { μ a ∗ B } = ∑ j M P ( j = a ∗ ) E { μ j B } = ∑ j M E { μ j B } ∫ − ∞ ∞ f j A ( x ) ∏ i ≠ j M F i A ( x ) d x (7) \mathbb{E}\{\mu^B_{a^*}\} = \sum^M_j\mathbf{P}(j=a^*)\mathbb{E}\{\mu_j^B\} \\=\sum^M_j\mathbb{E}\{\mu_j^B\} \int_{-\infty}^\infty f_j^A(x)\prod^M_{i\neq j}F_i^A(x)\mathrm{d}x \tag{7} E{μaB}=jMP(j=a)E{μjB}=jME{μjB}fjA(x)i=jMFiA(x)dx(7)
Note:

  1. M a x A ( S ) Max^A(S) MaxA(S)中可能存在多个 a ∗ a^* a
  2. P 之 和 为 1 \mathbf{P}之和为1 P1,因此 ∑ j M P ( j = a ∗ ) E { μ j B } \sum^M_j\mathbf{P}(j=a^*)\mathbb{E}\{\mu_j^B\} jMP(j=a)E{μjB}可以看成一个期望 E \mathbb{E} E。而期望是均值,一定小于其R.V.的最大值,即: E { μ a ∗ B } ≤ max ⁡ i E { μ i B } = max ⁡ i E { X i } \mathbb{E}\{\mu_{a^*}^B\}\leq \max_i\mathbb{E}\{\mu_i^B\}=\max_i \mathbb{E}\{X_i\} E{μaB}imaxE{μiB}=imaxE{Xi}这个式子告诉我们:你通过采用获得的 E { μ a ∗ B } \mathbb{E}\{\mu_{a^*}^B\} E{μaB}去估计目标的话,会低于目标值,即欠估计,或者说产生负偏差

上述的2不能算证明,接下来作者给出了类似于单估计器中的证明方式,正文的引理1以及其证明如下
在这里插入图片描述
证明中需要用到条件期望与全期望公式,过程与单估计器那个Lemma几乎一样,只不过多一个估计器 μ B \mu^B μB

3 Double Q-learning

这一节是将第2节的单双估计器用于实战—Q-learning算法中,用单估计器来解释Q-learning算法过估计的问题。然后引出基于双估计器的Double Q-learning算法。
在Q-learning算法中,对 ∀ ( s , a ) , Q ( s , a ) \forall(s,a),Q(s,a) (s,a),Q(s,a)都有其真值,基于单估计器思想,我们通过不断采样trans,用 Q ( s , a ) Q(s,a) Q(s,a)估计器(用Q表存储或者神将网络)使用TD算法来近似这个真值。其通过软更新的方式其实就是单估计器中借鉴矩估计法的思想,会对 m a x max max估计产生正偏差。具体的,Q-learning的更新公式如式(1)所示,TD算法是MC和DP的结合,TD算法的更新本质就是通过矩估计法得出Q值来近似Q真值。将 m a x a Q t ( s t + 1 , a ) max_aQ_t(s_{t+1},a) maxaQt(st+1,a)看成是 Q ( s , a ) Q(s,a) Q(s,a)的样本值,即:
Q 真 值 ( s , a ) ⇐ E { m a x a Q t ( s t + 1 , a ) } Q_{真值}(s,a)\Leftarrow \mathbb{E}\{max_aQ_t(s_{t+1},a)\} Q(s,a)E{maxaQt(st+1,a)}
但其实Q-learning算法更新的思想是用最大化下个状态的Q值来作为当前状态的Q值,即:
Q 真 值 ( s , a ) ≤ max ⁡ a E { Q t ( s t + 1 , a ) } Q_{真值}(s,a)\leq \max_a \mathbb{E}\{Q_t(s_{t+1},a)\} Q(s,a)amaxE{Qt(st+1,a)}
Note:
这里原文并没有详细说明Q真值是这样的形式,我个人理解是这样的:Q-learning使用TD方法去更新 Q Q Q值,是一种基于贝尔曼等式的更新方法(严格来说,时序差分是结合了MC和DP的一种综合性方法:):
Q π ( s , a ) = r + γ E s ′ , a ′ [ Q π ( s ′ , a ′ ) ] a ′ ∼ π ( s ′ ) , s ′ ∼ ρ π ( s ′ ) Q^\pi(s,a)=r+\gamma\mathbb{E}_{s',a'}[Q^\pi(s',a')]\\ a'\sim\pi(s'),s'\sim\rho^\pi(s') Qπ(s,a)=r+γEs,a[Qπ(s,a)]aπ(s),sρπ(s)Note:
这种双采样的期望写法是因为采样对象都是基于全局空间,根据贝尔曼等式,索性直接写成采样对 < s ′ , a ′ > <s',a'> <s,a>的形式。这种形式简洁易懂,更利于代码开发,TD3论文中就引用这种写法。当然也可以像DDPG论文写的那样:在这里插入图片描述两种写法都是可以的。

理想情况下,TD算法就这样的,但是由于必须通过采用来实现,因此只能说近似于上式,这里需要注意的是,Q-learning只是TD算法中的一种,也就是上式中的 π ( s ′ ) \pi(s') π(s)为贪婪策略。因为要说明Q-learning的缺陷,因此必须拿出标准的式子来做比较,简化上式:
Q 真 值 ( s , a ) ⇐ E a ∼ π { Q t ( s t + 1 , a ) } Q_{真值}(s,a)\Leftarrow \mathbb{E}_{a\sim\pi}\{Q_t(s_{t+1},a)\} Q(s,a)Eaπ{Qt(st+1,a)}
为了便于 m a x max max之间的比较,进一步给出如下关系:
E a ∼ π , s ′ ∼ ρ π ( s ′ ) { Q t ( s t + 1 , a ) } ≤ max ⁡ a E s ′ ∼ ρ π ( s ′ ) { Q t ( s t + 1 , a ) } \mathbb{E}_{a\sim\pi,s'\sim\rho^\pi(s')}\{Q_t(s_{t+1},a)\}\leq\max_a \mathbb{E}_{s'\sim\rho^\pi(s')}\{Q_t(s_{t+1},a)\} Eaπ,sρπ(s){Qt(st+1,a)}amaxEsρπ(s){Qt(st+1,a)}

(为了简化,接下来 E \mathbb{E} E的下标 s ′ ∼ ρ π ( s ′ ) s'\sim\rho^\pi(s') sρπ(s)将省略)
根据2.1节,将 μ i \mu_i μi看作 Q ( s t + 1 , a i ) Q(s_{t+1},a_i) Q(st+1,ai),则易知:
E { m a x a Q t ( s t + 1 , a ) } ≥ max ⁡ a E { Q t ( s t + 1 , a ) } \mathbb{E}\{max_aQ_t(s_{t+1},a)\}\ge \max_a \mathbb{E}\{Q_t(s_{t+1},a)\} E{maxaQt(st+1,a)}amaxE{Qt(st+1,a)}也就是说,我们辛苦采样而来的trans,然后去估计的 Q ( s , a ) Q(s,a) Q(s,a)会有正偏差,即过估计

我们从2.2节知道Double估计器可以解决过估计问题,因此将双估计器用在Q-learning上就得到了负偏差的Double Q-learning
Double Q-learning:
基于双估计器,要设置 Q A Q^A QA Q B Q^B QB两个Q函数。令 a ∗ = arg max ⁡ a Q ( s ′ , a ) a^*=\argmax_aQ(s',a) a=aargmaxQ(s,a)。这里我们不用 Q A ( s ′ , a ∗ ) = m a x a Q A ( s ′ , a ) Q^A(s',a^*)=max_aQ^A(s',a) QA(s,a)=maxaQA(s,a)去更新 Q A ( s , a ) Q^A(s,a) QA(s,a),而是用 Q B ( s ′ , a ∗ ) Q^B(s',a^*) QB(s,a)去更新 Q A ( s , a ) Q^A(s,a) QA(s,a)
Note:

  1. 同理我们用 Q A ( s ′ , b ∗ ) Q^A(s',b^*) QA(s,b)去更 Q B ( s , a ) Q^B(s,a) QB(s,a)
  2. 另外,两个估计器是互相独立的,也就是采样都是各自采各自的。

Double Q-learning的缺陷:欠估计
i . g . E { Q B ( s ′ , a ∗ ) } ≤ max ⁡ a E { Q A ( s ′ , a ∗ ) } i.g. \mathbb{E}\{Q^B(s',a^*)\}\leq\max_a\mathbb{E}\{Q^A(s',a^*)\} i.g.E{QB(s,a)}amaxE{QA(s,a)}

3.1 Convergence in the Limit

Note:

  1. 文章正文有Lemma1,Lemma2,Theorem1;补充材料有Lemma1;参考论文中有Theorem2,Theorem3。
  2. 整个证明过程会出现 F t ( s t , a t ) , F t Q ( s t , a t ) , F t A ( s t , a t ) , F t B ( s t , a t ) , F t B A ( s t , a t ) F_t(s_t,a_t),F_t^Q(s_t,a_t),F_t^A(s_t,a_t),F^B_t(s_t,a_t),F_t^{BA}(s_t,a_t) Ft(st,at),FtQ(st,at),FtA(st,at),FtB(st,at),FtBA(st,at)这几个 F \mathbf{F} F

Double Q-learning算法
在这里插入图片描述
本节是作者利用Lemma2对Theorem1证明,从而证明Double Q-learning算法的收敛性
引理2如下:
在这里插入图片描述
需要注意的是本论文中 ∥ ⋅ ∥ \lVert \cdot\rVert 代表最大范数(无穷范数)
定理如下:
在这里插入图片描述

证明过程图如下:
在这里插入图片描述
需要使用到Q-learning收敛性证明以及1个定理参考文献如下:

  1. Convergence of Stochastic Iterative Dynamic Programming Algorithms
  2. Q-learning

Note

  1. 引用Q-learning这篇文章主要需要注意以下的写法,这里 V ≠ V π V\ne V^\pi V=Vπ在这里插入图片描述
  2. 为了便于证明Double Q-learning,我把Convergence这篇文章里的Theorem1Theorem2添加进来,重命名为Theorem2Theorem3
  3. Theorem3中的 c c c表示实时奖励 r r r

在这里插入图片描述

Double Q-learning证明如下
。。。。。。

  1. 第①步:Q-learning收敛性证明在这里插入图片描述
    我们要用Theorem2来证明Theorem3,即Q-learning的 Q ( s t , a t ) Q(s_t,a_t) Q(st,at)能收敛至 Q ∗ ( s t , a t ) Q^*(s_t,a_t) Q(st,at)
    显然Theorem3可以轻松满足Theorem2,对于Theorem2(4),只需要在Theorem3(4)的基础上满足F可以是Q的线性函数即可推出(比较松的条件)。因此关键在于如何证明Theorem2的条件(3)
    首先定义: Δ t ( s , a ) = Q t ( s , a ) − Q ∗ ( s , a ) F t ( s , a ) = r + γ max ⁡ a Q t ( s ′ , a ) − Q ∗ ( s , a ) β t ( s , a ) = α t ( s , a ) \Delta_t(s,a)=Q_t(s,a)-Q^*(s,a) \\F_t(s,a)=r+\gamma\max_aQ_t(s',a)-Q^*(s,a) \\\beta_t(s,a)=\alpha_t(s,a) Δt(s,a)=Qt(s,a)Q(s,a)Ft(s,a)=r+γamaxQt(s,a)Q(s,a)βt(s,a)=αt(s,a)
    Theorem3中的 V V V函数根据Q-learning这篇论文中的Q-learning更新公式变体,可知其实就是 m a x Q maxQ maxQ函数,因此:
    Q t + 1 ( s t , a t ) = ( 1 − α t ( s t , a t ) ) Q t ( s t , a t ) + α t ( s t , a t ) [ r + γ V t ( s t + 1 ) ] Q t + 1 ∗ ( s t , a t ) = Q t ∗ ( s t , a t ) = Q t ∗ ( s t , a t ) + α t ( s t , a t ) [ Q ∗ ( s t , a t ) − Q ∗ ( s t , a t ) ] 第 二 个 其 实 就 是 不 更 新 了 , 毕 竟 达 到 了 最 优 两 者 相 减 : Δ t + 1 = Q t + 1 ( s t , a t ) − Q t + 1 ∗ ( s t , a t ) = ( 1 − α t ( s t , a t ) ) Δ t + α t ( s t , a t ) [ r + γ V ( s t + 1 − Q ∗ ( s t , a t ) ) ] = ( 1 − α t ( s t , a t ) ) Δ t + α t ( s t , a t ) F t ( s , a ) Q_{t+1}(s_t,a_t)=(1-\alpha_t(s_t,a_t))Q_t(s_t,a_t)+\alpha_t(s_t,a_t)[r+\gamma V_t(s_{t+1})] \\Q^*_{t+1}(s_t,a_t)=Q^*_t(s_t,a_t)=Q^*_t(s_t,a_t)+\alpha_t(s_t,a_t)[Q^*(s_t,a_t)-Q^*(s_t,a_t)] \\第二个其实就是不更新了,毕竟达到了最优 \\两者相减: \\\Delta_{t+1}=Q_{t+1}(s_t,a_t)-Q^*_{t+1}(s_t,a_t) \\=(1-\alpha_t(s_t,a_t))\Delta_t+\alpha_t(s_t,a_t)[r+\gamma V(s_{t+1}-Q^*(s_t,a_t))] \\=(1-\alpha_t(s_t,a_t))\Delta_t+\alpha_t(s_t,a_t)F_t(s,a) Qt+1(st,at)=(1αt(st,at))Qt(st,at)+αt(st,at)[r+γVt(st+1)]Qt+1(st,at)=Qt(st,at)=Qt(st,at)+αt(st,at)[Q(st,at)Q(st,at)]Δt+1=Qt+1(st,at)Qt+1(st,at)=(1αt(st,at))Δt+αt(st,at)[r+γV(st+1Q(st,at))]=(1αt(st,at))Δt+αt(st,at)Ft(s,a)
    关键在于Theorem2的条件(3)证明:
    在这里插入图片描述

因此,在 P n P_n Pn环境下(MDP),Theorem3符合Theorem2的4个条件,故 Δ t + 1 = Q t + 1 ( s t , a t ) − Q t + 1 ∗ ( s t , a t ) → 0 \Delta_{t+1}=Q_{t+1}(s_t,a_t)-Q^*_{t+1}(s_t,a_t)\to0 Δt+1=Qt+1(st,at)Qt+1(st,at)0,i.g.Q-learning算法可以收敛。

接下来②-⑥步就是用Lemma2来证明Theorem1:
通过 ϵ − g r e e d y \epsilon-greedy ϵgreedy这样的探索策略去遍历各个状态动作对,理想状态是无限次,但是MDP必须是有限的,即有限的状态、动作空间。
在满足Theorem1的6个条件下定义:
P t = { Q 0 A , A 0 B , s 0 , a 0 , α 0 , r 1 , s 1 , . . . , s t , a t } X = S × A Δ t = Q t A − Q ∗ ζ = α F t ( s t , a t ) = r t + γ Q t B ( s t + 1 , a ∗ ) − Q t ∗ ( s t , a t ) , a ∗ = arg max ⁡ a Q A ( s t + 1 , a ) \mathbf{P}_t=\{Q_0^A,A^B_0,s_0,a_0,\alpha_0,r_1,s_1,...,s_t,a_t\} \\X=S\times A \\\Delta_t=Q_t^A-Q^* \\\zeta=\alpha \\F_t(s_t,a_t)=r_t+\gamma Q_t^B(s_{t+1},a^*)-Q_t^*(s_t,a_t),a^*=\argmax_aQ^A(s_{t+1},a) Pt={Q0A,A0B,s0,a0,α0,r1,s1,...,st,at}X=S×AΔt=QtAQζ=αFt(st,at)=rt+γQtB(st+1,a)Qt(st,at),a=aargmaxQA(st+1,a)
和第①步中证明一样,Lemma2的条件(1)(2)(4)很容易满足,条件(4)只需要Theorem1的(6)即可推出。关键在于条件(3)的推导,在接下来的证明过程中国,这个条件(3)需要被证明2次

  1. 第②步:证明 Δ t B A → 0 \Delta_t^{BA}\to 0 ΔtBA0
    重新定义 F t ( s t , a t ) = F t Q ( s t , a t ) + γ ( Q t B ( s t + 1 , a ∗ ) − Q t A ( s t + 1 , a ∗ ) ) F t Q = r t + γ Q t A ( s t + 1 , a ∗ ) − Q t ∗ ( s t , a t ) 其 中 c t = γ ( Q t B ( s t + 1 , a ∗ ) − Q t A ( s t + 1 , a ∗ ) ) Δ t B A = Q t B − Q t A F_t(s_t,a_t)=F_t^Q(s_t,a_t)+\gamma(Q_t^B(s_{t+1},a^*)-Q_t^A(s_{t+1},a^*)) \\F_t^Q=r_t+\gamma Q_t^A(s_{t+1},a^*)-Q_t^*(s_t,a_t) \\其中c_t=\gamma (Q^B_t(s_{t+1},a^*)-Q^A_t(s_{t+1},a^*)) \\\Delta_t^{BA}=Q_t^B-Q_t^A Ft(st,at)=FtQ(st,at)+γ(QtB(st+1,a)QtA(st+1,a))FtQ=rt+γQtA(st+1,a)Qt(st,at)ct=γ(QtB(st+1,a)QtA(st+1,a))ΔtBA=QtBQtA
    Δ t B A \Delta_t^{BA} ΔtBA的更新取决于更新 Q A Q^A QA还是 Q B Q^B QB
    当更新 Q A Q^A QA时: Q t + 1 B ( s t , a t ) = Q t B ( s t , a t ) Q t + 1 A ( s t , a t ) = Q t A ( s t , a t ) + α t ( s t , a t ) ( r + γ Q B ( s t + 1 , a ∗ ) − Q t A ( s t , a t ) ) 两 式 相 减 : Δ t + 1 B A ( s t , a t ) = Δ t B A ( s t , a t ) − α t ( s t , a t ) F t A ( s t , a t ) 其 中 F t A ( s t , a t ) = r + γ Q B ( s t + 1 , a ∗ ) − Q t A ( s t , a t ) Q_{t+1}^B(s_t,a_t)=Q^B_t(s_t,a_t)\\ Q^A_{t+1}(s_t,a_t)=Q^A_t(s_t,a_t)+\alpha_t(s_t,a_t)(r+\gamma Q^B(s_{t+1},a^*)-Q^A_t(s_t,a_t)) \\两式相减:\Delta_{t+1}^{BA}(s_t,a_t)=\Delta_t^{BA}(s_t,a_t)-\alpha_t(s_t,a_t)F_t^A(s_t,a_t) \\其中F_t^A(s_t,a_t)=r+\gamma Q^B(s_{t+1},a^*)-Q^A_t(s_t,a_t) Qt+1B(st,at)=QtB(st,at)Qt+1A(st,at)=QtA(st,at)+αt(st,at)(r+γQB(st+1,a)QtA(st,at))Δt+1BA(st,at)=ΔtBA(st,at)αt(st,at)FtA(st,at)FtA(st,at)=r+γQB(st+1,a)QtA(st,at)
    同理,当更新 Q B Q^B QB时:
    Δ t + 1 B A ( s t , a t ) = Δ t B A ( s t , a t ) + α t ( s t , a t ) F t B ( s t , a t ) 其 中 F t B ( s t . a t ) = r + γ Q A ( s t + 1 , a ∗ ) − Q t B ( s t , a t ) \Delta_{t+1}^{BA}(s_t,a_t)=\Delta_t^{BA}(s_t,a_t)+\alpha_t(s_t,a_t)F_t^B(s_t,a_t) \\其中F_t^B(s_t.a_t)=r+\gamma Q^A(s_{t+1},a^*)-Q^B_t(s_t,a_t) Δt+1BA(st,at)=ΔtBA(st,at)+αt(st,at)FtB(st,at)FtB(st.at)=r+γQA(st+1,a)QtB(st,at)
    两个 Δ 相 加 除 以 2 \Delta相加除以2 Δ2,并定义 ζ t B A = 1 2 α t \zeta_t^{BA}=\frac{1}{2}\alpha_t ζtBA=21αt
    则 Δ t + 1 B A ( s t , a t ) = ( 1 − ζ t ) Δ t B A ( s t , a t ) + ζ t F t B A ( s t , a t ) 其 中 F t B A ( s t , a t ) = γ ( Q t A ( s t + 1 , b ∗ ) − Q t B ( s t + 1 , a ∗ ) ) 则\Delta_{t+1}^{BA}(s_t,a_t)=(1-\zeta_t)\Delta_t^{BA}(s_t,a_t)+\zeta_tF_t^{BA}(s_t,a_t) \\其中F_t^{BA}(s_t,a_t)=\gamma(Q^A_t(s_{t+1},b^*)-Q^B_t(s_{t+1},a^*)) Δt+1BA(st,at)=(1ζt)ΔtBA(st,at)+ζtFtBA(st,at)FtBA(st,at)=γ(QtA(st+1,b)QtB(st+1,a)) 这个式子正好满足Lemma2,因此我们的目标就是让 Δ t B A → 0 \Delta_t^{BA}\to0 ΔtBA0
    定义: E { F t B A ( s t , a t ) ∣ P t } = γ E { Q t A ( s t + 1 , a ∗ ) − Q t B ( s t + 1 , a ∗ ) ∣ P t } \mathbb{E}\{F_t^{BA}(s_t,a_t)|\mathbf{P}_t\}=\gamma E\{Q^A_t(s_{t+1},a^*)-Q^B_t(s_{t+1},a^*)|\mathbf{P}_t\} E{FtBA(st,at)Pt}=γE{QtA(st+1,a)QtB(st+1,a)Pt}
    在这里插入图片描述
    因此: ∥ E { F t B A ∣ P t } ∥ ≤ γ ∥ Δ t B A ∥ \lVert\mathbb{E}\{F_t^{BA}|\mathbf{P}_t\}\rVert \leq \gamma\lVert\Delta_t^{BA}\rVert E{FtBAPt}γΔtBA也必定成立。根据Lemma2的条件(1)(2)(3)(4)可以证得: Δ t B A → 0 \Delta_t^{BA}\to0 ΔtBA0(这里可将 c t c_t ct看作0)
  2. 第③步:证明 c t → 0 c_t\to 0 ct0
    由第②步的 Δ t B A → 0 \Delta_t^{BA}\to0 ΔtBA0,可以得出 c t c_t ct最终会收敛至0
  3. 第④步:结合第①步,证明Lemma2的条件(3)成立
    第①步的证明可以推出 E { F t Q ∣ P t } ≤ γ ∥ Δ t ∥ \mathbb{E}\{F_t^Q|\mathbf{P_t}\}\leq\gamma \lVert\Delta_t\rVert E{FtQPt}γΔt成立,因为此时的 F t Q F_t^Q FtQ的设置正是Q-learning单估计的设置。
    接下来做个简单的处理: E { F t Q ∣ P t } + E { c t ∣ P t } ≤ γ ∥ Δ t ∥ + E { c t ∣ P t } ⇒ E { F t Q + c t ∣ P t } ≤ γ ∥ Δ t ∥ + E { c t ∣ P t } ⟹ 令 E { c t ∣ P t } = c t ∥ E { F t ( s t , a t ) ∣ P t } ∥ ≤ γ ∥ Δ t ∥ + c t \mathbb{E}\{F_t^Q|\mathbf{P}_t\}+\mathbb{E}\{c_t|\mathbf{P}_t\}\leq\gamma\lVert\Delta_t\rVert+\mathbb{E}\{c_t|\mathbf{P}_t\} \\ \Rightarrow \mathbb{E}\{F_t^Q+c_t|\mathbf{P}_t\}\leq\gamma\lVert\Delta_t\rVert+\mathbb{E}\{c_t|\mathbf{P}_t\} \\\overset{令\mathbb{E}\{c_t|\mathbf{P}_t\}=c_t}{\Longrightarrow}\lVert\mathbb{E}\{F_t(s_t,a_t)|\mathbf{P}_t\}\rVert\leq\gamma\lVert\Delta_t\rVert+c_t E{FtQPt}+E{ctPt}γΔt+E{ctPt}E{FtQ+ctPt}γΔt+E{ctPt}E{ctPt}=ctE{Ft(st,at)Pt}γΔt+ct即最难的Lemma2的条件(3)得证明。
  4. 第⑤步:证明 Δ t → 0 \Delta_t\to 0 Δt0
    首先要给出Lemma2的关于 Δ \Delta Δ的式子:
    在这里插入图片描述
    F t ( s t , a t ) F_t(s_t,a_t) Ft(st,at)上面第①步已经给出。)
    显然现在Lemma2的条件(1)(2)(3)(4)均符合,故可以推出:
    Δ t → 0 i . g . Q t A → Q ∗ \Delta_t\to 0 \\i.g.Q_t^A\to Q^* Δt0i.g.QtAQ
  5. 第⑥步:证明 Q A , Q B → Q ∗ Q^A,Q^B\to Q^* QA,QBQ
    在第②步中 Δ t B A → 0 \Delta_t^{BA}\to0 ΔtBA0,因此 Q t A , Q t B → Q ∗ Q_t^A,Q^B_t\to Q^* QtA,QtBQ即Double Q-earning能收敛至最优值函数 Q ∗ Q^* Q(不写具体的状态动作对就默认是对所有的 S × A S\times A S×A)。

4 Experiments

作者通过2个实验来说明2个事情

  1. Q-learning存在过估计现象。
  2. Q-learning和Double Q-learning的比较。

γ \gamma γ=0.95, α t ( s , a ) = 1 / n t ( s , a ) \alpha_t(s,a)=1/n_t(s,a) αt(s,a)=1/nt(s,a)以及 α t = 1 / n t ( s , a ) 0.8 \alpha_t=1/n_t(s,a)^{0.8} αt=1/nt(s,a)0.8(后者这种polynomial学习率设置在Lr for Q-learning中表现的更好。 n t ( s , a ) n_t(s,a) nt(s,a)是值函数更新的次数)
对于Double Q-learning, n t ( s , a ) n_t(s,a) nt(s,a)是分 n t A ( s , a ) n^A_t(s,a) ntA(s,a) n t B ( s , a ) n_t^B(s,a) ntB(s,a)的。

4.1 Roulette

这游戏涉及到轮盘赌桌游戏背景,就不介绍这个实验了。

4.2 Grid World

格子世界应该是离散状态、离散动作最常见的Env了。实验的设置是这样的:
模样如下图右下角所示,4个动作,9个状态,实时奖励r是+10或-12各自50%概率(故每步平均奖励-1),终点目标为+5。最优策略是4步,平均奖励为0.5。 ϵ = 1 / n ( s ) \epsilon=1/\sqrt{n(s)} ϵ=1/n(s) ,其中 n ( s ) n(s) n(s)为探索过的状态数。
行为策略采用 ϵ − g r e e d y \epsilon-greedy ϵgreedy策略的好处:

  1. 一来是Q-learning和Double Q-learning在收敛上的需要。
  2. 二来这种策略有利于Q-learning减少他的过估计问题。比如我们有四个Q值: Q ( s 1 , a 1 ) , Q ( s 1 , a 2 ) , Q ( s 1 , a 3 ) , Q ( s 1 , a 4 ) Q(s_1,a_1),Q(s_1,a_2),Q(s_1,a_3),Q(s_1,a_4) Q(s1,a1),Q(s1,a2),Q(s1,a3),Q(s1,a4)我们都知道Q-learning算法是基于单估计器的,因此更新会使得Q值逐步走向过估计。而根据式(5),过估计的正向bias可能会很大,因此比如说 Q ( s 1 , a 1 ) Q(s_1,a_1) Q(s1,a1)过估计了,那么 ϵ − g r e e d y \epsilon-greedy ϵgreedy中的贪心策略会使得这个动作 a 1 a_1 a1经常被选中,然后进行更新。这样做的好处就是其余的 a 2 , a 3 , a 4 a_2,a_3,a_4 a2,a3,a4被选中进行更新次数就少了,可以说走向过估计的程度变轻了,一定程度上减小了过估计

在这里插入图片描述
实验结果如上图左边的四张图所示,横坐标是epsiode的个数,纵坐标分别是每个epsiode的平均步长奖励以及初始状态 S \mathbf{S} S对应的最大动作值函数 Q ( S , a ) Q(\mathbf{S},a) Q(S,a)。实验总体被分成2个学习率设置下的训练过程,分别是衰减式和polynomial式。
分析:

  1. 从第二行的2张图来看,Q-learning存在过估计现象,Double Q-learning存在欠估计现象。其中横着的虚线是最优策略下的行径路线,也就是这个状态下的Q真值,为 5 γ 4 − ∑ k = 0 2 γ k ≈ 0.9 5\gamma^4-\sum_{k=0}^2 \gamma^k\approx0.9 5γ4k=02γk0.9
  2. 随着episode增大,即训练加深,2种算法都逐渐开始收敛,总体而言,2种算法相差不大。但是基于第一行的2张图,显然Double Q-learning的平均步长奖励更接近最优平均奖励0.5,表现比Q-learning好很多,也可以理解为Double Q-learning可以获得更多的奖励,打游戏能力更强。
  3. 对比两列,可以看出polynomial式的学习率设置可以在2种算法上都有促进作用。

5 Discussion

6 Conclusion

总结:

  1. 分析了Q-learning算法的overestimation。
  2. 引出了Double Q-learning去解决过估计问题,但是这个算法本身会造成underestimation。

展望:
Q-learning展现了过估计,Double Q-learning展现了欠估计。那么就有可能引出一种无偏差的off-policy算法,或者一种低方差的无偏蒙特卡洛on-policy算法。

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值