最近看论文时了解了一个新的机器学习分支-Deep Q-learning Netwokr(DQN),所以自己上网查找整理了一些此算法的基本概念及其细节实现的tips.
一.什么是DQN?
首先看名字可以知道,DQN是将DEEP LEARNING 和Q-learning相结合,所以先来简单介绍一下这两者的概念.
1.Q-learning
Q学习作为强化学习的分支,继承了强化学习的模型。如下图:
可以看出强化学习中存在一个基本的数值对(状态S,动作a),一开始环境处于S0状态,这时agent做出一个动作a0,环境受动作影响状态改变到S1并给agent一个反馈reward,告诉它你刚刚这个动作a0对我处于状态S0的影响是好是坏,相当于奖惩值,就这样不断循环直到事件结束.
Q学习算法中的Q(s,a)函数表示在状态s采取行动a并在之后采取最优动作策略的未来累计奖励(未来奖励是要打折扣的)。
而Q学习算法就是用贝尔曼公式不断的迭代更新Q函数,直到找到最优的策略。
2.深度学习中的神经网络
在上面的介绍中,可以看出Q学习需要使用表格来存储每一对(s,a)