淘姐妹

淘姐妹

【Pytorch】第 1 章 :强化学习和 PyTorch 入门

电脑 0
pytorch,pytorch用来干嘛的,pytorch怎么读,pytorchcpu和gpu区别

?🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

📝个人主页-Sonhhxg_柒的博客_CSDN博客?📃

🎁欢迎各位→点赞👍 + 收藏 + 留言📝?

📣系列专栏 - 机器学习【ML】?自然语言处理【NLP】? 深度学习【DL】

?

?说明?本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟👋

文章目录

设置工作环境

怎么做...

这个怎么运作...

还有更多...

也可以看看

安装 OpenAI Gym

怎么做...

这个怎么运作...

还有更多...

也可以看看

模拟 Atari 环境

怎么做...

这个怎么运作...

还有更多...

也可以看看

模拟 CartPole 环境

怎么做...

这个怎么运作...

还有更多...

回顾 PyTorch 的基础知识

怎么做...

?还有更多...

也可以看看

实施和评估随机搜索策略

怎么做...

这个怎么运作...

还有更多...

开发爬山算法

怎么做...

还有更多...

也可以看看

开发策略梯度算法

怎么做...

这个怎么运作...

还有更多...

也可以看看

我们以基本但重要的强化学习算法(包括随机搜索、爬山和策略梯度)开始我们的实用强化学习和 PyTorch 之旅。我们将从设置工作环境和 OpenAI Gym 开始,您将通过 Atari 和 CartPole 游乐场熟悉强化学习环境。我们还将演示如何逐步开发算法来解决 CartPole 问题。此外,我们将回顾 PyTorch 的基本知识,并为即将到来的学习示例和项目做准备。

本章包含以下配方:

  • 设置工作环境
  • 安装 OpenAI Gym
  • 模拟 Atari 环境
  • 模拟 CartPole 环境
  • 回顾 PyTorch 的基础知识
  • 实施和评估随机搜索策略
  • 开发爬山算法
  • 开发策略梯度算法

让我们开始设置工作环境,包括正确版本的 Python 和 Anaconda,以及作为贯穿本书的主要框架的 PyTorch。

Python 是我们用来实现全书所有强化学习算法和技术的语言。在本书中,我们将使用 Python 3,或者更具体地说,3.6 或更高版本。如果你是 Python 2 用户,现在是你切换到 Python 3 的最佳时机,因为 Python 2 将在 2020 年后不再受支持。不过过渡非常顺利,所以不要惊慌。

Anaconda是用于数据科学和机器学习的开源 Python 发行版 (?www.anaconda.com/distribution/ )。我们将使用 Anaconda 的包管理器conda安装 Python 包,以及pip.

PyTorch?(?PyTorch?) 主要由 Facebook AI Research (FAIR) Group 开发,是一个基于 Torch (?Torch | Scientific computing for LuaJIT.?) 的流行机器学习库。PyTorch 中的张量取代了 NumPy 中的张量ndarrays,后者提供了更大的灵活性和与 GPU 的兼容性。由于强大的计算图和简单友好的界面,PyTorch 社区每天都在扩大,并被越来越多的科技巨头大量采用。

让我们看看如何正确设置所有这些组件。

我们将从安装 Anaconda 开始。如果您的系统上已经运行了适用于 Python 3.6 或 3.7 的 Anaconda,则可以跳过此步骤。否则,您可以按照适用于您的操作系统 的https://docs.anaconda.com/anaconda/install/上的说明进行操作,如下所示:

设置完成后,请随意使用 PyTorch。要验证您是否正确设置了 Anaconda 和 Python,您可以在 Linux/Mac 的终端或 Windows 的命令提示符中输入以下行(从现在开始,我们将其称为终端):

它将显示您的 Python Anaconda 环境。您应该会看到类似于以下屏幕截图的内容:

如果没有提到 Anaconda 和 Python 3.x,请检查系统路径或 Python 运行的路径。

接下来要做的是安装 PyTorch。首先,转到Start Locally | PyTorch并从下表中选择您的环境描述:

这里我们以MacCondaPython 3.7、本地运行(无CUDA)为例,在Terminal中输入结果命令行:

要确认 PyTorch 已正确安装,请在 Python 中运行以下代码行:

Output:

【【微信】】([[ 0.0000e+00,  2.0000e+00, -1.2750e+16, -2.0005e+00],         [ 9.8742e-37,  1.4013e-45, 9.9222e-37,  1.4013e-45],         [ 9.9220e-37,  1.4013e-45, 9.9225e-37,  2.7551e-40]])

如果显示 3 x 4 矩阵,则表示 PyTorch 已正确安装。

现在我们已经成功地设置了工作环境。?

我们刚刚在 PyTorch 中创建了一个大小为 3 x 4 的张量。它是一个空矩阵。也就是说empty,这并不意味着所有元素都具有价值Null。相反,它们是一堆无意义的浮点数,被认为是占位符。用户需要稍后设置所有值。这与 NumPy 的空数组非常相似。

有些人可能会质疑安装 Anaconda 并使用conda它来管理包的必要性,因为使用pip.?事实上,conda是一个比pip.?我们主要conda出于以下四个原因使用:

  • 它很好地处理库依赖关系:安装一个包conda将自动下载它的所有依赖关系。但是,这样做pip会导致警告,并且安装将中止。
  • 它优雅地解决了包的冲突:如果安装一个包需要另一个特定版本的包(比如 2.3 或更高版本),conda将自动更新另一个包的版本。
  • 它很容易创建一个虚拟环境:虚拟环境是一个独立的包目录树。不同的应用程序或项目可以使用不同的虚拟环境。所有的虚拟环境都是相互隔离的。建议使用虚拟环境,这样我们对一个应用程序所做的任何事情都不会影响我们的系统环境或任何其他环境。
  • 它也与 pip 兼容:我们仍然可以使用pipinconda和以下命令:

如果您有兴趣了解有关 的更多信息conda,请随时查看以下资源:

  • Conda 用户指南:https ://conda.io/projects/conda/en/latest/user-guide/index.html
  • 使用 conda 创建和管理虚拟环境:https ://conda.io/projects/conda/en/latest/user-guide/tasks/manage-en【【微信】】.html

如果你想更熟悉 PyTorch,可以阅读官方教程中的入门部分,网址为Welcome to PyTorch Tutorials ― PyTorch Tutorials 1.13.0+cu117 documentation。我们建议您至少完成以下操作:

  • 什么是 PyTorch:https ://pytorch.org/tutorials/beginner/blitz/【【微信】】_tutorial.html#sphx-glr-beginner-blitz-【【微信】】-tutorial-py
  • 通过示例学习 PyTorch:https ://pytorch.org/tutorials/beginner/pytorch_with_examples.html

设置工作环境后,我们现在可以安装 OpenAI Gym。不使用 OpenAI Gym 就无法进行强化学习,OpenAI Gym 为您提供了开发学习算法的各种环境。

OpenAI?(?https://【【微信】】.com/?) 是一家非营利性研究公司,专注于构建安全的通用人工智能(?AGI?) 并确保其造福人类。OpenAI Gym是一个强大的开源工具包,用于开发和比较强化学习算法。它为各种强化学习模拟和任务提供了一个接口,从步行到登月,从赛车到玩 Atari 游戏。有关环境的完整列表,请参阅https://gym.【【微信】】.com/envs/ 。我们可以编写代理以使用任何数值计算库(例如 PyTorch、TensorFlow 或 Keras)与 OpenAI Gym 环境交互。

有两种安装 Gym 的方法。第一种是使用pip,如下:

对于conda用户,请记住pip先conda使用以下命令安装,然后再使用以下命令安装 Gym?pip:

这是因为conda截至 2019 年初,Gym 尚未正式可用。

另一种方法是从源代码构建:

1.首先,直接从 Git 存储库中克隆包:

2.转到下载的文件夹并从那里安装 Gym:

现在你可以开始了。随意使用gym.

3.您还可以gym通过键入以下代码行来检查可用环境:

 dict_【【微信】】([【【微信】】(Copy-v0),【【微信】】(【【微信】】),【【微信】】(【【微信】】),【【微信】】(【【微信】】) , 【【微信】】(【【微信】】), 【【微信】】(【【微信】】), 【【微信】】(CartPole-v0), 【【微信】】(CartPole-v1), 【【微信】】(【【微信】】), 【【微信】】(【【微信】】s-v0), 【【微信】】(【【微信】】), 【【微信】】(Acrobot-v1),【【微信】】(LunarLander-v2),【【微信】】(LunarLanderContinuous-v2),【【微信】】(BipedalWalker-v2),【【微信】】(BipedalWalkerHardcore-v2),【【微信】】(CarRacing-v0),【【微信】】(Blackjack-v0) .. ……  _

如果您正确安装了 Gym,这将为您提供一长串环境。我们将在下一个秘籍模拟 Atari 环境中尝试其中的一些。

与pip安装 Gym 的简单方法相比,如果您想添加新环境和修改 Gym 本身,第二种方法提供了更大的灵活性。

你可能想知道为什么我们需要在 Gym 的环境中测试强化学习算法,因为我们工作的实际环境可能有很大不同。你会记得,强化学习不会对环境做出很多假设,但它会通过与环境交互来了解更多关于环境的信息。此外,在比较不同算法的性能时,我们需要将它们应用到标准化环境中。Gym 是一个完美的基准,涵盖了许多多功能且易于使用的环境。这类似于我们在监督和无监督学习中经常用作基准的数据集,例如 MNIST、Imagenet、Mo【【微信】】 和 Thomson Reuters News。

查看https://gym.【【微信】】.com/docs/上的官方 Gym 文档。

要开始使用 Gym,让我们用它玩一些 Atari 游戏。

Atari 环境 (?https://gym.【【微信】】.com/envs/#atari?) 是各种【【微信】】视频游戏,例如 Alien、AirRaid、Pong 和 Space Race。如果您曾经玩过 Atari 游戏,这个食谱对您来说应该很有趣,因为您将玩 Atari 游戏 Space Invaders。但是,代理人将代表您行事。

让我们按照以下步骤模拟 Atari 环境:

1.atari要首次运行任何环境,我们需要atari通过在终端中运行此命令来安装依赖项:

或者,如果您使用了上一节中的第二种方法,则install gym可以改为运行以下命令:

2.安装 Atari 依赖项后,我们gym在 Python 中导入库:

3.创建SpaceInvaders环境实例:

4.重置环境:

 array([[[ 0,  0, 0],        [ 0, 0,  0],        [ 0, 0,  0],        ...,        ...,        [80, 89, 22],        [80, 89, 22],        [80, 89, 22]]], dtype=uint8)

如您所见,这也会返回环境的初始状态。

5.渲染环境:

True

“王炸”功能只给看,OpenAI匆忙上线GPTopenai gpt,opengpg,opengpu,gpt-3 openai

北京时间3月15日凌晨,人工智能初创公司OpenAI公布新一代人工智能语言模型GPT-4。与ChatGPT所用的模型相比,GPT-4不仅能够处理图像内容,而且在回答的细节和表述方面更有价值和人情味。

“这是OpenAI努力扩展深度学习的最新里程碑。”OpenAI在当天的声明中这样表示。鉴于这是一个只训练了6个月且数据更新至2021年9月的模型,我们有理由推测出它的后续升级版本将可能做出更多令人惊艳的事情。有专家推测,OpenAI正在小心翼翼控制节奏,以防人们被太过聪明的工具“吓”到。

GPT-4 【【微信】】

与ChatGPT相比,GPT-4最大的改变就是增加了图片输入支持,并可输出图片或文本。这使它从一个单纯的文本聊天工具变成一个多模态语言模型。

目前图像处理功能尚未公开,不过OpenAI在官网上展示了一系列案例。上海人工智能研究院研究员王资凯注意到,其中有一个案例是让GPT-4预测将图片中的氢气球绳子剪断后会怎样。 “这是一个涉及图片理解、常识和推理的问题,没见过气球的人很难回答。”不过,GPT-4很好地预测了气球的走向。“或许GPT-4已经能根据周围场景,猜出一个密闭的盒子里装的是什么。”王资凯说。

在中国计算机学会术语工委副主任、同济大学特聘研究员王昊奋看来,更能体现GPT-4水准的要数它对于非自然图像的理解,如图表、考试题目截图、论文截图等,这也解释了它为何能在各种考试中拔得头筹。在演示中,GPT-4帮助美国一对虚拟夫妇在特定纳税年度里完成了报税,这意味着它能读懂大量知识性文档。

GPT-4可输入25000个词,约是chatGPT的八倍,这使得它的逻辑推理能力更上一层楼。据介绍,它已在包括美国律师资格考试、法学院入学考试、“美国高考”数学部分和证据性阅读与写作部分等考试中,得分高于88%的应试者。

“角色扮演”让GPT-4如有神助

“你是一位AI编程助手,第一步谨慎、逐字地遵循用户需求;第二步一步一步思考,阐述你如何构造代码;第三步在一个单独程序块中生成代码;第四步尽可能减少其他不严谨……”在官方发布的演示中,王昊奋注意到一个细节,OpenAI总裁和联合创始人格雷格・布罗克曼试图让GPT-4在回答复杂问题前先扮演某种角色。

“我们把这种引导称为‘元指令’,也就是给机器一个人设,比如一名医生、一名律师,一名编辑等,然后告诉它要做什么工作。”王昊奋说。作为ChatGPT全球首批百万用户之一,王昊奋掌握了不少使用心得,角色扮演的“元指令”是他经过长期使用后总结出的让ChatGPT生成更好回答的方法之一。而在此次最新发布的GPT-4中,他发现,OpenAI公司也注意到了这一现象,并有意引导机器去扮演某种角色。

让机器拥有“人设”,是否意味着GPT-4已经具备了智能?在王资凯看来,答案是肯定的。就像人类制造飞机没有用鸟的方式,而是通过空气动力学让一套机械装置飞起来了一样,人工智能也用自己的方式拥有了智能。不过,人类也无需恐慌,因为这仍然只是一个工具,而且通往智能的道路并非只有一条。

数十款多模态语言模型将同台竞争

就在GPT-4发布的几天前,谷歌悄悄上线了一款炸弹级模型PaLM-E――足足有5620亿参数,它将真实世界的传感器信号与文本输入相结合,建立语言和感知的链接;根据计划,百度将于今天(16日)发布类ChatGPT模型“文心一言”;而此前,由OpenAI前员工研发的ChatGPT竞品Claude已开放API接口……正如ChatGPT上线后多位专家预测的那样,自然语言处理的“战国时代”即将到来,未来,全球估计将会有数十款多模态语言模型同台竞技。

在王昊奋看来,OpenAI并非风光无限,而是感受到了切实的压力,这导致了GPT-4匆忙上线。毕竟,“该模型最大的亮点图文识别没有放开测试,并不符合OpenAI的一贯风格”。

不过,他也提醒人们注意,GPT-4的训练数据只更新到2021年,不排除后续会有更丰富的语料库训练版本。这次,他们很快就将自家的图像模型DALL-E整合进GPT-4,不仅工程技术难度不容小觑,而且更考验模型融合两种类型数据的稳定性和成本。专家预计,OpenAI内部还藏有“杀手锏”,将会带给人们又一次冲击。

作者:沈湫莎

责任编辑:任荃

*文汇独家稿件,转载请注明出处。

举报/反馈