| 第383行: |
第383行: |
| | | | |
| | </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。 |
| | | | |
| | ==4.DQN 的关键技术细节== | | ==4.DQN 的关键技术细节== |