第一章 智能体与学习环境

智能体

人工智能的一个主要目标是构建智能代理。感知环境、理解、推理和学习计划、做出决定并根据环境采取行动是智能体的基本特征。我们将从理解什么是智能代理开始,从代理的基本定义,到在此基础上添加智能。

代理是基于其环境观察(感知)行为的实体。人类和机器人是具有物理形态的代理人的例子。

人类,或动物,是一种例子,它使用它的器官(眼睛,耳朵,鼻子,皮肤,等等)作为传感器来观察/感知它的环境,并利用他们的身体(手臂,手,腿,头部,等等)。机器人使用它的传感器(摄像头、麦克风、激光雷达、雷达等)来观察/感知它的环境,并使用它的物理机器人身体(机器人手臂,机器人手/夹具,机器人腿,扬声器,等等)。

软件代理是能够通过与环境的交互做出决定和采取行动的计算机程序。软件代理可以以物理形式具体化,例如机器人。自治代理是一种实体,它能够自主地做出决定,并根据自己对环境的观察进行理解和推理而采取行动。

智能代理是一个自主的实体,它可以根据与环境的交互进行学习和改进。智能代理能够利用自己的观察结果分析自己的行为和性能。

在这本书中,我们将开发智能代理来解决顺序决策问题——在(松散的)马尔可夫环境中,可以使用一系列(独立的)决策/行动来解决问题,在马尔可夫环境中,奖励信号形式的反馈(通过感知)是可用的,至少在某些环境条件下。

学习环境

学习环境是一个系统的组成部分,在这个系统中,智能体可以被训练来开发智能系统。学习环境定义了agent要完成的问题或任务。

一个问题或任务的结果取决于一系列的决定或采取的行动,这是一个顺序决策问题。以下是一些不同种类的学习环境:

  • 完全可观察和部分可观
  • 确定性和随机
  • 情景和顺序
  • 静态与动态
  • 离散和连续
  • 离散状态空间和连续状态空间
  • 离散的动作空间和连续的动作空间

在这本书中,我们将使用使用OpenAI Gym Python库实现的学习环境,因为它提供了一个简单和标准的接口和环境实现,以及实现新的自定义环境的能力。

在下面的小节中,我们将大致了解一下OpenAI Gym toolkit。本节旨在让一个完整的新手熟悉OpenAI Gym 工具包。没有预先的知识或经验假定。我们将首先尝试去感受一下Gym toolkit,并在不同类别下浏览各种环境。然后,我们将讨论您可能感兴趣的Gym特性,而不考虑您感兴趣的应用程序域。然后我们将简要讨论健身房工具包的价值主张以及如何使用它。在接下来的章节中,我们将在Gym工具包的基础上构建几个很酷的智能代理。所以,这一章是所有这些的基础。我们也将快速创建和可视化我们的第一个OpenAI Gym 环境接近本章结束。兴奋?让我们直接切入正题。

OpenAI Gym

OpenAI Gym是一个开源工具包,它提供了一个称为环境的各种任务集合,并提供了一个用于开发和测试智能代理算法的公共接口。该工具包引入了一个标准的应用程序编程接口(API),用于与为强化学习而设计的环境进行接口。每个环境都有一个附加的版本,以确保与进化的算法和环境本身进行有意义的比较和可重现的结果。

OpenAI Gym通过其不同的环境,为强化学习提供了一个情节设置,在这里,一个agent的经历被分解成一系列的情节。在每一集中,agent的初始状态都是从一个分布中随机采样的,并且agent和环境之间的交互一直进行到环境达到一个终端状态。如果您不熟悉强化学习,也不要担心。您将会在第2章,强化学习和深度强化学习中入门。

以下截图显示了OpenAI Gym library中可用的一些基本环境:
在这里插入图片描述
在写这本书的时候,OpenAI Gym有大约797个环境,分布在不同的任务类别中。著名的Atari占有最大的市场份额,大约有116个(一半是屏幕输入,一半是RAM输入)环境!工具包支持的任务/环境的类别列在这里:

  • Algorithmic
  • Atari
  • Board games
  • Box2D
  • Classic control
  • Doom (unofficial)
  • Minecraft (unofficial)
  • MuJoCo
  • Soccer
  • Toy text
  • Robotics (newly added)

下面给出了不同类别下可用的各种类型的环境(或任务),以及对每种环境的简要描述。请记住,您可能需要在您的系统上安装一些额外的工具和包,以便在这些类别中运行环境。不要担心!在接下来的章节中,我们将详细介绍启动和运行任何环境所需的每一个步骤。请继续关注!

下面我们来详细看看前面提到的类别,如下:

Algorithmic environments

它们提供了需要代理执行计算的任务,例如多位数数字的相加、从输入序列复制数据、反转序列等等。

Atari environments

这些接口提供了几个经典的Atari 游戏机游戏。这些环境接口是街机学习环境(ALE)之上的包装器。他们提供游戏的屏幕图像或RAM作为输入来训练你的代理。

Board games

这类游戏的环境是9 x 9和19 x 19的棋盘。如果你一直在关注谷歌的DeepMind最近在围棋上的突破,这可能会非常有趣。DeepMind开发了一个名为AlphaGo的代理程序,它使用了强化学习和其他学习和规划技术,包括蒙特卡罗树搜索,来打败世界上排名最高的人类围棋选手,包括范辉和李世石。DeepMind还公布了他们对AlphaGo Zero的研究成果,这款游戏是从零开始训练的,不像最初的AlphaGo使用人类玩的游戏样本。AlphaGo Zero超越了第一代AlphaGo的表现。后来,AlphaZero出版了;它是一个自主系统,通过自玩(没有任何人类监督训练)学会下国际象棋、围棋和Shogi,并达到了比以前开发的系统更高的性能水平。

Box2D

这是一个用于模拟二维刚体的开源物理引擎。Gym toolkit包含一些使用Box2D模拟器开发的连续控制任务:
在这里插入图片描述
这些任务包括训练一个双足机器人走路,引导一个月球着陆器到它的着陆台,以及训练一辆赛车绕赛道行驶。令人兴奋的!在这本书中,我们将使用强化学习来训练一个人工智能代理,让他在赛道上自动驾驶赛车!请继续关注。

Classic control

这一范畴有许多研究课题,在过去的强化学习文献中得到了广泛的应用。这些任务构成了强化学习算法早期开发和基准测试的基础。例如,在经典控制类别下可用的环境之一是山地车环境,它是由Andrew Moore (CMU计算机科学学院院长,匹兹堡大学创始人)于1990年在其博士论文中首次引入的。这种环境有时仍然被用作强化学习算法的测试平台。在本章末尾的几分钟内,您将从这个类别中创建您的第一个OpenAI Gym环境。

Doom

这个类别为流行的第一人称射击游戏《毁灭战士》提供了一个环境界面。这是一个非官方的、社区创建的Gym环境类别,基于ViZDoom,这是一个基于Doom的AI研究平台,提供了一个易于使用的API,适合从原始的视觉输入开发智能代理。它使AI机器人的发展,可以玩几个具有挑战性的回合的毁灭战士游戏,只使用屏幕缓冲区!如果你玩过这个游戏,你就会知道在游戏中通过一些回合而不失去生命是多么令人激动和困难!虽然这不是一款具有像一些新的第一人称射击游戏那样的酷图像的游戏,但撇开视觉效果不谈,这是一款很棒的游戏。近年来,一些关于机器学习,特别是深度强化学习的研究利用了ViZDoom平台,并开发了新的算法来解决游戏中遇到的目标导向导航问题。你可以访问ViZDoom的研究网页(http://vizdoom.cs.put.edu.pl/research),查看使用这个平台的研究列表。下面的截图列出了一些任务,它们可以作为Gym的独立环境用于训练你的特工。
在这里插入图片描述

MineCraft

这是另一个很棒的平台。游戏AI开发者可能会对这种环境非常感兴趣。《我的世界》是一款很受业余爱好者欢迎的电子游戏。MineCraft健身房环境是使用微软的马尔默项目建立的,这是一个平台的人工智能实验和研究建立在MineCraft之上。以下截图显示了OpenAI Gym中的一些环境任务。这些环境为开发解决方案以应对这一独特环境所提出的新问题提供了灵感。
在这里插入图片描述

MuJoCo

你对机器人感兴趣吗?你是否梦想开发出一种算法,让一个人形机器人能走能跑,或者像波士顿动力公司的阿特拉斯机器人那样做后空翻?你可以!您将能够在OpenAI Gym MuJoCo环境中应用本书中学习的强化学习方法来开发自己的算法,可以使2D机器人步行、跑步、游泳或跳跃,或使3D多腿机器人步行或奔跑!在下面的截图中,在MuJoCo环境下有一些很酷的、真实世界的、类似机器人的环境。
在这里插入图片描述

Soccer

这是一个适合训练多个代理的环境,可以一起合作。通过Gym工具包提供的足球环境有连续的状态和行动空间。想知道这意味着什么吗?当我们在下一章讨论强化学习时,您将会了解到所有有关它的内容。现在,这里有一个简单的解释:连续状态和操作空间意味着代理可以采取的操作和代理接收到的输入都是连续值。这意味着它们可以取0到1之间的任何实数值(0.5、0.005等),而不是局限于几个离散值集,如{1、2、3}。环境有三种类型。在简单的足球环境中,场上只有一个对手,进球后奖励+1,否则奖励0。为了让一个代理商进球,它将需要学习识别球,接近球,并把球踢向球门。听起来很简单吗?但是对于计算机来说很难自己算出来,尤其是当它进球时你说的是+1而其他情况下都是0。它没有任何其他线索!你可以开发代理,将学习所有关于足球自己和学习得分的方法,你将在这本书中学习。

Toy text

OpenAI Gym也有一些简单的基于文本的环境。这包括一些典型的问题,如冰冻的湖泊,目标是找到一条安全的道路,通过冰和水的格子。它被归类为玩具文本,因为它使用更简单的环境表示——主要通过文本。

这样,您就可以很好地概述OpenAI Gym toolkit中提供的所有不同类别和类型的环境。值得注意的是,OpenAI Gym工具包的发布伴随着一个OpenAI Gym网站(gym.openai.com),该网站为每个提交评估的算法维护了一个记分牌。它展示了用户提交算法的性能,一些提交还附带了详细的解释和源代码。不幸的是,OpenAI决定撤回对该评估网站的支持。该服务于2017年9月关闭。

现在您已经了解了OpenAI Gym中各种类型的环境,以及每种类型提供给您的内容。接下来,我们将看看OpenAI Gym的关键特性,这些特性使其成为当今智能代理开发中不可或缺的一部分,特别是那些使用强化学习或深度强化学习的开发。

猜你喜欢

转载自blog.csdn.net/weixin_42990464/article/details/112121840
今日推荐