用一个小游戏入门深度强化学习

本文介绍如何使用深度强化学习算法Deep Q-learning玩CartPole游戏,阐述强化学习的基本原理,包括Q-learning和Deep Q Network。通过一个简单的神经网络结构展示如何训练agent,利用Gym库与环境交互,并探讨DQN中的经验回放缓冲区和目标网络的概念。
摘要由CSDN通过智能技术生成

今天我们来用深度强化学习算法 deep Q-learning 玩 CartPole 游戏。

强化学习是机器学习的一个重要分支,通过强化学习我们可以创建一个 agent,让它与环境不断地互动,不断试错,自主地从中学习到知识,进而做出决策。

如图所示,agent 收到环境的状态 state,做出行动 action,行动后会得到一个反馈,反馈包括奖励 reward 和环境的下一个状态 next_state
这样一轮操作下来,agent 便可以积累经验,并且从中训练,学习该如何根据 state 选择合适的 action 来获得较好的 reward 以获得游戏的最终胜利。

推荐阅读:一文了解强化学习


在强化学习中有一个著名算法 Q-learning

推荐阅读:什么是 Q-learning

2013 年,Google DeepMind 发表了论文 Playing Atari with Deep Reinforcement Learning,开辟了一个新的领域,深度学习和强化学习的结合,即深度强化学习。 其中介绍了 Deep Q Network,这个深度强化学习网络可以让 agent 仅仅通过观察屏幕就能学会玩游戏,不需要知道关于这个游戏的任何信息。

在 Q-Learning 算法中,是通过一个 Q 函数,来估计对一个状态采取一个行动后所能得到的奖励 Q(s,a),
在 Deep Q Network 中,是用一个神经网络来估计这个奖励。


接下来我们用一个很简单的游戏来看 Deep Q Network 是如何应用的。

CartPole 这个游戏的目标是要使小车上面的杆保持平衡

state 包含四个信息:小车的位置,车速,杆的角度,杆尖端的速度
agent 的行动 action 包括两种:向左推车,向右推车

  • 在每轮游戏开始时,环境有一个初始的状态,
  • agent 根据状态采取一个行动 action = agent.act(state)
  • 这个 action 使得游戏进入下一个状态 next_state,并且拿到了奖励 reward,next_state, reward, done, _ = env.step(action)
  • 然后 agent 会将之前的经验记录下来 agent.remember(state, action, reward, next_state, done)
  • 当经验积累到一定程度后,agent 就从经验中学习改进 agent.replay(batch_size)
  • 如果游戏结束了就打印一下所得分数,
    没有结束就更新一下状态后继续游戏 state = next_state

if __name__ == "__main__":
	
	#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值