深度Q网络实战:从基础到双网络优化
1. 深度Q学习基础
深度Q学习(Deep Q-Learning)使用神经网络来近似状态值,相较于使用一组中间人工特征,它提供了更直接的模型。在一次状态转移中,训练深度Q网络(DQN)包含以下阶段:
1. 估计旧状态的Q值 :使用神经网络模型估计旧状态的Q值。
2. 估计新状态的Q值 :同样使用神经网络模型估计新状态的Q值。
3. 更新目标Q值 :利用奖励和新的Q值更新动作的目标Q值。若为终止状态,目标Q值更新为奖励值r。
4. 训练神经网络 :以旧状态作为输入,目标Q值作为输出,训练神经网络。通过梯度下降更新网络权重,从而能够根据给定状态预测Q值。
DQN显著减少了需要学习的状态数量,直接将输入状态映射到Q值,无需额外函数生成人工特征。
1.1 代码实现与训练过程
以下是一个简单的示例,展示了如何使用DQN解决Mountain Car问题:
import matplotlib.pyplot as plt
# 假设这里已经定义了total_reward_episode列表
plt.plot(total_reward_episode)
plt.title('Episode reward over time')
plt.xlabel('Episode')
plt.ylabel('Total reward')
plt.show()
超级会员免费看
订阅专栏 解锁全文
7万+

被折叠的 条评论
为什么被折叠?



