写在前面
本次课程是参加百度飞桨7日打卡营活动的第三天笔记。
课程链接:https://aistudio.baidu.com/aistudio/education/group/info/1335
主要内容:函数逼近方法
实践:DQN
上节课补充内容
一、Q表格存在的问题与改进
1.表格只能适用于可数的情况,但是实际情况中,可能的情况是不可数的。
2.可以用到 值函数近似Q表格 。
3.神经网络
神经网络简单理解就是一个黑盒子,你只管输入,经过神经网络会给你一个输出。
神经网络的例子:
二、DQN:使用神经网络求解RL问题的经典算法
DQN的本质还是Q-learning,DQN做的改进就是直接把 Q表格 换成了 神经网络。
类比监督学习的神经网络,我们一般是计算预测值和标签值的loss,然后反向传播利用优化器以最小化loss为目标不断更新参数。
三、DQN 两大创新点
1.经验回放
优点:
- 打乱样本关联性
- 提高样本利用率,神经网络更加有效率
2.固定Q目标
理解下,我们的目标是使预测逼近真实,监督学习中,输出预测值,去逼近真实值,这里的真实值是固定的,因此稳定性好。
但是我们DQN的真实值,事实上也是经过计算得出的,会有一定的变化,因此我们可以将它在一段时间内固定住来逼近调整参数。(以练习射箭作为例子,兔子是动的,我们换成靶子来训练)
四、DQN的原理
在 PARL 中嵌套式的架构中,可以是PARL很方便地用在各类应用场景中。
五、DQN的实现
CartPole 实验
CartPole 实验相当于强化学习的 “ hello world ”
六、总结
(课后作业感兴趣可以自己做一做,跑一跑)
课后作业
请按照notebook中说明,完成4处代码的补充和调试。预期效果:test_reward > -140,分数越高越好。
1.课后作业AI Studio运行效果
参照课上老师讲解和 PARL/examples/tutorials 里面的内容,填写完整 Notebook,并运行代码。
2.课后作业本地运行效果
pip install paddlepaddle==1.6.3
pip install parl==1.3.1
pip install gym
git clone --depth=1 https://gitee.com/PaddlePaddle/PARL.git # 下载PARL代码库
dir PARL # 查看代码库根目录
cd PARL #进入到 PARL 文件夹
## Step3 运行QuickStart
python examples/tutorials/lesson3/dqn/train.py