永恒python怎么强化_学习莫烦PYTHON 强化学习课程(4.1 什么是DQN)

强化学习与神经网络

Deep Q Network(DQN),是融合了神经网络和Q-Learning的方法,这种方法被提出来是因为传统的表格形式的强化学习有一个问题存在。传统的表格形式的强化学习使用表格来存储每一个状态state和在这个state每个行为action所拥有的Q值,而当问题十分复杂时(如下围棋),状态十分之多,如果全用表格来存储的话,恐怕计算机内存再多都不够用,而且每次在这么大的表格中搜索对应的状态也是一件很耗时的事情。

针对这一问题,我们可以将状态和动作当作神经网络的输入,然后经过神经网络分析得到动作的Q值,这样我们就没必要在表格中记录 Q 值, 而是直接使用神经网络生成 Q 值;还有一种形式,只输入状态值,输出所有的动作值,然后按照Q-Learning的原则,直接选择拥有最大值的动作当作下一步要做的动作,如下图所示。

神经网络的作用

更新神经网络

接下来我们基于第二种神经网络来分析, 我们知道, 神经网络是要被训练才能预测出准确的值. 那在强化学习中, 神经网络是如何被训练的呢?首先, 我们需要 a1, a2 正确的Q值, 这个 Q 值我们就用之前在 Q-Learning 中的 Q 现实来代替. 同样我们还需要一个 Q估计来实现神经网络的更新. 所以神经网络的的参数就是老的NN参数加学习效率 alpha 乘以 Q 现实 和 Q 估计的差距.我们整理一下.

我们通过 NN 预测出Q(s2, a1) 和 Q(s2,a2) 的值, 这就是 Q 估计. 然后我们选取 Q估计中最大值的动作来换取环境中的奖励 reward. 而 Q 现实中也包含从神经网络分析出来的两个 Q 估计值, 不过这个 Q估计是针对于下一步在 s’ 的估计. 最后再通过刚刚所说的算法更新神经网络中的参数.但是这并不是 DQN 会玩电动的根本原因. 还有两大因素支撑着 DQN 使得它变得无比强大. 这两大因素就是 Experience replay 和 Fixed Q-targets.

DQN两大利器

两大利器

简单来说, DQN 有一个记忆库用于学习之前的经历. 在之前的简介影片中提到过, Q-Learning 是一种 off-policy离线学习法, 它能学习当前经历着的, 也能学习过去经历过的, 甚至是学习别人的经历. 所以每次 DQN 更新的时候,我们都可以随机抽取一些之前的经历进行学习. 随机抽取这种做法打乱了经历之间的相关性, 也使得神经网络更新更有效率. FixedQ-targets 也是一种打乱相关性的机理, 如果使用 fixed Q-targets, 我们就会在 DQN中使用到两个结构相同但参数不同的神经网络, 预测 Q 估计 的神经网络具备最新的参数, 而预测 Q 现实 的神经网络使用的参数则是很久以前的.有了这两种提升手段, DQN 才能在一些游戏中超越人类.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值