强化学习 补充笔记(TD算法、Q学习算法、SARSA算法、多步TD目标、经验回放、高估问题、对决网络、噪声网络)
创始人
2024-02-11 09:53:07
0

学习目标:

深入了解马尔科夫决策过程(MDP),包含TD算法、Q学习算法、SARSA算法、多步TD目标、经验回放、高估问题、对决网络、噪声网络。基础部分见:强化学习 马尔科夫决策过程(价值迭代、策略迭代、雅克比迭代、蒙特卡洛)


学习内容:

0.基础符号

奖励:一局游戏中从开始到结束的所有奖励R1,...,Rt,...,Rn.R_1,...,R_t,...,R_n.R1​,...,Rt​,...,Rn​.
折扣率:γ∈[0,1]\gamma ∈[0,1]γ∈[0,1]
折扣回报:Ut=Rt+γ⋅Rt+1+γ2⋅Rt+2+...+γn−t⋅RnU_t=R_t+\gamma \cdot R_{t+1}+\gamma^2\cdot R_{t+2}+...+\gamma^{n-t}\cdot R_{n}Ut​=Rt​+γ⋅Rt+1​+γ2⋅Rt+2​+...+γn−t⋅Rn​
动作价值函数:Qπ(st,at)=E[Ut∣St=st,At=at]Q_\pi(s_t,a_t)=\mathbb{E}[U_t|S_t=s_t,A_t=a_t]Qπ​(st​,at​)=E[Ut​∣St​=st​,At​=at​]
最有动作价值函数:已知sts_tst​和ata_tat​,不论未来采取什么样的策略π\piπ,回报UtU_tUt​都不可能超过Q⋆Q_\starQ⋆​Q⋆(st,at)=max⁡πQπ(st,at),∀st∈S,at∈AQ_\star(s_t,a_t)=\max_\pi Q_\pi (s_t,a_t), \forall s_t \in \mathcal{S}, a_t \in \mathcal{A}Q⋆​(st​,at​)=πmax​Qπ​(st​,at​),∀st​∈S,at​∈A

1.时间差分(TD)算法

(1)基础

利用TD训练深度Q网络(DQN),已有四元组
已知贝尔曼(Bellman)最优方程
Q⋆(st,at)⏟Ut的期望 =ESt+1∼p(⋅∣st,at)[Rt+γ⋅max⁡A∈AQ⋆(St+1,A)⏟Ut+1的期望 ∣St=st,At=at]\underbrace{Q_{\star}\left(s_t, a_t\right)}_{U_t \text { 的期望 }}=\mathbb{E}_{S_{t+1} \sim p\left(\cdot \mid s_t, a_t\right)}[R_t+\gamma \cdot \underbrace{\max _{A \in \mathcal{A}} Q_{\star}\left(S_{t+1}, A\right)}_{U_{t+1} \text { 的期望 }} \mid S_t=s_t, A_t=a_t] Ut​ 的期望 Q⋆​(st​,at​)​​=ESt+1​∼p(⋅∣st​,at​)​[Rt​+γ⋅Ut+1​ 的期望 A∈Amax​Q⋆​(St+1​,A)​​∣St​=st​,At​=at​]
得到蒙特卡洛近似
Q⋆(st,at)≈rt+γ⋅max⁡a∈AQ⋆(st+1,a).Q_{\star}\left(s_t, a_t\right) \approx r_t+\gamma \cdot \max _{a \in \mathcal{A}} Q_{\star}\left(s_{t+1}, a\right) . Q⋆​(st​,at​)≈rt​+γ⋅a∈Amax​Q⋆​(st+1​,a).
带入神经网络参数
Q⋆(st,at;w)≈rt+γ⋅max⁡a∈AQ⋆(st+1,a;w).Q_{\star}\left(s_t, a_t;\boldsymbol{w}\right) \approx r_t+\gamma \cdot \max _{a \in \mathcal{A}} Q_{\star}\left(s_{t+1}, a;\boldsymbol{w}\right) . Q⋆​(st​,at​;w)≈rt​+γ⋅a∈Amax​Q⋆​(st+1​,a;w).

(2)流程

收集训练数据:我们可以用任何策略函数 π\piπ 去控制智能体与环境交互, 这个 π\piπ 就叫做行为策略 (Behavior Policy)。比较常用的是 ϵ\epsilonϵ-greedy 策略:
at={argmax⁡aQ(st,a;w),以概率 (1−ϵ);均匀抽取 A中的一个动作, 以概率 ϵ.a_t= \begin{cases}\operatorname{argmax}_a Q\left(s_t, a ; \boldsymbol{w}\right), & \text { 以概率 }(1-\epsilon) ; \\ \text { 均匀抽取 } \mathcal{A} \text { 中的一个动作, } & \text { 以概率 } \epsilon .\end{cases} at​={argmaxa​Q(st​,a;w), 均匀抽取 A 中的一个动作, ​ 以概率 (1−ϵ); 以概率 ϵ.​
把智能体在一局游戏中的轨迹记作:
s1,a1,r1,s2,a2,r2,⋯sn,an,rn.s_1, a_1, r_1, s_2, a_2, r_2, \cdots s_n, a_n, r_n . s1​,a1​,r1​,s2​,a2​,r2​,⋯sn​,an​,rn​.
把一条轨迹划分成 nnn 个 (st,at,rt,st+1)\left(s_t, a_t, r_t, s_{t+1}\right)(st​,at​,rt​,st+1​) 这种四元组, 存入数组, 这个数组叫做经验回放数组 (Replay Buffer)。
更新 DQN 参数 www : 随机从经验回放数组中取出一个四元组, 记作 (sj,aj,rj,sj+1)\left(s_j, a_j, r_j, s_{j+1}\right)(sj​,aj​,rj​,sj+1​) 。 设 DQN 当前的参数为 wnow \boldsymbol{w}_{\text {now }}wnow ​, 执行下面的步骤对参数做一次更新, 得到新的参数 wnew \boldsymbol{w}_{\text {new }}wnew ​ 。

  1. 对DQN做正向传播, 得到 Q\mathrm{Q}Q 值:
    q^j=Q(sj,aj;wnow )和 q^j+1=max⁡a∈AQ(sj+1,a;wnow ).\widehat{q}_j=Q\left(s_j, a_j ; \boldsymbol{w}_{\text {now }}\right) \quad \text { 和 } \quad \widehat{q}_{j+1}=\max _{a \in \mathcal{A}} Q\left(s_{j+1}, a ; \boldsymbol{w}_{\text {now }}\right) . q​j​=Q(sj​,aj​;wnow ​) 和 q​j+1​=a∈Amax​Q(sj+1​,a;wnow ​).
  2. 计算TD目标和TD误差:
    y^j=rj+γ⋅q^j+1和 δj=q^j−y^j.\widehat{y}_j=r_j+\gamma \cdot \widehat{q}_{j+1} \text { 和 } \delta_j=\widehat{q}_j-\widehat{y}_j . y​j​=rj​+γ⋅q​j+1​ 和 δj​=q​j​−y​j​.
  3. 对DQN做反向传播, 得到梯度:
    gj=∇wQ(sj,aj;wnow).\boldsymbol{g}_j=\nabla_{\boldsymbol{w}} Q\left(s_j, a_j ; \boldsymbol{w}_{\mathrm{now}}\right) . gj​=∇w​Q(sj​,aj​;wnow​).
  4. 做梯度下降更新DQN的参数:
    wnew ←wnow −α⋅δj⋅gj.\boldsymbol{w}_{\text {new }} \leftarrow \boldsymbol{w}_{\text {now }}-\alpha \cdot \delta_j \cdot \boldsymbol{g}_j . wnew ​←wnow ​−α⋅δj​⋅gj​.

智能体收集数据、更新DQN参数这两者可以同时进行。可以在智能体每执行一个动作 之后, 对 w\boldsymbol{w}w 做几次更新。也可以在每完成一局游戏之后, 对 w\boldsymbol{w}w 做几次更新。

2.Q学习算法

(1)基础

利用Q学习(TD的一种)训练深度Q网络(DQN),已有四元组
已知贝尔曼(Bellman)最优方程
Q⋆(st,at)⏟Ut的期望 =ESt+1∼p(⋅∣st,at)[Rt+γ⋅max⁡A∈AQ⋆(St+1,A)⏟Ut+1的期望 ∣St=st,At=at]\underbrace{Q_{\star}\left(s_t, a_t\right)}_{U_t \text { 的期望 }}=\mathbb{E}_{S_{t+1} \sim p\left(\cdot \mid s_t, a_t\right)}[R_t+\gamma \cdot \underbrace{\max _{A \in \mathcal{A}} Q_{\star}\left(S_{t+1}, A\right)}_{U_{t+1} \text { 的期望 }} \mid S_t=s_t, A_t=a_t] Ut​ 的期望 Q⋆​(st​,at​)​​=ESt+1​∼p(⋅∣st​,at​)​[Rt​+γ⋅Ut+1​ 的期望 A∈Amax​Q⋆​(St+1​,A)​​∣St​=st​,At​=at​]
公式左侧等效为:
Q~(st,at)\widetilde{Q}{(s_t, a_t)} Q​(st​,at​)
公式右侧蒙特卡洛近似等效为:
yt^≜rt+γ⋅max⁡a∈AQ~(st+1,a)\hat{y_t}\triangleq r_t +\gamma \cdot \max_{a \in \mathcal{A} }\widetilde{Q}{(s_{t+1}, a)} yt​^​≜rt​+γ⋅a∈Amax​Q​(st+1​,a)
更新表格Q~\widetilde{Q}Q​中(st,at)(s_t,a_t)(st​,at​)位置上的元素:
Q~(st,at)←(1−α)⋅Q~(st,at)+α⋅yt^\widetilde{Q}{(s_t, a_t)} \leftarrow (1-\alpha) \cdot \widetilde{Q}{(s_t, a_t)}+\alpha \cdot \hat{y_t} Q​(st​,at​)←(1−α)⋅Q​(st​,at​)+α⋅yt​^​

(2)流程

收集训练数据:同TD算法。
at={argmax⁡aQ~(st,a),以概率 (1−ϵ);均匀抽取 A中的一个动作, 以概率 ϵ.a_t= \begin{cases}\operatorname{argmax}_a \widetilde{Q}\left(s_t, a \right), & \text { 以概率 }(1-\epsilon) ; \\ \text {均匀抽取 } \mathcal{A} \text { 中的一个动作, } & \text { 以概率 } \epsilon .\end{cases} at​={argmaxa​Q​(st​,a),均匀抽取 A 中的一个动作, ​ 以概率 (1−ϵ); 以概率 ϵ.​

把一条轨迹划分成 nnn 个 (st,at,rt,st+1)\left(s_t, a_t, r_t, s_{t+1}\right)(st​,at​,rt​,st+1​) 这种四元组, 存入数组。
经验回放更新表格 Q~\tilde{Q}Q~​ : 随机从经验回放数组中抽取一个四元组, 记作 (sj,aj,rj,sj+1)\left(s_j, a_j, r_j, s_{j+1}\right)(sj​,aj​,rj​,sj+1​) 。

  1. 把当前表格 Q~now \widetilde{Q}_{\text {now }}Q​now ​ 中第 (sj,aj)\left(s_j, a_j\right)(sj​,aj​) 位置上的元素记作:
    q^j=Q~now (sj,aj).\widehat{q}_j=\tilde{Q}_{\text {now }}\left(s_j, a_j\right) . q​j​=Q~​now ​(sj​,aj​).
  2. 查看表格 Q~now \widetilde{Q}_{\text {now }}Q​now ​ 的第 sj+1s_{j+1}sj+1​ 行, 把该行的最大值记作:
    q^j+1=max⁡aQ~now (sj+1,a).\widehat{q}_{j+1}=\max _a \widetilde{Q}_{\text {now }}\left(s_{j+1}, a\right) . q​j+1​=amax​Q​now ​(sj+1​,a).
  3. 计算TD目标和TD误差:
    y^j=rj+γ⋅q^j+1,δj=q^j−y^j.\widehat{y}_j=r_j+\gamma \cdot \widehat{q}_{j+1}, \quad \delta_j=\widehat{q}_j-\widehat{y}_j . y​j​=rj​+γ⋅q​j+1​,δj​=q​j​−y​j​.
  4. 更新表格中 (sj,aj)\left(s_j, a_j\right)(sj​,aj​) 位置上的元素,得到更新后的表格:
    Q~new (sj,aj)←Q~now (sj,aj)−α⋅δj.\tilde{Q}_{\text {new }}\left(s_j, a_j\right) \leftarrow \tilde{Q}_{\text {now }}\left(s_j, a_j\right)-\alpha \cdot \delta_j . Q~​new ​(sj​,aj​)←Q~​now ​(sj​,aj​)−α⋅δj​.

收集经验与更新表格 Q~\widetilde{Q}Q​ 可以同时进行。每当智能体执行一次动作, 我们可以用经验回放 对 Q~\widetilde{Q}Q​ 做几次更新。也可以当完成一局游戏, 对 Q~\widetilde{Q}Q​ 做几次更新。

3.SARSA算法

(1)基础

已知贝尔曼方程
Qπ(st,at)=ESt+1,At+1[Rt+γ⋅Qπ(St+1,At+1)∣St=st,At=at]Q_\pi\left(s_t, a_t\right)=\mathbb{E}_{S_{t+1}, A_{t+1}}\left[R_t+\gamma \cdot Q_\pi\left(S_{t+1}, A_{t+1}\right) \mid S_t=s_t, A_t=a_t\right] Qπ​(st​,at​)=ESt+1​,At+1​​[Rt​+γ⋅Qπ​(St+1​,At+1​)∣St​=st​,At​=at​]
左侧等效为:q(st,at)q\left(s_t, a_t\right) q(st​,at​)

右侧根据蒙特卡洛近似为:y^t≜rt+γ⋅q(st+1,a~t+1)\widehat{y}_t \triangleq r_t+\gamma \cdot q\left(s_{t+1}, \tilde{a}_{t+1}\right) y​t​≜rt​+γ⋅q(st+1​,a~t+1​)
更新表格qqq中(st,at)(s_t,a_t)(st​,at​)位置上的元素:
q(st,at)←(1−α)⋅q(st,at)+α⋅y^tq\left(s_t, a_t\right) \leftarrow(1-\alpha) \cdot q\left(s_t, a_t\right)+\alpha \cdot \widehat{y}_t q(st​,at​)←(1−α)⋅q(st​,at​)+α⋅y​t​

(2)流程

五元组: (st,at,rt,st+1,a~t+1)\left(s_t, a_t, r_t, s_{t+1}, \tilde{a}_{t+1}\right)(st​,at​,rt​,st+1​,a~t+1​) 。SARSA算法学到的 qqq 依赖于策略 π\piπ, 这是因为五元组中的 a~t+1\tilde{a}_{t+1}a~t+1​ 是根据 π(⋅∣st+1)\pi\left(\cdot \mid s_{t+1}\right)π(⋅∣st+1​) 抽样得到的。
训练流程:设当前表格为 qnow q_{\text{now }}qnow ​, 当前策略为 πnow \pi_{\text {now }}πnow ​ 。 每一轮更新表格中的一个元素,把更新之后的表格记作 qnewq_{\text {new}}qnew​ 。

  1. 观测到当前状态 sts_tst​, 根据当前策略做抽样: at∼πnow (⋅∣st)a_t \sim \pi_{\text {now }}\left(\cdot \mid s_t\right)at​∼πnow ​(⋅∣st​) 。
  2. 把表格 qnow q_{\text {now }}qnow ​ 中第 (st,at)\left(s_t, a_t\right)(st​,at​) 位置上的元素记作:
    q^t=qnow (st,at).\widehat{q}_t=q_{\text {now }}\left(s_t, a_t\right) . q​t​=qnow ​(st​,at​).
  3. 智能体执行动作 ata_tat​ 之后, 观测到奖励 rtr_trt​ 和新的状态 st+1s_{t+1}st+1​ 。
  4. 根据当前策略做抽样: a~t+1∼πnow (⋅∣st+1)\tilde{a}_{t+1} \sim \pi_{\text {now }}\left(\cdot \mid s_{t+1}\right)a~t+1​∼πnow ​(⋅∣st+1​) 。注意, a~t+1\tilde{a}_{t+1}a~t+1​ 只是假想的动作,智能体不予执行。
  5. 把表格 qnow q_{\text {now }}qnow ​ 中第 (st+1,a~t+1)\left(s_{t+1}, \tilde{a}_{t+1}\right)(st+1​,a~t+1​) 位置上的元素记作:
    q^t+1=qnow (st+1,a~t+1).\widehat{q}_{t+1}=q_{\text {now }}\left(s_{t+1}, \tilde{a}_{t+1}\right) . q​t+1​=qnow ​(st+1​,a~t+1​).
  6. 计算 TD 目标和 TD 误差:
    y^t=rt+γ⋅q^t+1,δt=q^t−y^t.\widehat{y}_t=r_t+\gamma \cdot \widehat{q}_{t+1}, \quad \delta_t=\widehat{q}_t-\widehat{y}_t . y​t​=rt​+γ⋅q​t+1​,δt​=q​t​−y​t​.
  7. 更新表格中 (st,at)\left(s_t, a_t\right)(st​,at​) 位置上的元素:
    qnew (st,at)←qnow (st,at)−α⋅δt.q_{\text {new }}\left(s_t, a_t\right) \leftarrow q_{\text {now }}\left(s_t, a_t\right)-\alpha \cdot \delta_t . qnew ​(st​,at​)←qnow ​(st​,at​)−α⋅δt​.
  8. 用某种算法更新策略函数。该算法与 SARSA算法无关。

(3)对比

Q学习 近似 Q⋆异策略 可以使用 经验回放 SARSA 近似 Qπ同策略 不能使用 经验回放 \begin{array}{|c|c|c|c|} \hline \mathrm{Q} \text { 学习 } & \text { 近似 } Q_{\star} & \text { 异策略 } & \begin{array}{c} \text { 可以使用 } \\ \text { 经验回放 } \end{array} \\ \hline \text { SARSA } & \text { 近似 } Q_\pi & \text { 同策略 } & \begin{array}{l} \text { 不能使用 } \\ \text { 经验回放 } \end{array} \\ \hline \end{array} Q 学习  SARSA ​ 近似 Q⋆​ 近似 Qπ​​ 异策略  同策略 ​ 可以使用  经验回放 ​ 不能使用  经验回放 ​​​

至于神经网络形式的SARSA:在状态空间S\mathcal{S}S为无限集的情况下适用。只需将上述流程中的q函数增加一个神经网络的参数www,同时第七步更改为反向传播和梯度下降的求解过程,此处不再赘述。

4.多步TD目标

(1)基础

此时回报可以写作如下形式:
Ut=(∑i=0m−1γiRt+i)+γmUt+mU_t=\left(\sum_{i=0}^{m-1} \gamma^i R_{t+i}\right)+\gamma^m U_{t+m} Ut​=(i=0∑m−1​γiRt+i​)+γmUt+m​
由此可得动作值函数为:
Qπ(st,at)⏟Ut的期望 =E[(∑i=0m−1γiRt+i)+γm⋅Qπ(St+m,At+m)⏟Ut+m的期望 ∣St=st,At=at]\underbrace{Q_\pi\left(s_t, a_t\right)}_{U_t \text { 的期望 }}=\mathbb{E}[\left(\sum_{i=0}^{m-1} \gamma^i R_{t+i}\right)+\gamma^m \cdot \underbrace{Q_\pi\left(S_{t+m}, A_{t+m}\right)}_{U_{t+m} \text { 的期望 }} \mid S_t=s_t, A_t=a_t] Ut​ 的期望 Qπ​(st​,at​)​​=E[(i=0∑m−1​γiRt+i​)+γm⋅Ut+m​ 的期望 Qπ​(St+m​,At+m​)​​∣St​=st​,At​=at​]
左侧等效为:
qt^=q(st,at;w)\widehat{q_t}=q\left(s_t, a_t ; \boldsymbol{w}\right) qt​​=q(st​,at​;w)
右侧根据蒙特卡洛近似等效为:
y^t=(∑i=0m−1γirt+i)+γm⋅q(st+m,at+m;w)\widehat{y}_t=\left(\sum_{i=0}^{m-1} \gamma^i r_{t+i}\right)+\gamma^m \cdot q\left(s_{t+m}, a_{t+m} ; \boldsymbol{w}\right) y​t​=(i=0∑m−1​γirt+i​)+γm⋅q(st+m​,at+m​;w)
损失函数设置为:
L(w)≜12[q(st,at;w)−y^t]2L(\boldsymbol{w}) \triangleq \frac{1}{2}\left[q\left(s_t, a_t ; \boldsymbol{w}\right)-\widehat{y}_t\right]^2 L(w)≜21​[q(st​,at​;w)−y​t​]2
梯度下降为:
w←w−α⋅(q^t−y^t)⋅∇wq(st,at;w)\boldsymbol{w} \leftarrow \boldsymbol{w}-\alpha \cdot\left(\widehat{q}_t-\widehat{y}_t\right) \cdot \nabla_{\boldsymbol{w}} q\left(s_t, a_t ; \boldsymbol{w}\right) w←w−α⋅(q​t​−y​t​)⋅∇w​q(st​,at​;w)
流程与SARAS同理,略。

5.经验回放

(1)基础

定义:把智能体与环境交互的记录(即经验)储存到一个数组,事后反复利用这些经验训练智能体。这个数组被称为经验回放数组 (Replay Buffer)

优点:打破序列相关性。

局限:经验回放数组中的经验通常是过时的行为策略收集的,而我们真正想要学的目标策略不同于过时的行为策略。

(2)扩展

优先经验回放 (Prioritized Experience Replay) 是一种特殊的经验回放方法,它比普通的经验回放效果更好:既能让收敛更快,也能让收敛时的平均回报更高。优先经验回放给每个四元组一个权重,然后根据权重做非均匀随机抽样。

6.高估问题

(1)基础

Q 学习算法有一个缺陷:用 Q 学习训练出的 DQN 会高估真实的价值,而且高估通常是非均匀的。来源有两个:(1)自举导致的误差积累。(2)最大化导致高估。

(2)目标网络(缓和自举高估)

目标网络记作:
Q(s,a;w−)Q\left(s, a ; \boldsymbol{w}^{-}\right) Q(s,a;w−)
其神经网络结构与DQN完全相同,但w−w^-w−与www的值并不完全相同。

  1. 对DQN做正向传播,得到:
    q^j=Q(sj,aj;wnow ).\widehat{q}_j=Q\left(s_j, a_j ; \boldsymbol{w}_{\text {now }}\right) . q​j​=Q(sj​,aj​;wnow ​).
  2. 对目标网络做正向传播,得到
    q^j+1−=max⁡a∈AQ(sj+1,a;wnow−).\hat{q}_{j+1}^{-}=\max _{a \in \mathcal{A}} Q\left(s_{j+1}, a ; \boldsymbol{w}_{\mathrm{now}}^{-}\right) . q^​j+1−​=a∈Amax​Q(sj+1​,a;wnow−​).
  3. 计算TD目标和TD误差:
    y^j−=rj+γ⋅q^j+1和 δj=q^j−y^j.\widehat{y}_j^{-}=r_j+\gamma \cdot \widehat{q}_{j+1} \quad \text { 和 } \quad \delta_j=\widehat{q}_j-\widehat{y}_j . y​j−​=rj​+γ⋅q​j+1​ 和 δj​=q​j​−y​j​.
  4. 对DQN做反向传播,得到梯度 ∇wQ(sj,aj;wnow )\nabla_{\boldsymbol{w}} Q\left(s_j, a_j ; \boldsymbol{w}_{\text {now }}\right)∇w​Q(sj​,aj​;wnow ​) 。
  5. 做梯度下降更新DQN的参数:
    wnew ←wnow −α⋅δj⋅∇wQ(sj,aj;wnow ).\boldsymbol{w}_{\text {new }} \leftarrow \boldsymbol{w}_{\text {now }}-\alpha \cdot \delta_j \cdot \nabla_{\boldsymbol{w}} Q\left(s_j, a_j ; \boldsymbol{w}_{\text {now }}\right) . wnew ​←wnow ​−α⋅δj​⋅∇w​Q(sj​,aj​;wnow ​).
  6. 设 τ∈(0,1)\tau \in(0,1)τ∈(0,1) 是需要手动调的超参数。做加权平均更新目标网络的参数:
    wnew −←τ⋅wnew +(1−τ)⋅wnow −\boldsymbol{w}_{\text {new }}^{-} \leftarrow \tau \cdot \boldsymbol{w}_{\text {new }}+(1-\tau) \cdot \boldsymbol{w}_{\text {now }}^{-} wnew −​←τ⋅wnew ​+(1−τ)⋅wnow −​

(3)双Q学习法(解决最大化高估)

此处对比Q学习、目标网络、双Q学习法的区别,流程与上文(2)中类似:

Q学习算法
选择:即基于状态 sj+1s_{j+1}sj+1​, 选出一个动作使得 DQN 的输出最大化:
a⋆=argmax⁡a∈AQ(sj+1,a;w).a^{\star}=\underset{a \in \mathcal{A}}{\operatorname{argmax}} Q\left(s_{j+1}, a ; \boldsymbol{w}\right) . a⋆=a∈Aargmax​Q(sj+1​,a;w).
求值:即计算 (sj+1,a⋆)\left(s_{j+1}, a^{\star}\right)(sj+1​,a⋆) 的价值, 从而算出 TD 目标:
y^j=rj+Q(sj+1,a⋆;w).\widehat{y}_j=r_j+Q\left(s_{j+1}, a^{\star} ; \boldsymbol{w}\right) . y​j​=rj​+Q(sj+1​,a⋆;w).
目标网络
选择: a−=argmax⁡a∈AQ(sj+1,a;w−)\quad a^{-}=\underset{a \in \mathcal{A}}{\operatorname{argmax}} Q\left(s_{j+1}, a ; \boldsymbol{w}^{-}\right)a−=a∈Aargmax​Q(sj+1​,a;w−),
求值: yt−^=rt+Q(sj+1,a−;w−)\quad \widehat{y_t^{-}}=r_t+Q\left(s_{j+1}, a^{-} ; \boldsymbol{w}^{-}\right)yt−​​=rt​+Q(sj+1​,a−;w−).
双Q学习, 第一步的选择用DQN, 第二步的求值用目标网络:
选择: a⋆=argmax⁡a∈AQ(sj+1,a;w)\quad a^{\star}=\underset{a \in \mathcal{A}}{\operatorname{argmax}} Q\left(s_{j+1}, a ; \boldsymbol{w}\right)a⋆=a∈Aargmax​Q(sj+1​,a;w),
求值: y~t=rt+Q(sj+1,a⋆;w−)\quad \widetilde{y}_t=r_t+Q\left(s_{j+1}, a^{\star} ; \boldsymbol{w}^{-}\right)y​t​=rt​+Q(sj+1​,a⋆;w−).

对比
选择 求值 自举造成偏差 最大化造成偏差 Q学习 DQN DQN 严重 严重 Q学习+目标网络目标网络 目标网络 不严重 严重 双Q学习 DQN 目标网络 不严重 不严重 \begin{array}{|l|l|l|l|l|} \hline & \text { 选择 } & \text { 求值 } & \text { 自举造成偏差 } & \text { 最大化造成偏差 } \\ \hline \text { Q学习 } & \text { DQN } & \text { DQN } & \text { 严重 } & \text { 严重 } \\ \hline \text { Q学习+目标网络}& \text {目标网络 } & \text { 目标网络 } & \text { 不严重 } & \text { 严重 } \\ \hline \text { 双Q学习 } & \text { DQN } & \text { 目标网络 } & \text { 不严重 } & \text { 不严重 } \\ \hline \end{array}  Q学习  Q学习+目标网络 双Q学习 ​ 选择  DQN 目标网络  DQN ​ 求值  DQN  目标网络  目标网络 ​ 自举造成偏差  严重  不严重  不严重 ​ 最大化造成偏差  严重  严重  不严重 ​​

7.对决网络

(1)基础

(2)流程

8.噪声网络

(1)基础

(2)流程

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...