强化学习2—gym windows10使用+理解了基于时间差分的强化学习方法
相关连接:《深入浅出强化学习-原理入门》作者知乎分享:https://zhuanlan.zhihu.com/p/25580624
课本中的代码:https://github.com/gxnk/reinforcement-learning-code
今天的进程:
1、activate python pip install gym 即可安装gym
2、env.step(action) 函数:输入动作action,输出为:下一步状态,立即回报,是否终止,调试信息
observation,reward,done,info=env.step(action)
env.reset()函数:重新初始化函数,智能体每进行一次尝试到达终止状态后,都要重新开始再尝试,所以需要智能体有重新初始化功能。
env.render()函数:扮演图像引擎的作用,以便直观地显示当前环境。
3、同策略Sarsa
异策略Qlearning
3、学习和实验了Qlearning 迭代 机器人找金币游戏,但是出现一个问题:
env.seed = env._seed AttributeError: 'GridEnv' object has no attribute '_seed'
解决问题: 在gym->envs->classic_control文件加进去的grid_mdp文件中,加入
def _seed(self, seed=None): self.np_random, seed = seeding.np_random(seed) return [seed]
并且把def render()改成 def _render()
4、在执行下面这个语句时,相关文件夹里只生成json文件,并没有生成MP4文件。force参数是用来强制覆盖原文件的。
grid = wrappers.Monitor(grid, './robotfindgold', force=True) # 记录回放动画
而且报错,让我安装东西。。。
gym.error.DependencyNotInstalled: Found neither the ffmpeg nor avconv executables. On OS X, you can install ffmpeg via `brew install ffmpeg`. On most Ubuntu variants, `sudo apt-get install ffmpeg` should do it. On Ubuntu 14.04, however, you'll need to install avconv with `sudo apt-get install libav-tools`.
解决办法:函数括号内加上video_callable=False:
grid = wrappers.Monitor(grid, './robotfindgold',video_callable=False, force=True) # 记录回放动画
4、有一个疑问:时间差分方法公式中的TD偏差前的系数-阿尔法 是如何给定的?