一、学习内容
3.基于神经网络方法求解RL
3.1函数逼近与神经网络
当状态空间非常庞大的时候,用Q表格来对Q-value进行评估,内存方面非常不现实。
因此可以加个w参数,改用值函数拟合的方法:
一个简单的例子如图所示,神经网络输出动作,定义损失函数,进行优化:
Q-learning的流程:
用神经网络:
3.2DQN算法解析
DQN的2大创新点在于:经验回放,和固定Q目标。分别是为了解决样本关联性和训练非平稳性问题。
经验回放,举个形象例子,前台小兵采样预测,S、A、R、S放入经验池,后台军师从经验池中进行学习
固定Q目标,就是隔一段时间拷贝一次到target网络,而不是每次都更新,增强训练的稳定性。
DQN算法整体流程如下:
画成流程图更方便理解:
写代码的时候则可以参考这个架构:
3.3PARL中DQN代码
DQN中agent的model可以这么定义:
DQN的算法可以这么来操作model,定义超参数:
固定Q目标、隔段时间同步,则可以定义sync函数:
predict()
learn()
agent的learn和build_programm()函数:
用于学习的sample()和predict()函数:
3.4DQN训练展示、总结
CartPole训练的例子:
训练流程:
训练代码:
测试代码:
PARL常用的API:
第3课的总结~~~
课后练习,Montain-Car的例子: