百度飞桨强化学习(3)

插话阅读知乎文章笔记

文章地址:
DQN 从入门到放弃1 DQN与增强学习
DQN 从入门到放弃2 增强学习与MDP
DQN 从入门到放弃3 价值函数与Bellman方程
DQN 从入门到放弃4 动态规划与Q-Learning
DQN从入门到放弃5 深度解读DQN算法
DQN从入门到放弃6 DQN的各种改进
DQN从入门到放弃7 连续控制DQN算法-NAF

在增强学习的世界,我们相信如果输入是确定的,那么输出也一定是确定的。试想一下,有一个机械臂在练习掷筛子,以掷出6点作为目标。但是如果无论机械臂如何调整其关节的角度及扭矩,掷出的点数永远是随机的,那么无论如何也不可能通过算法使机械臂达成目标。因此,增强学习算法要有用,就是相信在增强学习中每一次参数的调整都会对世界造成确定性的影响。

未完待续…哎开学了静下心学习的机会不多了呀~

神经网络方法求解RL

为什么引入神经网络

前面学习了Q表格求解RL,但是Q表格毕竟是动作种类和状态种类数量较少的情况,像如果用强化学习来训练小人走路那么关节动作的角度是无穷个状态的情况,这个时候就不能用Q表格来解决问题,需要使用值函数来做逼近处理。

Q表格缺点值函数近似的优点
表格可能占用极大的内存仅需存储有限的参数
当表格较大时,查表效率低状态泛化,相似的状态可以输出一样

DQN:使用神经网络求解RL问题的算法

本质:Q-learning
DQN算法两大创新点:

经验回放固定Q目标
解决序列决策的样本关联问题解决算法非平稳问题
解决样本利用率低的问题

解决序列决策的样本关联问题:

对于正常的监督学习的训练网络,样本之间是没有互相联系的关系的。但是强化学习是一个序列决策的问题,状态之间是相互连续的,因此需要打破数据间的关系。DQN利用off-policy的特点先存储了一批数据,然后打乱顺序从中选取一个小的batch的数据来更新网络这种方式既可以打乱数据间的相关性又可以使神经网络更有效率。

解决算法非平稳问题:

对于监督学习,输入x目的是让输出的y去逼近真实的y,这个真实值是固定的稳定的。但是强化学习的真实y是不定的,DQN让Q_target固定住然后定期拷贝神经网络的同步参数。—没咋听懂,核心应该是固定住Q目标

经验回放源码:
在这里插入图片描述

DQN代码实现

model.py:
在这里插入图片描述
algorithm.py
在这里插入图片描述

def sync_target(self):
	self.model.sync_weights_to(self.target_model)

def predict(self,obs):
	return self.model.value(obs)

在这里插入图片描述

  • 首先拿到model.py里面传过来的模型
  • 将该模型复制一份给target_model
  • 使用sync_target函数将model的参数同步到target_model网络
  • 使用predict函数返回网络输出值

。。。。。。有点看不明白了,先看实践

单摆游戏

运行:PARL\examples\tutorials\lesson3\dqn\train.py文件即可
在这里插入图片描述

代码分析

文件目录:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

只会git clone的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值