什么是 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