更改
跳到导航
跳到搜索
←上一编辑
下一编辑→
Deep Q Network
(查看源代码)
2025年5月18日 (日) 16:48的版本
添加89字节
、
2025年5月18日 (日) 16:48
→DQN在pytorch中的简单完整实现
第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 的主要改进算法==
DeepQ
281
个编辑
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
集智百科
集智主页
集智斑图
集智学园
最近更改
所有页面
捐赠我们
帮助
工具
特殊页面
可打印版本