[OPENAI-GYM]从无到有的tutorial

我的目标是用openai的gym+虚拟机跑一下超级mario并且分析gym运用在csgobot上的可行性。
gym里面包含了很多很小很精简的定制小游戏用来测试神经网络;
至于网络和逻辑可以从tensorflow中导入。
openai gym 是一个增强学习(reinforcement learning,RL)算法的测试床(testbed)

OpenAI Gym由两部分组成:

  1. gym开源库:测试问题的集合。当你测试增强学习的时候,测试问题就是环境,比如机器人玩游戏,环境的集合就是游戏的画面。这些环境有一个公共的接口,允许用户设计通用的算法。
  2. OpenAI Gym服务。提供一个站点(比如对于游戏cartpole-v0:https://gym.openai.com/envs/CartPole-v0)和api,允许用户对他们的测试结果进行比较。

【1】首先,安装下载anaconda。
直接官网下载,但是下载速度太慢,扔进百度云网盘离线下载2秒搞定
【2】配置环境变量,更换清华镜像,安装gym
1.win10搜索真的方便的多,进入系统变量path,在里面添加
添加对应Anaconda环境变量:(以自己的安装路径为准)

X:\Anaconda3
X:\Anaconda3\Scripts
X:\Anaconda3\Library\bin

就可以。

2.清华镜像可以直接命令行,或者在anaconda里面设置:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

3.安装gym

pip install --user gym -i  https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/

这样可以不用配置清华源为默认源直接安装。

【3】跑一个tutorial

import gym
env = gym.make('CartPole-v0')
env.reset()  #重置环境
for _ in range(1000):  #1000帧
    env.render()  #每一帧重新渲染环境
    env.step(env.action_space.sample()) # take a random action

[OPENAI-GYM]从无到有的tutorial_第1张图片
非常搞笑,杆子各种乱跑。

【3】下面把AGENT连接到gym,试着跑一下

增强学习有几个基本概念:
[OPENAI-GYM]从无到有的tutorial_第2张图片

  1. agent:智能体,也就是机器人,你的代码本身。

  2. environment:环境,也就是游戏本身,openai gym提供了多款游戏,也就是提供了多个环境。

  3. action:行动,比如玩超级玛丽,向上向下等动作。

  4. state:状态,每次智能体做出行动,环境会相应地做出反应,返回一个状态和奖励。

  1. reward:奖励:根据游戏规则的得分。智能体不知道怎么才能得分,它通过不断地尝试来理解游戏规则,比如它在这个状态做出向上的动作,得分,那么下一次它处于这个环境状态,就倾向于做出向上的动作。

gym的核心接口是Env,作为统一的环境接口。Env包含下面几个核心方法:

1、reset(self):重置环境的状态,返回一个初始情况的observation对象

2、step(self,action) 推进一个时间步长,从agent输入action,,返回observation(state object),reward(float浮点型),Done(boolean),INFO(dict)

3、render(self,mode=’human’,close=False) 重绘环境的一帧。默认模式一般比较友好,如弹出一个窗口。

你可能感兴趣的:(吉大人工智能bot)