强化学习 课件 第5章 强化学习的实验环境与工具.pptx

强化学习 课件 第5章 强化学习的实验环境与工具.pptx

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第五章强化学习的实验环境与工具北京大学余欣航

目录实验环境Gym实验工具TensorFlow

实验环境Gym

Gym简介Gym(/)是OpenAI推出的强化学习实验环境库:提供了强化学习中与智能体(agent)交互的环境(environment)用于构建、评估和比较强化学习算法的工具库兼容TensorFlow、Theano、Keras等框架下编写的程序除了依赖的少量商业库外,整个项目是开源免费的

Gym简介Gym库内置了上百种强化学习的实验环境:经典控制环境简单文本环境算法环境二维方块(Box2D)环境Atari游戏环境机械控制环境……

Gym的安装Gym支持Windows系统、Linux系统和macOS系统在Anaconda3环境里安装Gym库(要求Python版本为3.5+)安装Gym库(安装版本为0.15.3):pipinstallgym==0.15.3

……Gym中的环境查看Gym库里包含的环境fromgymimportenvsenv_spaces=envs.registry.all()env_ids=[env_space.idforenv_spaceinenv_spaces]print(env_ids)Gym库里的环境每一个环境都有一个形如“xxxxx_vd”的ID,如“CartPole-v0”、“LunarLander-v2”等,ID中包含名称和版本号

悬崖寻路问题(CliffWalking)目标是从起点移动到终点可以采取上、下、左、右四种动作进行移动到达除悬崖以外的方格奖励为-1到达悬崖奖励为-100并返回起点离开方格的动作会保持当前状态不动并奖励-1

加载环境importgym#加载CliffWalking-v0环境env=gym.make(CliffWalking-v0’)#以图形化的方式显示当前的环境状态env.render()使用make()函数加载gym库中的”悬崖寻路”环境如果需要加载其它环境,只需将make函数中的参数换成其它环境的ID即可

加载环境”悬崖寻路“问题的环境描述起点终点悬崖奖励描述

状态空间和动作空间每个环境都定义了自己的状态空间和动作空间加载环境之后使用环境的observation_space属性查看状态空间,使用环境的action_space属性查看动作空间#查看环境的观测空间print(‘状态空间:,env.observation_space)#查看环境的动作空间print(动作空间:,env.action_space)输出

观测空间和动作空间观测空间和动作空间即可以是离散空间(取值是有限个离散的值)也可以是连续空间(取值是连续的)离散空间一般用Discrete()表示,连续空间一般用Box()表示例如“CliffWalking-v0“环境的观测空间是Discrete(48),表示该环境有48个状态,动作空间是Discrete(4),表示该环境有4个动作智能体有48个状态,在每个状态,智能体有上下左右四个动作可以选择

环境对象的step()函数环境对象的step()函数接收智能体的动作并返回以下四个参数:observations:代表对特定环境的观测值reward:执行当前行动所获得的奖励值done:布尔型变量,表示该回合是否完成了任务info:其它信息,例如状态间的转移概率每个时间步,智能体都会选择一个动作,然后返回结果和奖励值

环境对象的step()函数fortinrange(10):#在动作空间中随机选择一个动作action=env.action_space.sample()#执行一个动作observation,reward,done,info=env.step(action)print(action:{},observation:{},reward:{},done:{},info:{}.format(action,observation,reward,done,info))

Gym中常用函数使用make()函数加载环境对象使用reset()函数重置环境对象使用render()函数以图形化的方式显示当前的环境状态使用action_space.sample()函数从环境的动作空间随机选择一个动作使用step()函数使智能体执行一个动作使用close()函数关闭环境

Sarsa算法流程回顾?

使用Sarsa寻找最佳策略设置算法参数以及初始化Q表importnumpyasnp##学习率设置alpha=0.8##折扣因子设置gamma=0.95##迭代轮数num_episodes=600

您可能关注的文档

文档评论(0)

balala11 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档