DQN

DQN 及其变种

原始 DQN

在状态空间较大或状态空间连续时无法通过 qq 表来表示动作价值函数,可以采取深度神经网络来拟合出 qq 函数 qw(s, a)q_{w}(s,\ a),其中用于拟合 qq 函数的神经网络被称为 Q 网络:

网络的输入为状态 sSs \in \mathcal{S},输出为动作价值向量 qw(s, a)RAq_{w}(s,\ a) \in \mathbb{R}^{|\mathcal{A}|}。Q 网络的损失函数即 TD 误差的平方,例如基于 Q-Learning 的 DQN 的优化问题为:

minw12ni=1b[qw(si, ai)(ri+γmaxaqw(si, a))]2\min_{w} \frac{1}{2n} \sum_{i = 1}^{b} \left[ q_{w}(s_{i},\ a_{i}) - \Big( r_{i} + \gamma \max_{a} q_{w}(s'_{i},\ a) \Big) \right]^{2}

Dueling Net

通过状态价值函数 v(s)v(s) 和动作价值函数 q(s, a)q(s,\ a) 定义优势函数 d(s, a)=q(s, a)v(s)d(s,\ a) = q(s,\ a) - v(s),最优优势函数为:

d(s, a)=q(s, a)v(s)d^{\star}(s,\ a) = q^{\star}(s,\ a) - v^{\star}(s)

最优优势函数满足:

maxad(s, a)=maxaq(s, a)v(s)=0\max_{a} d^{\star}(s,\ a) = \max_{a} q^{\star}(s,\ a) - v^{\star}(s) = 0

因此有 q(s, a)=v(s)+d(s, a)=v(s)+d(s, a)maxad(s, a)q^{\star}(s,\ a) = v^{\star}(s) + d^{\star}(s,\ a) = v^{\star}(s) + d^{\star}(s,\ a) - \max_{a} d^{\star}(s,\ a)。Dueling Net 不直接对动作价值 qq 进行建模,而是分别建模状态价值 vv 和优势函数 dd,再进行加和得到动作价值 qq

qw, α, β(s, a)=vw, α(s)+dw, β(s, a)q_{w,\ \alpha,\ \beta}(s,\ a) = v_{w,\ \alpha}(s) + d_{w,\ \beta}(s,\ a)

其中参数 ww 为 V 网络和 D 网络的共享参数,通常表现为用于提取特征的前几层网络层。由于以上建模方式会导致 vv^{\star}dd^{\star} 建模的不唯一性(v+C+dCv + C + d - C),因此利用最优优势函数的性质将加和改写为:

qw, α, β(s, a)=vw, α(s)+dw, β(s, a)maxadw, β(s, a)q_{w,\ \alpha,\ \beta}(s,\ a) = v_{w,\ \alpha}(s) + d_{w,\ \beta}(s,\ a) - \max_{a'} d_{w,\ \beta}(s,\ a')

在实际应用中还可以使用平均操作来代替最大化操作,实验证明这种方案的效果更好:

qw, α, β(s, a)=vw, α(s)+dw, β(s, a)1Aadw, β(s, a)q_{w,\ \alpha,\ \beta}(s,\ a) = v_{w,\ \alpha}(s) + d_{w,\ \beta}(s,\ a) - \frac{1}{|\mathcal{A}|} \sum_{a'} d_{w,\ \beta}(s,\ a')

对比标准的 DQN 来说,Dueling Net 能够更好地建模在某些状态下 q(s, a)q^{\star}(s,\ a) 受不同动作 aa 影响较小的环境,同时学习的状态价值函数 vv 会同时影响所有动作的 qq 值,更新效率较高。

Noisy Net

为了提升模型的鲁棒性,并且提升模型的探索性能,可以在 DRL 模型中加入噪声,将原有的参数表示为:

w=μ+σξw = \mu + \sigma \circ \xi

其中 μ\muσ\sigma 是需要学习的参数,参数的随机噪声之间相互独立并且服从标准正态分布 ξiN(0, 1)\xi_{i} \sim \mathcal{N}(0,\ 1)。例如对 DQN 加入噪声可以得到 Noisy DQN 模型,其中 ξ\xi 在每次交互和学习时都需要进行随机采样:

qw(s, a)qμ, σ; ξ(s, a)=qw=μ+σξ(s, a)q_{w}(s,\ a) \Rightarrow q_{\mu,\ \sigma;\ \xi}(s,\ a) = q_{w' = \mu + \sigma \circ \xi} (s,\ a)

与环境进行交互获取经验时不需要再使用 ϵ\epsilon-greedy 策略(本身带有随机性),可以直接采取行为策略:

at=π(st)arg maxaqμ, σ; ξ(st, a)a_{t} = \pi(s_{t}) \in \argmax_{a} q_{\mu,\ \sigma;\ \xi}(s_{t},\ a)

在训练时每次从经验回放缓冲区中随机抽样一个单步转移四元组 (s, a, r, s)(s,\ a,\ r,\ s'),利用 TD 误差计算梯度并更新参数 μ\muσ\sigma。而在训练完成进行决策时不再需要噪声,此时可以直接将 ξ\xi 取做 0,转化为标准的 DQN。


DQN
http://example.com/2024/07/15/DQN/
Author
木辛
Posted on
July 15, 2024
Licensed under