大家好, 欢迎来到本课程的第三个模块, A3C异步行为对代理人的评价｡
所以现在我可以说欢迎来到最先进的机器学习｡
当时我这么说是因为你们中的一些人可能会在一两年内修这门课｡
但在当时我说这在2017年, 虽然你即将工作的一个最强大的模型在人工智能,
但有更多的是不是唯一的特殊的东西关于这个模块｡
我们不仅要使用最强大的人工智能模型,
而且要实现这个算法的最强大版本, 也就是最优化的版本, 实现了a3c模型的版本,
因为你可以想象, 这是三C算法的核心, 但接下来我们可以使用很多工具来优化整个模型｡
所以你不仅要有算法的核心, 还要围绕它实现所有这些工具,
使模型超级强大｡
我为什么要这么做？
有两个原因｡
第一个原因是我们即将接近本课程的结尾｡
本课程是ML､ DL､ AI和Z三门课程中最高级别的课程｡
所以现在我想你已经准备好更进一步了｡
第二个原因是, 解决突破实际上是超级具有挑战性的｡
请记住, 在宣传视频中, 我们想把突破作为第一个模块, 因为我们认为这将是最简单的挑战,
但根本不是｡
这其实是最难的挑战｡
一个简单的解释是, 在厄运中, 怪物很大, 因此更容易被发现,
因此更容易杀死或避免｡
但在突破时, 我们有一个人工智能也必须检测到的小球, 因为人工智能在这里仍然有眼睛｡
我们还是要做深度强化学习｡
所以这实际上是非常具有挑战性的, 这就是为什么我们没有选择来实现三个C语言中最强大的版本｡
现在, 为什么我说这是最强大的版本？
那是有原因的
我并不是说我要实现最强大的3C版本, 现在不是这个了｡
我这么说的原因是我们要实现的版本,
这是我们要做的非常特别的东西, 实际上是C语言的一个版本, 它是由某人实现的,
但被当今机器学习领域最有影响力的人之一修正了, 他碰巧是PyTorch的创造者｡
他叫亚当·帕克｡
现在我们要做的是, 我们要进入GitHub的PyTorch主页, 如果你向下滚动,
向下滚动到最后, 向下滚动到底部, 你会看到团队, PyTorch的创建者和贡献者的团队｡
你可以看到PyTorch目前由Adam Pascal维护｡
这就是我们应该真正感谢的人, 因为很少有三个关键的版本, 以及工作的突破｡
他更正了RC的一个代码, 使突破工作得很好｡
因此, 亚当·帕斯卡不仅是维护PyTorch, 而且他是创造性的PyTorch之一｡
就像我今天说的, 他是机器学习领域十大最有影响力的人物之一｡
所以我们可以有信心地认为, 我们即将实现的版本可能是当今三C中功能最强大的版本｡
那么这个实现是什么呢？
它最初来自一个叫伊利亚·斯托伊奇科夫的开发商｡
正如你所看到的, 他用PyTorch实现了a3c, 最初它并不适用于breakout,
但后来有人提出了pull请求｡
如果我们转到这里的拉取请求, 我们可以看到在接近的一个, 我们去, 我们有这个,
一个更干净的解决方案毕业的问题｡
猜猜这个泳池申请是谁提出的？
它是由PyTorch的创造者亚当·帕斯卡制造的｡
这就解决了使人权委员会在突破上工作得很好的问题, 而不需要等待一天又一天｡
因此, 如果我们回到这个实现, 我们可以看到这个最强大的实现的四个贡献者,
这里是贡献者｡
所以非常感谢他们所有人｡
我们要特别感谢亚当·帕施克修正了梯度共享问题｡
他首先做了一个fork, 这是代码的一个子分支,
然后他向开发者做了一个pull请求来修复代码中的这个问题, 这是一个很好的共享问题, 这就是他如何成为这个实现的主要贡献者,
使整个事情完美地运行｡
相信我, 我在3C模型上做了很多实验｡
我实际上实现了五个模型｡
我甚至绝望, 它没有工作得很好, 所以我做了我自己的突破曲线有一个更大的球,
因此更容易预处理的图像｡
然后我又回到了开放API, 并制作了我自己的HRC实现, 但这需要很长时间才能在一台相当强大的计算机上运行和训练｡
所以我想找到一个更好的方法, 这就是它的方式｡
这是a3c模型的一个非常强大的实现｡
其中一个主要贡献者是PyTorch的创建者｡
在本模块中, 我想大家已经准备好了, 我们要做的是实现RC的最高级别代码｡
因此, 我们基本上将重新实现所有这些文件,
并且我们将主要坚持使用与RC直接相关的文件作为与RC直接相关的所有部件｡
我们将逐行实现其他代码｡
我将解释代码｡
因此, 我们应该能够解决这个问题, 而不会觉得它太压倒性｡
好了, 我们走吧｡
相当特别的模块｡
我们不仅致力于最先进的人工智能模型, 而且在我发言的时候,
我非常有信心我们正在实现最强大的RC版本｡
那就开始吧｡
让我们回到Python, 开始这一切｡
在开始之前, 我们将执行本模块中最简单的操作, 即设置工作目录文件夹｡
现在, 让我们转到A-Z模板文件夹｡
第三单元, 拿出最具挑战性的一个, 我们开始吧｡
这是我们所有的文件｡
让我们看看哪些是与a3c直接相关的, 哪些是我们要逐行实现的, 并将精力集中在上面｡
所以实际上有两个文件｡
第一个是在PI建模的, 就是这个｡
因此, 我们将逐行重新实现它, 因为这是最重要的｡
那是我们制造三个关键大脑的地方
这里最重要的是, 我们将有一个共享的模型,
它将对演员和评论家的权重进行相同的更新｡
这是RC的特殊版本的一部分, 共享模型, 共享权重的更新｡
然后我们将逐行实现的另一个最重要的文件是PI掉下来的火车, 当然是在我们制作RC的大脑之后｡
我们必须训练他们, 我们训练他们在这列火车上, 在PI文件中｡
这是一段很长的代码, 但这是a3c模型的核心,
它会有两个损失来减少价值损失, 一个是与评论家的预测有关的损失, 另一个是政策损失,
最后一个与参与者的预测有关｡
所以这是相当新的｡
但你知道, 那是因为在a3t中, 我们基本上是与几个代理一起工作, 每个代理都有自己的环境副本｡
但我们也有一个完全连接的层, 它输出V函数的值, 这基本上是对游戏中发生的事情的一个共同看法｡
所以这将是相当具有挑战性的｡
所以一定要保持良好的状态, 并为其余的文件｡
好吧, 我只会详细解释, 但不会花太多时间｡
相信我, 你要保持你的能量为这个｡
这就已经很多了｡
所以这些文件是针对PI的, 这是一个改善健身房环境感谢宇宙｡
因此, 基本上,
该文件只是利用Universe改善了健身房环境, 并且允许对图像进行最佳预处理, 并且还对环境的所有值进行归一化,
例如颜色强度或奖励强度｡
嗯, 环境的所有价值观｡
这个文件规范化所有这些值, 并确保我们有一个最佳的图像预处理｡
正如你所看到的, 这是从这个开放的GitHub页面, 在那里宇宙存储代理｡
所以我们不会在这方面花太多时间｡
我们就到这里吧｡
你只需要知道我们用Universe改善了健身房的环境, 以获得图像的最佳预处理｡
剩下的就没那么重要了, 尤其是对C三来说｡
然后是主API, 它是执行整个过程的代码｡
所以你知道运行整个程序的代码, 创建大脑, 训练大脑, 输出视频｡
因为它会运行所有这些代码｡
所以我们看到了当时模型
我的最优pi是一个特殊的优化器｡
这基本上就是原子优化器, 但要使其适应我们正在实现的共享模型｡
因此, 我们将在一个教程中解释所有这些代码｡
然后我们测试圆周率｡
这是最后一个了｡
因此, test pi基本上是实现测试代理的文件｡
这是一个代理, 将发挥突破, 而不更新模型｡
所以这完全独立于训练｡
我们还将详细解释这段代码｡
此外, 好消息是, 您将有两个代码一个代码, 这将是我们在教程中实现的代码,
但没有任何注释｡
其中一个代码文件夹包含了所有的命令代码,
所以这六个文件都是命令文件, 所以如果你错过了教程中的内容, 你可以查看代码中的命令来了解发生了什么｡
好了, 我们走吧｡
我希望您对实现这一点感到兴奋｡
你现在真的是在山顶上, 或者只是在山顶之下, 因为你需要首先理解这一点｡
你要去那里好好呼吸一下氧气｡
我们开始了这段激动人心的旅程｡
在那之前, 好好享受吧｡
一､