更改

添加4字节 、 2025年5月18日 (日) 17:00
第106行: 第106行:  
[[文件:Algorithmdqn.jpg|缩略图|算法流程]]
 
[[文件:Algorithmdqn.jpg|缩略图|算法流程]]
 
1. 初始化阶段
 
1. 初始化阶段
−
回放记忆库(Replay Memory):创建容量为N的经验存储库D,用于缓存历史转移数据。
+
*回放记忆库(Replay Memory):创建容量为N的经验存储库D,用于缓存历史转移数据。
−
动作-价值函数网络:
+
*动作-价值函数网络:
−
主网络Q:随机初始化网络参数θ,负责实时动作选择和价值估计。
+
**主网络Q:随机初始化网络参数θ,负责实时动作选择和价值估计。
−
目标网络Q<sup>−</sup>:初始参数θ<sup>−</sup>=θ,用于稳定化计算目标Q值。
+
**目标网络Q<sup>−</sup>:初始参数θ<sup>−</sup>=θ,用于稳定化计算目标Q值。
−
超参数设定:设置训练总回合数M、单回合最大步数T、目标网络同步频率C、折扣因子γ、探索率ϵ等。
+
**超参数设定:设置训练总回合数M、单回合最大步数T、目标网络同步频率C、折扣因子γ、探索率ϵ等。
    
2. 回合(Episode)循环
 
2. 回合(Episode)循环
第118行: 第118行:  
3. 时间步(Timestep)循环
 
3. 时间步(Timestep)循环
 
对每个时间步t=1,2,...,T执行:
 
对每个时间步t=1,2,...,T执行:
−
(1)动作选择:
+
*动作选择:
−
探索策略:以概率ϵ随机选择动作a<sub>t</sub>,促进环境探索。
+
**探索策略:以概率ϵ随机选择动作a<sub>t</sub>,促进环境探索。
−
利用策略:否则,根据主网络选择最优动作:a<sub>t</sub>=arg max<sub>a</sub> Q(ϕ(s<sub>t</sub>),a;θ)
+
**利用策略:否则,根据主网络选择最优动作:a<sub>t</sub>=arg max<sub>a</sub> Q(ϕ(s<sub>t</sub>),a;θ)
−
(2)执行与环境交互​​:
+
*执行与环境交互​​:
−
执行动作a<sub>t</sub>,获取奖励r<sub>t</sub>和下一帧图像x <sub>t+1</sub>。
+
**执行动作a<sub>t</sub>,获取奖励r<sub>t</sub>和下一帧图像x <sub>t+1</sub>。
−
预处理下一状态ϕ<sub>t+1</sub>=ϕ(s<sub>t+1</sub>)。
+
**预处理下一状态ϕ<sub>t+1</sub>=ϕ(s<sub>t+1</sub>)。
−
(3)​​存储转移数据​​:
+
*存储转移数据​​:
 
将转移元组(ϕ<sub>t</sub>,a<sub>t</sub>,r<sub>t</sub>,ϕ<sub>t+1</sub>)存入回放记忆库D。
 
将转移元组(ϕ<sub>t</sub>,a<sub>t</sub>,r<sub>t</sub>,ϕ<sub>t+1</sub>)存入回放记忆库D。
−
(4)经验回放与网络更新​​:
+
*经验回放与网络更新​​:
−
随机采样​​:从D中均匀抽取小批量转移(ϕ<sub>j</sub>,a<sub>j</sub>,r<sub>j</sub>,ϕ<sub>j+1</sub>)。
+
**随机采样​​:从D中均匀抽取小批量转移(ϕ<sub>j</sub>,a<sub>j</sub>,r<sub>j</sub>,ϕ<sub>j+1</sub>)。
−
*目标Q值计算​​: <math> y_{j} = r_{j} + /gamma /max_{a} Q^{-}(ϕ_{j+1}, a) </math>
+
**目标Q值计算​​: <math> y_{j} = r_{j} + /gamma /max_{a} Q^{-}(ϕ_{j+1}, a) </math>
−
*梯度下降​​: <math> ∇_{θ} 1/ {|B|} {/sum} (y_j-Q(ϕ_j,a_j;θ)^2 </math>
+
**梯度下降​​: <math> ∇_{θ} 1/ {|B|} {/sum} (y_j-Q(ϕ_j,a_j;θ)^2 </math>
−
(5)目标网络同步​​:
+
*目标网络同步​​:
 
每隔C步将主网络参数θ复制至目标网络Q<sup>-</sup>,即θ<sup>-</sup>←θ。
 
每隔C步将主网络参数θ复制至目标网络Q<sup>-</sup>,即θ<sup>-</sup>←θ。
  
281

个编辑