## OpenAI Gym
### 1.将智能体插入RL框架所需的高层次要求。
▪ 智能体:主动行动的人或物。实际上,智能体只是实现了某些策略的代码片段而已。这个策略根据观察决定每一个时间点执行什么动作。
▪ 环境:某些世界的模型,它在智能体外部,负责提供观察并给予奖励。而且环境会根据智能体的动作改变自己的状态。
### 2.基本、纯Python实现的随机RL智能体。
▪ NumPy:用于科学计算的库,它实现了矩阵运算和常用功能。
▪ OpenCV Python bindings:计算机视觉库,提供了许多图像处理的函数。
▪ Gym:RL框架,以统一的交互方式提供了各种各样的环境。
▪ PyTorch:灵活且有表现力的深度学习(Deep Learning,DL)库。第3章会提供它的速成课。
▪ PyTorch Ignite:基于PyTorch的高级工具库,用于减少样板代码。在第3章会有简短的介绍。完整的文档参见https://pytorch.org/ignite/。
▪ PTAN(https://github.com/Shmuma/ptan):笔者创建的一个Gym的扩展开源软件,用来支持深度RL方法以及方便地创建构造块。所有用到的类将同源代码一起详细解释。
### 3.OpenAI Gym。
**Gym的主要目的是使用统一的接口来提供丰富的RL环境。**
▪ 在环境中允许执行的一系列动作。Gym同时支持离散动作和连续动作,以及它们的组合。
▪ 环境给智能体提供的观察的形状[1]和边界。
▪ 用来执行动作的step方法,它会返回当前的观察、奖励以及片段是否结束的指示。
▪ reset方法会