
强化学习
显哥无敌
南京赵显
展开
-
关于GPU利用率低的一种可能
这两步io操作极大限制了GPU的性能,每1000步和2000步算法均需向monitor.csv和tensorboard里写入相关数据,在调试阶段可以通过这些数据查看算法有无问题。GPU需要忙等CPU的IO操作结束,于是果断把他注释掉了,算法运行时间快了10倍有木有!本人用STABLE_BASELINES3里面的算法进行实验,结果发现GPU利用率一直很低,只会偶尔高一下然后又下去,原来是我的算法写的有问题,采样时间非常的长,智能体会受限于采样时间。关闭一切可能的IO操作!原创 2022-09-21 10:33:47 · 3498 阅读 · 1 评论 -
Double-DQN笔记
double-dqn是dqn比较著名的变种,他主要解决的一个问题是在之前的DQN公式中,我们用网络估计出来的Q值比Q值的实际值要高很多,也就是著名的过估计问题。先说一下什么是过估计,看过张斯俊大神这一篇的就会知道https://zhuanlan.zhihu.com/p/109498587Q值最最最保真的值,也就是他的定义式,应该是由这个动作引发的直接一步后续所有可能状态的期望,但是我们不可能说等到所有状态都迭代好了以后再去求这个Q值。所以在Q-Learning阶段我们就选用了下一个state最大Q值原创 2022-06-27 21:46:39 · 485 阅读 · 0 评论 -
DQN笔记
DQN基于Q-Learning,也就是说DQN也是一个离线算法,它第一个关注点是解决空间状态爆炸的问题,也就是说它不解决连续动作的问题tip:何谓连续动作例子,取值为(0,1)之间任意数为连续变量,动作包含连续变量的叫做连续动作最基础的思想是用一个神经网络来拟合Q-Table里面的Q值。用到了神经网络那么就有一个训练的问题,训练的数据哪里来,与环境交互。最基础的DQN数据存储(s,a,r,s’)数据用于训练DQN里面的网络是一个监督学习的过程,其目标是真实值和估计值之间的差值最小,术语叫做TD-E原创 2022-06-27 17:38:50 · 953 阅读 · 1 评论 -
Sarsa笔记
首先要讲的是,sarsa也是一种基于TD的算法,他与Q-LEARNING唯一的不同是那个target_policy,或者说更新Q值的方式,之前Q-learning是选取执行动作后下一个state,当前Q表里值最大的值。而Sarsa他与Q-Learning不同的一点就是它也是根据epilson-greedy的方式取选取要执行的下一步动作,并把这个动作的Q值代入公式里去更新Q表。值得说明的是,这个动作并没有被执行,他也是Q表里估计的值,只不过选出来的动作不同罢了,我看莫凡视频的时候它讲的是sarsa是行动派原创 2022-06-26 16:54:47 · 187 阅读 · 0 评论 -
Q-Learning笔记
emmmmm,被迫强化学习强化学习的思想其实很好理解啦,通过不断和环节交互,来修正agent的行为这里强推一下这个知乎博主https://www.zhihu.com/column/c_1215667894253830144真的是用大白话把我给讲懂了,搜别的动不动上来这个公式那个理论的,真的是一脸懵逼。。。。。。(理解流程之后你去看那些公式发现其实也没那么难懂)先看一下Q-Learning的算法流程,然后一一解释,这里借用一下莫凡python的流程图:首先要说的是你要有一个基础化的Q表的,否则你毛原创 2022-06-26 15:35:05 · 738 阅读 · 0 评论