一、传统强化学习算法的瓶颈
传统的Q-Learning算法,会用一个Q表存储 每个状态state和这个state种的每个行为action所对应的Q值。而当今问题太复杂,状态可以非常多,比如下围棋,如果只用表格存储,那么会占用大量内存,并且搜索非常耗时。
二、DQN(Deep Q Network)
有如下两种方式:
- 将状态和动作作为神经网络的输入,通过计算,得到对应的Q值。
- 将状态作为神经网络的输入,通过计算,得到所有的动作对应的Q值。
现在以第二种为例,讲解DQN的原理。
三、Experience replay和Fixed Q-targets
但是这不是DQN的全部,还有两种有效的手段,提升DQN的性能。
Experience replay: DQN有个强大的记忆库,用于学习曾经的经历,Q-Learning是离线学习法,可以学习自己的经历,也可以学习别人的经历。每次DQN更新时可以随机抽取一些经历进行学习,这种随机抽取的方法打乱了经历之间的相关性,使得神经网络更有效。
Fixed Q-targets: 这也是一种打乱相关性的方式,我们会使用到两个结构相同但是参数不同的神经网络。