更改

跳到导航 跳到搜索
添加89字节 、 2025年5月18日 (日) 16:48
第391行: 第391行:     
==DQN在pytorch中的简单完整实现==
 
==DQN在pytorch中的简单完整实现==
 +
该代码基于深度Q网络(DQN)算法,是一个简单的使用DQN解决OpenAI Gym中的经典控制任务CartPole-v1的完整例子。任务目标是控制小车左右移动,使竖直杆子尽可能长时间保持直立。智能体通过4维状态(小车位置、速度、杆子角度及角速度)感知环境,输出离散动作(左移/右移),最终实现稳定平衡超过500步的满分表现。
 +
算法实现​​
 +
​​Q值网络​​:
 +
使用三层全连接神经网络(输入4维→128→128→输出2维)近似Q值函数,输出左右移动的动作价值。
 +
目标网络与主网络分离,定期同步参数以稳定训练。
 +
​​经验回放​​:
 +
存储10,000条历史转移样本(状态、动作、奖励、下一状态、终止标志),训练时随机采样64条数据打破时序相关性。
 +
​​训练机制​​:
 +
ε-贪婪策略动态衰减(初始ε=1.0,衰减率0.995,最低ε=0.01),平衡探索与利用。
 +
基于贝尔曼方程计算目标Q值,通过均方误差损失更新网络,折扣因子γ=0.99。
 +
[[文件:Cartpole.jpg|缩略图|CartPole-v1]]
 +
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
import torch
 
import torch
第511行: 第523行:     
</syntaxhighlight>
 
</syntaxhighlight>
−
该代码基于深度Q网络(DQN)算法,解决OpenAI Gym中的经典控制任务CartPole-v1。任务目标是控制小车左右移动,使竖直杆子尽可能长时间保持直立。智能体通过4维状态(小车位置、速度、杆子角度及角速度)感知环境,输出离散动作(左移/右移),最终实现稳定平衡超过500步的满分表现。
  −
算法实现​​
  −
​​Q值网络​​:
  −
使用三层全连接神经网络(输入4维→128→128→输出2维)近似Q值函数,输出左右移动的动作价值。
  −
目标网络与主网络分离,定期同步参数以稳定训练。
  −
​​经验回放​​:
  −
存储10,000条历史转移样本(状态、动作、奖励、下一状态、终止标志),训练时随机采样64条数据打破时序相关性。
  −
​​训练机制​​:
  −
ε-贪婪策略动态衰减(初始ε=1.0,衰减率0.995,最低ε=0.01),平衡探索与利用。
  −
基于贝尔曼方程计算目标Q值,通过均方误差损失更新网络,折扣因子γ=0.99。
      
==DQN 的主要改进算法==
 
==DQN 的主要改进算法==
281

个编辑

导航菜单