学习
实践
活动
专区
工具
TVP
写文章

深度强化学习-DQN

DQN全称 Deep Q Network. 中文大概是深度强化学习。之前以为深度学习是,深入学习的意思,虽然不知道具体怎么回事,但是感觉很吊很吊。。。其实就是强化学习的逻辑中引入了深度神经网络。后面会介绍原因

基础强化学习

承接之前的“Q-Learning基础强化学习算法”,上一篇提到基础强化学习就是建立一张大的Q值表,里面含有每个状态每个选择对应的Q值,在不断试错之后一张完整的Q值表就能指导后续的选择。

但是,Q-Learning的一个最基础的问题是,很多很多问题的状态太多,不能穷举。或者说,状态是连续的,不是离散的。 比如,汽车速度,0~100,那么其中的状态是无法穷举的。所以无法建立一张很大很大的Q-值表,而且就算建立起来,索引也会成为问题。

基于以上问题,我们能直观的看出,比如汽车速度 99.01和99.02 这两者实际上是差不多的,那么两者状态相近对应的选择也应该类似。

换句话说,我们需要一个工具。在我们提供一个感觉差不多的状态下,能给出一个感觉差不多的解。在之前一篇“机器学习的hello world”中提到神经网络就是专门解决这种凭感觉的问题。

DQN简介

DQN简单来说就是Q-Learning和深度神经网络的结合。

Q-Learning 再简单介绍下,就是收集一张涵盖所有状态下所有选择的Q值表。在训练完成后,我们输入状态,查询得到该状态下所有动作的Q值,选择最大的Q值。

那么神经网络的作用就是,输入状态值,输出该状态下所有的Q值。在我们试错训练很多次之后,神经网络将能够继承计算状态下 动作对应的Q值。

引入神经网络的第一个好处是,解决状态太多的问题,例如围棋盘面,例如汽车速度等等。 神经网络第二个好处是解决索引问题。 当我们建立一张很大的表格时,索引将非常费时。 但是对于神经网络来说,所有的信息都存储在每个神经元中,只要正向数据流转一遍就能得出结果。

总结

DQN其实就是Q-Learning和神经网络的结合。 神经网络对Q-Learning有很大的补充作用。并且,DQN可以用来玩小霸王游戏,DQN也是阿法狗Zero中很重要的一部分。

DQN简单应用

下面就是一个例子,OpenAI的一个游戏“Carpole”

Carpole就是大家小时候应该都玩过的游戏。一个棒子立在小车上,我们控制小车向左或者向右来保持棒子不倒。

简答来说,这个游戏就是,在某个状态下,我要采取什么动作? 所以在这个环境中我们的动作和状态是什么呢?

动作:向左 or 向右

状态:

车的位置

车的速度

杆子的角度(倾斜程度)

杆子顶端的速度

后续篇章,将继续讲解DQN算法及其应用代码。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180605G227ZI00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券