IT@程序员猿媛书房就是我的全世界【头号玩家公会】

什么是 Deep Q learning 算法

2020-03-11  本文已影响0人  不会停的蜗牛

上一篇文章中我们知道了 Q-learning 不适合状态空间很大的情况,因为它需要建立的 Q-table 对于较大维数的状态空间来说,计算是很难实现的,所以用 Deep Q Learning,即 Deep Learning + Reinforcement Learning 的方式来解决,下面是 deepmind 团队发表的 DQN 算法:

算法来自:Volodymyr Mnih,Playing Atari with Deep Reinforcement Learning

论文中的核心神经网络模型结构为:

图片来自:leonardoaraujosantos

模型的核心思想是:

模型每次的输入是状态 st,输出是 action 空间中,当前状态 st 所对应的各个 action 的 Q 值。

首先通过 epsilon 搜索法,选择当前要执行的 action t。

有了 st 和 at 之后,输入给 env 获得下一步状态和奖励,即 s t+1 和 rt。

将 st,at,rt,s t+1 存入历史记录 D。

从 D 中选择一小批数据 minibatch。

用算法中的公式计算出 yj,这个其实是估计出来的标签,因为我们并不知道 st 所对应的真实的 action 应该是什么,所以就用这种方法进行估计出目标标签,进而用于训练模型。

至此,我们有了模型的预测标签,以及估计出来的实际标签,于是可以用 MSE 作为误差函数,再应用梯度下降法训练模型的权重参数,当损失达到最小时,模型训练结束。


学习资料:
https://leonardoaraujosantos.gitbooks.io/artificial-inteligence/content/deep_q_learning.html

上一篇下一篇

猜你喜欢

热点阅读