| 第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>←θ。 |
| | | | |