大家好, 欢迎回到人工智能课程｡
今天我们将继续我们的旅程, 进入83 C的世界, 我们将讨论C的异步端, 这样我们就有了我们的缩写,
同步优势, 积极的批评家｡
今天, 我们将了解这里的同步表示什么, 它意味着什么｡
让我们退一步｡
让我们来看看这门课的开头部分｡
我们从强化学习开始, 它是关于主体处于某种状态的｡
他们观察状态, 他们做出某些决定, 他们在那个状态下采取行动｡
然后状态就改变了｡
所以他们进入了一个新的状态, 而且他们得到了奖励｡
所以他们会因为采取行动而得到奖励或者某种奖励, 也可能是惩罚｡
他们最终会进入一个新的状态｡
在此基础上, 他们又采取了另一个行动, 他们得到了奖励, 最终进入了一个新的状态, 他们又采取了另一个行动,
依此类推｡
这就是强化学习的基础｡
这就是我们一直在学习中使用的东西, 在深度学习和深度卷积学习中｡
这使得我们的特工能够逐渐战胜越来越复杂的环境｡
但现在我们要进一步介绍一个更好的概念｡
更进一步说, a3c通过这个同步元素引入了一个代理,
而不是一个代理来攻击环境, 他们有三个代理, 或者其他数量的代理｡
所以几个特工攻击同一个环境｡
这里的关键是, 之所以称之为同步是因为它们的初始化方式不同｡
所以他们的出发点不同｡
比如说, 从实际情况来看, 你设置了一个随机的种子, 然后对每个代理人都进行不同的设置.
这样, 因为他们的出发点不同, 他们首先会以不同的方式穿越环境,
然后他们会以不同的方式探索｡
然后在下一次迭代中, 它也将以不同的方式进行探索｡
比如说,
如果你有三个代理, 你会突然获得三倍的经验, 而不是只有一个代理去探索环境, 并试图了解如何在该环境中操作｡
你现在有三个或无论他们中有多少人经历了这一点, 并获得了这种经验｡
所以他们中的每一个人都在通过这个更大的体验学习｡
除了提供更广泛的经验外, 它还减少了一个代理陷入局部最大值的机会｡
例如, 如果一个代理找到了一种方法来战胜环境, 但这并不是最优的,
因为如果它向左或向右偏离了它找到的解决方案, 它总是会受到更多的惩罚｡
它可能会卡在局部最大值上｡
它可能会一直这样做, 认为这是最优的解决方案, 而实际上不是｡
好吧, 几个代理人陷入同一个局部最大值的可能性随着代理人的数量而减少｡
因此, 一个代理陷入某个局部最大值的概率可能很高, 但也可能是某个值｡
但是当你有三个这样的函数时, 它们都陷入局部最大值的概率要低得多｡
而且只要他们彼此分享经验, 他们就能互相帮助｡
所以如果其中一个被卡住了, 比如说, 它就卡在了局部最大值上｡
只要简单地认为这是最好的一个, 这是最好的, 这是最好的解决方案, 一直都是最好的,
只要它与其他代理相互作用, 就能保持良好的状态｡
假设这家伙陷入了局部最大值只要它和其他代理通过我们构建整个算法的方式进行交互,
通过算法, 他们就会帮助他.
他们会给予他真正知道的知识, 嘿, 你应该探索这个, 否则他很可能,
更有可能摆脱那个｡
而且总体而言, 环境会知道, 嘿,
即使这是一个很好的最大值, 这些其他代理已经看到了更好的选择, 我们应该继续探索, 因为他们看起来是更好的选择｡
因此, 在一个非常简短的粗略的, 直观的理解, 这些是一些优势,
有这些异步代理｡
首先, 你有更多的经验可供选择和学习｡
您可以更快地找到解决方案｡
一般来说, 陷入局部最大值的可能性更小｡
让我们来看看这一切在我们目前建立的模型中是如何发挥作用的｡
你们应该还记得, 这是我们通过额外的评论员得到的结果｡
这就是一切联系的地方｡
这是你们还记得的, 在上一个教程中我们介绍过的, 我们在深度卷积Q学习中已经有了,
所以我们现在把它命名为extra｡
但现在我们已经引入了批评, 但到目前为止, 它还没有真正意义｡
用同样的神经网络, 同样的方法来衡量或预测国家的价值,
有什么意义呢？
但现在, 这是这是一个部分, 它将开始变得更有意义｡
我们要做的是复制这个, 因为现在我们有多个代理｡
因此, 对于多个代理, 这是｡
这就是它的样子｡
是这样｡
第一种想象方式是现在我们有了这三样东西｡
好吧, 还记得我们说过的关于他们彼此分享经验的话吗？
所以这其实是对的｡
现在他们都是独立的｡
你有一个在玩游戏, 另一个在玩游戏, 另一个在玩游戏｡
这就像是在三台不同的计算机上启动您的代理｡
你把三台不同的电脑放在一起, 然后启动它们｡
你知道, 这很好｡
喜欢, 的确, 你喜欢你就会得到你就会得到更多的经验｡
你会得到更多的变化, 特别是如果它们被初始化为不同的｡
所以我们从这里开始假设它们都是初始的, 初始化总是不同的｡
尽管我们在这里看到了相同的图片, 但我们知道它们实际上是以不同的方式初始化的｡
所以它不会像相同的训练, 从这个游戏中学习一样｡
所以, 即使你把三台电脑并排放在一起,
然后启动它们, 是的, 你会有更多的经验, 因为你会有三个代理人在玩,
而且你会有更多的可能的解决方案｡
原来如此｡
但问题是, 他们没有在我们中间分享这种经验｡
他们没有互相学习｡
所以他们没有协同效应｡
他们没有优势或额外的权力, 他们会得到如果他们合作｡
你知道, 如果你有如果你有一个团队的人, 他们一起工作更好, 然后他们每个人分开｡
就像在一个团队里, 你有一加一加一, 就是三｡
但在一个团队中, 一加一加一不是三｡
这就像33, 因为他们利用对方的优势, 减轻对方的弱点｡
这里也一样｡
所以如果你把这三台电脑放在一起, 是的, 你会有更多的经验,
更多的变化, 也许有人会得到一个比另一个更好的解决方案｡
这很好, 但如果他们开始分享这一经验, 那就更好了｡
他们是怎么做到的？
我们就是通过这个V来计算它的｡
这个V值是我们网络的输出, 实际上是这样的｡
所以他们有相同的V所以每次所有这些代理, 他们都贡献给相同的评论家｡
他们没有单独的批评家｡
他们有一个共同的批评家｡
这就是演员评论家如何与同步联系的关键｡
所以有一个评论家在观察他们获得的经验｡
那么我们如何计算V, 我们通过你们记得的, 我们通过得到的值来计算V｡
所以我们通过环境得到的回报｡
所以当代理人探索他们的环境时, 他们在计算, 他们在预测V加上他们可以计算的V｡
这是所有这些都与我们在本课程前几节中讨论过的内容有关｡
所以他们已经有了一个V, 他们可以通过这个迷宫中存在的奖励来预测和期待,
他们已经探索过了｡
随着他们的探索, 当然, 这个值是可以改变的, 但是他们也有V,
这个V是神经网络的输出｡
所以当他们经历这些的时候, 他们会调整他们的神经网络, 以便更好地匹配预期｡
V基本上这是共享的, 关键部分是在代理之间共享, 这就是他们如何在彼此之间共享信息｡
这就是他们如何能够看到彼此共享的环境中正在发生的事情, 然后利用这一点,
我们将在下一部分中进一步了解这一点｡
利用它来优化他们在那个环境中的行为｡
另外一件需要注意的事情是, 这是a3c, 这是a3c的核心｡
这是a3c的一个版本, 但实际上有一个更好的实现, a3c,
你们会在Adland的第一个实用教程中听到它｡
他会讲的是PyTorch的创建者是如何对GitHub上共享的代码进行调整的｡
就像你现在看到的, 他们有独立的神经网络, 只有他们共享V｡
这个调整实际上是把所有这些神经网络放到一起, 把它们放在一起｡
所以最终, 这里只有一个神经网络在代理之间共享｡
在此之前, 他们每个人都有一个神经网络, 演员和评论家共享这个网络｡
一个神经网络为关键角色共享, 一个神经网络为角色图共享;
现在他们都有一个神经网络, 这个神经网络是演员, 评论家, 演员, 评论家, 演员, 评论家共享的｡
然后批评家在这里是共同的｡
让我们看看, 让我们把这些图片移到左边.
所以腾出点空间｡
这基本上就是我们在实践教程中要用到的架构或结构｡
我知道, 像这样, 这可能听起来有点压倒性的在这个阶段, 但我们有我们还有一个要谈,
这是优势｡
在那里, 我们将看到更好的行动是如何进行的｡
是这样｡
我们将讨论直觉在其中的作用｡
但总的来说, 这就是它是什么｡
每个代理都使用一个网络, 因此它们共享｡
基本上这意味着它们分担了重量｡
网络的权重在代理之间共享｡
当它们更新时, 它们会更新整个网络, 而不仅仅是它们自己的网络｡
然后他们有输出｡
每个代理都有类似的操作, 然后他们有一个共享的批评者, 这将是监视｡
所以我知道这一切有点像现在有很多东西, 但希望它慢慢走到一起｡
至少这里的主要收获是, 批评者, 因为它是共享的,
这是代理人能够确保他们合作在一起, 以便更快地得到结果的方式｡
在下一个教程中, 我们将进一步了解所有这些是如何叠加在一起的, 所有这些是如何组合在一起的｡
现在, 我想推荐或者我们想推荐你们一本, 一本阅读｡
这是Jaromir Jaenisch写的博客｡
它叫做“让我们做一个A三键实现”｡
实际上有两部分实现和理论
这就是链接｡
这与Alan在本教程的实践部分将实现的内容非常相似｡
所以它不是专门针对这篇教程的, 不仅仅是针对这篇教程的,
而是为了这一节的鼓励, 一些额外的信息, 一些额外的见解｡
所以这就是为什么我们把它带到这里来｡
但不管怎样, 在下一个教程中, 我们将开始把所有这些, 我们之前讨论过的所有东西, 都集中起来｡
我期待着下次见到你｡
在那之前, 好好享受吧｡
一､