大型科普/教学/交流贴,alphastar剖析 综合

云天青大大 2020-8-2 07:17 9360

温馨提示:

  1. 本文尽可能的让大部分对高等数学的公式和符号不太熟悉的二五仔们也能无障碍的阅读本文,所以数学浓度很高的部分(算法部分)我会用加大加粗黑体字来提示数学浓度很高部分的开始和结尾,实在对数学头疼的读者可以跳过该部分(这部分占全文的10%-15%左右的篇幅),并不影响全文阅读的体验和连贯性。

  2. 文章中出现的所有数学表达式,方程和符号都可以略过,只看文字和图片部分也可以流畅的阅读和理解本文。

  3. 在文章将近末尾的地方,有一个很有意思的现象,我用红色字体标了出来,你们看到那里就知道了(但是不要直接跳到标红的部分哈,前面的内容一样的精彩)~

  4. 论坛发图片动不动就超出限制,要是某些图你们看着费劲觉得太小我也没啥太好的办法,建议缩放网页放大了看

  5. 如果实在感觉本文太长不看,请直接翻到下面的alphastar训练结果部分(这部分我用加大加粗的红色黑体字来标出了开头)

  6. 由于论坛每个帖子只能编辑10000字符,实在是写不开,所以对本文中的公式理解有困难的可以看本帖的第75楼(本帖的热门回复就有)或者帖子https://www.scboy.com/?thread-146875.htm,有详细的更进一步的解释


OK,下面开始正文~

 

       最近一段时间看黄哥的直播,“阿尔法星”这个词的出现频率并不算低,而本版块科普鲁星区下面直接写了个alphastar变人,我们需要星际猛男的支援!

image.png

       但是真正了解阿尔法星原理的二五仔我估计不占多数,所以有必要写一篇系统的帖子来介绍一下阿尔法星到底是怎么回事。不过鉴于笔者水平有限,有些地方可能写的不好,还请读者老爷们多多担待。

 

       首先,阿尔法星属于人工智能的最优秀的产品之一,既然是人工智能,那么所有的人工智能都是通过强化学习的方法来学习的,学习星际的阿尔法星自然也不例外。这里先简要介绍一下什么是强化学习。强化学习是交互学习中学习如何行动以实现某个目标(对于星际来说目标当然是赢)的机器学习方法。强化学习的过程是解决马尔科夫决策链的过程。在马尔科夫决策链中,智能体要估计每个动作a在当前状态s中的价值q(s,a),或者估计给定最优动作下的每个状态的价值v(s),并试图找出受益最大的那个动作然后去执行。马尔科夫决策链是一种通过交互式学习来实现目标的理论框架,进行学习以及实施决策的机器被称为智能体(AI)。智能体之外所有与其相互作用的事物都被称为环境。这些事物之间进行相互交互,智能体选择动作,环境对这些动作做出相应的响应,并向智能体呈现出新的状态。与此同时,环境也会产生一个收益,通常是一个实数,这就是智能体在动作过程中想要最大化的目标,如下图所示,收益越大说明该动作的选择越合理。

image.png

       为了让机器有足够的能力判断采取什么动作会使得收益最大化,我们需要引入价值函数。价值函数是状态(或状态与动作的二元数组)的函数,用来评估当前智能体的动作在给定状态(或给定状态与动作)下有多好。这里“有多好”的概念是用未来预期的收益来定义的,或者更准确的说,就是回报的期望值。如何计算和优化价值函数是AI算法设计的核心,目前比较主流的算法有动态规划法,蒙特卡洛方法,时序差分学习发和n步自举法。这些算法都涉及到大量的数学知识,这里不多说。

 

      下面掌声有请主角,登上过《nature》杂志封面的星际争霸2AIalphastar登场~

 

      既然在前面已经说了,智能体要和环境进行一系列的交互,那么对alphastar来说,环境是什么呢?

image.png
 

       如上图所示,左边是我们平时看到的星际争霸游戏界面,右边是电脑把我们肉眼看到的图像抽象成的样子。

 

      下面详细解释一下,alphastar将整个环境的信息分成了四个部分,第一部分是实体信息,就是场面上有哪些建筑/小兵/晶体矿等等,每一个实体都可以如上图右边一样抽象成一个向量,该向量内部包含大量的信息,如血量,蓝量,攻击力,所在位置等等。第二部分其实就是我们平时看的左下角的小地图。对于alphastar来说,小地图的所有信息被抽象为20176×200的矩阵,里面包含小地图的全部信息。第三部分是玩家数据,就是alphastar在登陆欧服天梯后会观察对手的天梯分和种族,这部分信息很少。第四部分是游戏统计方面的信息,比如相机的位置(就是你把屏幕拖到哪个地方了)和当前时间(现在是游戏的几分几秒),这部分信息也很少。关于环境信息的详情请看下表。

image.png
 

      回到本文的第一张图,经过观察当前环境后,alphastar会做出自己的选择(即选择下一步的动作)。其动作主要分为6个部分,第一部分是动作类型(移动/攻击/升级等),第二部分是选中执行的单位,第三部分是选中目标(你想a对面的哪个兵),第四部分是判断是否立即执行动作,如果现在不执行可以把动作存起来过一会在执行。第五部分是是否重复当前动作,第六部分是等候多久再接收下一次的输入(就是拟人的部分,可以用来模仿人类的延迟和限制AIapm),输出动作的部分详情参见下表。

image.png
 

      通过输入的环境,如何决定输出(alphastar选择的动作)?这中间是一个非常复杂的神经网络,如下图所示(对着上面的两张表和两段话来看,应该不难看懂这张图,其中最下面的四个浅绿色框是前文提到的四部分环境信息,最上面的六个黄色框是前文提到的六个动作,红色是输出部分,蓝色是神经网络决策部分)

image.png
 

       所以,alphastar的流程可以由下图来简述。先观察当前环境,然后根据神经网络的策略,最后得出动作。那么,核心的问题,如何训练神经网络才能达到目的呢?

image.png
 

       下面开始详细的讲解alphastar的算法,由于alphastar和其他的AI一样,都是采取的强化学习算法,所以目的自然是优化策略,使得其期望的奖励最大。奖励可用下列公式表示

image.png
 

       由于训练的模型不是采样的模型,且动作空间高度复杂,拟合价值函数也很难(通俗的解释就是同样的战术你对这个对手也许好使,但是当对手换人后这招就未必行得通了。比如你打solar可以野bb,但是打别人就未必成功率高),所以找到该函数的最大值并不容易。为了解决这个问题,alphastar采用了如下图的强化学习办法,被称为Actor-critic结构,同时还大规模应用了多智能体/self-play/league等技术。

image.png

 

 

注:以下的部分数学浓度极高,患有数学恐惧症的读者可以跳过,直到看到下一行加大加粗加粗黑体字为止。

 

       下面开始详解上面几张图中alphastar用到的各种技术和算法。

       首先我们来讲一下强化学习的actor-critic结构,该结构的概述如下图。

image.png
 

       这里,为了避免遇到正在学习的策略和负责采集数据的策略不同,alphastar使用了重要性采样的技术,如下。

image.png
 

       所以,策略梯度的表达式改为下

image.png
 

       为了避免出现不收敛的情况,这里通过V-trace限制加了一个重要性采样系数,如下

image.png
 

      对此感兴趣的读者可以阅读IMPALA的论文,其中关于采样系数的部分还是非常有意思的,我把论文关于这部分的截图发在下面

image.png
 

       除此之外,alphastar还利用了另一个算法,叫做UPGO算法来解决优势估算的问题。对于AI来说,传统算法的优势估算是根据当前动作的预期收益减去当前状态的预期收益所组成的,如下

image.png
 

       在引入alphastarUPGO算法之前,我们先介绍一个新的概念,叫做Q函数。Q函数表示的是状态动作价值,也就是在当前动作St下你采取动作At后的预期收益,与之前引进的V函数相比,Q函数只考虑了一个给定的动作At,而不是对所有的动作求平均。与原来的advantage估算相比,alphastar使用的一个迭代项Gt来取代了原来对于动作价值的估算。Gt在正常情况下和上一步的值保持不变(即只考虑当前的reward以及下一步的价值),除非采取的优势大于0,则继续迭代GtAlphastar这方面的思想是,当在状态St下采取了动作At发生了好事情,则把G0换成G1。上一段中提到的所有概念表达式如下

image.png

 

image.png

 

       在训练神经网络的同时,由于actor-critic的存在,我们还需要训练一个价值网络,alphastar使用了TD(λ)算法来优化价值网络。价值函数的表达式如下

image.png
 

       如何训练价值函数呢?对于如何训练价值函数,有TD(0)算法和TD(1)算法。其中TD(1)算法又称为蒙特卡洛法。TD(0)算法有偏但是方差小,TD(1)算法无偏但是方差大,这里采用了TD(λ)算法来平衡两者,其实就是加权平均。本段中所有概念的表达式如下

image.png
 

       通过简单的迭代计算,我们得到了如下结果

image.png

 

image.png

 

        Alphastar在学习价值网络的时候用到了几个技巧,他将对手和自己的观察同样的纳入了价值网络且把对手的预期收益也计算在内,这样可以对数据的利用率达到翻倍的效果,关于这一点在本文接近结尾的部分还会有介绍。

 

       好了,患有数学恐惧症的少年们可以从这里开始继续往下看了。

 

      下面介绍alphastar学习的最后一个模块,自学习和联盟学习,这一块是alphastar获得巨大成功的重中之重。无论是alphastar还是更早的AI下围棋的alphago,都需要找一个对手来练习,对手的选择对训练的结果影响非常巨大。对于alphago来说,采用的是自学习的方法,就是训练的AI和自己打。自我练习容易出现一个很大的问题,就是循环策略问题。这里简单解释一下什么是循环策略问题,假设说你自己和自己玩石头剪刀布,你发现自己一段时间内只会出石头,你就会每一局都出布。然后你发现自己近期每一局都出布,你就每一局都出剪刀,过一段时间又每一局都出石头,形成一个死循环,永远无法训练出一个更好的策略来同时面对以上三种不同的情况。为了解决此问题,google旗下deepmind的工程师们提出了虚拟自学习的办法,就是从训练开始,每隔一段时间给自己存档,存档多了就得到了一个种群,然后均匀随机的从种群中选出对手与正在训练过程中的智能体进行对战。然而这种办法存在着一个问题,那就是初期的那些存档的智能体全都是一群鸡,到了智能体训练的后期,和鸡(前期自己的存档)对战就属于完全浪费时间,因为胜率总是100%。为了解决这种情况,alphastar提出了有优先级的虚拟自学习算法,即先估算一下当前训练中的智能体和种群中所有对手对战的胜率,然后经常打败当前正在训练的智能体的对手被抽到的概率就高,反之亦然。说白了就是多去和高手去打,少和鸡打,提高数据的利用率。具体的如何挑选对手的概率计算公式如下

image.png
 

      其中式子里面的f为加权函数,表达式如下

image.png
 

       使用不同的加权函数会得到不同的效果,会在本文下面的部分详细讨论。

 

       总结:对于自学习算法来说,你的练习对手只有一个,就是最新的自己。对于虚拟自学习和优先级虚拟自学习来说,你的对手是一个种群中的一个随机个体,这个种群中的每一个智能体都是你的祖先(过去的你自己)。

 

       介绍完alphago采用的自学习方法之后,我们介绍一下alphastar提出的新的联盟训练的方法。在alphastar的联盟训练中,他将之前提到的种群的概念拓展了一下,将所有的智能体分为三类。第一类是主智能体,就是正在训练的智能体及其祖先,也就是重点的培养对象。第二类智能体是联盟的利用者,它发现了全局的盲点,能打败联盟中的所有智能体。第三类智能体是主利用者,它能打败正在接受训练中的主智能体,也就是说它发现了主智能体和它的祖先们的弱点。Alphastar保存了这三类智能体的所有祖先,并把这所有的总和称之为联盟。

 

      下面详细解释一下这个联盟,这三类智能体的输入输出以及神经网络都没有区别,都是本文之前画的图里提到过的东西。这三类智能体的区别有以下三种。第一,它们训练的过程中选取的对战对象不同。第二,它们如何存档的方式(在什么情况下存档现在的策略)不同。第三,它们是否会将策略的参数重置(以多大的概率将策略的参数重设为监督训练给出的初始化)有所不同。

 

       下面具体来看一下这三类不同。先说联盟中的第一类智能体,主智能体(也就是最后拿去欧服天梯以及和serral等职业选手比赛的智能体)。在整个联盟中,只有3个主智能体(3个种族各有一个)。上段中说到3类智能体的不同主要有三处,那么就一点一点来说。先说主智能体是如何选取练习对战的对象的。主智能体的练习对象选取主要分为以下三块。其中有50%的概率会从联盟中的所有智能体随机挑选一个作为对战练习的对象,有35%的概率是和现在当前最新的自己对战,有15%的概率会去和能打败当前主智能体的联盟利用者或者过去自己的祖先(前一段时间自己的存档)对战。对于第一种情况,挑选哪一个智能体作为自己的对手遵循之前提到的公式作为概率分布

image.png
 

      这里f是一个加权函数,在alphastar中,使用的是f(hard)函数,如下

image.png
 

       其中,p=2.也就是说,假设有一个智能体有90%的概率击败当前接受训练的主智能体,那么当前主智能体就有(1-10%)^2=81%的概率抽到这个智能体与之对战,概率非常的高。第二种情况是35%的几率和自己对战,这没有什么好说的,就一带而过。第三种情况是如果发现了某个自己的祖先对战现在的自己胜率很高那么就说明很有可能我越练习反而练回去了,就需要找过去的自己对战看看哪里出了问题。或者说某个联盟利用者对当前主智能体的胜率很高,那么则说明该联盟利用者发现了主智能体的弱点,所以需要和联盟利用者去打,看看能学到什么。

 

      介绍完了主智能体的对战对象选取策略之后,我们看看剩下的两个方面。第一是什么情况下存档现在的策略,这里alphastar是定时存档,即每过200000000020亿)个时间步之后就存档一次。第三个方面,主智能体的参数永远不重置。

 

       讨论完主智能体的概念之后我们来看看第二个类型的智能体,也就是联盟的利用者。联盟利用者是能打败现在的联盟中所有智能体及其祖先的智能体,在每一个时刻,整个alphastar系统中有6个联盟利用者(每个种族各2个)。对于联盟的利用者来说,它们选取对战的对手就完全是根据优先级虚拟自学习的概率与全联盟的对手进行对战,其挑选对手的概率分布如下

image.png
 

       第二个方面,当联盟的利用者能以70%以上的概率打败联盟中的所有智能体或距离上次存档有200000000020亿)个时间步之后就存档。第三个方面,在联盟利用者存档的时候,会有25%的概率对参数进行重置。

 

       第三类智能体是主利用者,主利用者是能够打败当前受训的主智能体及其所有祖先的智能体,这类智能体在alphastar的系统中有3个(每个种族各1个)。主利用者挑选对战对象的方法和上述两类智能体有所不同,主要分为以下几步。第一步是从正在训练的3个主智能体随机挑选出来一个进行对战,如果发现该主利用者能够以10%以上的概率打败该主智能体,则就和这个主智能体打。如果胜率不到10%,则说明这个主利用者是一只鸡,则退而求其次,从所有主智能体过去存档的祖先中挑选对手,挑选对手的概率分布还是之前的优先级虚拟自训练算法,如下图

image.png
 

       这里要注意的是,这里的f函数不是之前的二次方项而是

image.png
 

       这个函数的特点在于,当x=0.5的时候,函数取得最大值,所以说和自己旗鼓相当的对手更容易被挑选中(和主智能体一直在挨揍不一样,主智能体经常和比自己强很多的智能体打,而主利用者经常和自己水平差不多或者比自己稍微强一点点的智能体打)。第二个方面,主利用者的存档方式是当它能够以70%或者更高的胜率打败全部三个正在学习的主智能体或者距离上次存档400000000040亿)时间之后就会存档,而且每次存档之后都重设自己的策略参数。这里,每次存档主利用者都会重置自己的策略参数,是为了要让这类智能体一直忘掉过去自己的记忆,以一张白纸的状态和最新的主智能体去对战,然后发现主智能体的弱点,所以要一直更新和重置这类智能体的参数。

 

       以上就是关于alphastar的算法和策略的介绍,不知道二五仔们听懂理解了多少。


下面我截取几张alphastar论文原文中的图来看一下alphastar训练的结果


alphastar的论文原文全文参见网址https://www.nature.com/articles/s41586-019-1724-z

image.png
 

       首先引人注目的自然是alphastar在欧服的天梯分,我们看到最初版本的alphastar supervised是欧服钻石组水平,差不多相当于比84%的玩家强。而后续版本的alphastar midalphastar final都是宗师组水平,分别击败了99.5%99.85%的天梯玩家。下面具体来看alphastar使用不同种族的表现。

image.png
 

       如上图所示,alphastar的三个种族都在欧服天梯打了30把,最终p赢了25把,z和t赢了18把(pimba?)。最终的天梯成绩是alphastarp6275分,t6048分,而z5835分。然而值得一提的是alphastarzvz估计有6500分的水平,为所有小项除了pvt中的最高。pvt因为一共打了4把全都赢了所以不能估计到底是多少分的水平(所以真的是timbapvt没法打么狗头)。下面在看一下alphastarapmepm

image.png
 

image.png

       

      上图是不同种族的apmepm的分布,其中红线是暴雪根据天梯的replay得出的宗师组玩家的apmepm水平,而蓝线是alphastarapmepm。从上图中可见,宗师组虫族人类玩家平均apm317,神族是234,人族是260。在99.9%的情况下虫族玩家的apm不会超过1663,神族不会超过907,人族不会超过789。而三个种族的apm瞬间峰值则是z4199jbr你手速不行啊,有加速键盘还按不到这个数),p1814t890。与之对比,alphastar使用t,p,z三族的平均apm分别是260,234259,99.9%的情况下使用t,p,z三族apm不会超过554,537,823apm瞬间峰值则分别是t755p621z1192。由此可见alphastarapm是比人类宗师组玩家要低不少的。

 

       但是,虽然alphastarapm低,epm却比人类宗师组玩家高,主要是人类相比于AI,废操作太多。具体来看,宗师组虫族人类玩家平均epm205,神族是165,人族是174。在99.9%的情况下虫族玩家的epm不会超过1259,神族不会超过739,人族不会超过671。而三个种族的epm瞬间峰值则是z4168p1814t873。与之对比,alphastar使用t,p,z三族的平均epm分别是183,187211,99.9%的情况下使用t,p,z三族epm不会超过487,503,655epm瞬间峰值则分别是t571p587z823

 

       看到这里,我估计又有二五仔要鞭尸启元,说启元的epmapm过高,先别急,我们再来看看alphastar的消融结果(即去掉某关键因素alphastar会达到什么水平)。

image.png
 

        Alphastar的消融结果如图所示。我们先看一下k图,对于传统的价值函数来说,如果价值函数只考虑自身的话,则只有22%的胜率。当价值函数引入了对手的价值函数一起作为考虑之后,胜率飙升至82%,可见此新的价值函数还是非常有用的。比较好玩的见g图,对于alphastarapm的限制。显然,如果apm限制为0,则elo分数为0(你什么都做不了当然是0分了,只能等死)。但是有意思的点在于,当apm的限制乘以2(即以前限制apm不能超过300现在限制不能超过600)和去掉apm限制(你可以和悍马2000一样apm达到几十万)之后,alphastarelo分数反而变低了,也就是说,更高的apm居然让alphastar变菜了,这一点很出人意料。作者团队认为,原因很有可能是因为过高的apm会让AI集中精力在微操的局部优化上面,而没有办法在有限的训练时间内作出战略层面的优化(比如AI如果可以像悍马2000那样100条狗硬冲下来20辆坦克所组成的坦克阵,则AI会在价值函数中给无脑爆狗赋予一个很高的收益值然后经常无脑爆狗不出高级作战单位,结果对手出了先知等狗够不着的单位就只能gg了)。另一种可能是星际的许多操作(比如说造兵)需要花一些时间才能完成,apm太高反而会打断操作。所以,之前广为被诟病的点(让机器碾压人类的高APM(高手速)会让训练效果变差)似乎在alphastar这里并不适用。同时,参见之前启元团队在论坛发表的帖子,apmepm其实对胜率并没有那么大的影响,更何况笔者下载了启元团队公布的启元vs理赔难的录像,并每隔3秒截图看一下双方的瞬时apmepm并作了统计,至少在前8分钟启元的apmepm对比理赔难并无明显优势。至于第二把三线空投那一把,由于启元团队没有公布录像,所以并不敢说是否apm和epm有明显优势。

 

      最后,我们来做一个简单的总结,总结一下alphastar取得巨大成功的原因。笔者认为,alphastar取得巨大成功的原因主要在于以下几点。

1.     设计了一个高度复杂的神经网络以及一个解耦的方式把游戏的信息解耦成了一个个向量等信息输入。

2.     通过Autoregressive的网络设计解耦了结构化的动作空间

3.     引用了一个非常复杂先进的强化学习算法

4.     首次采用了复杂的联盟训练策略(alphastar之前我从未在任何论文和网站中见过这种策略,可以说是非常新颖)。该策略的主要目的是为了探索策略空间,并得到越来越多的策略然后主智能体与联盟其他智能体对战的过程中可以学到更多非常有用的知识和信息(这一块目前还存在巨大的操作和进步空间,alphastar目前还未展现出类似于alphago的神操作)

5.     谷歌财大气粗,alphastar拥有大量的计算资源和强大的算力(之前提到的联盟训练算法中,频繁的保存种群中每一个个体的祖先需要消耗大量的TPU)

       

       到这里,本文差不多就到了尾声,希望能帮助到广大的二五仔们更多的了解到alphastar以及星际方面的人工智能。如果对人工智能强化学习这方面感兴趣的话推荐阅读Richard S. SuttonAndrew G. Barto写的强化学习第二版,这本书可以说是人工智能方面的圣经了,写的非常经典,有中文翻译版。但是卖得有些贵,见下图。

image.png
 

       最后,做一波广告吧算是,我本人不是专业的人工智能方面的研究者,我是专业的数学类的研究者,对此算是业余爱好比较感兴趣。最近我和我的几个朋友一起组队参加了中科院的先导杯,我也算是报个大腿,比赛的新闻如下

image.png

 

image.png

 

      我的队友比较给力,我抱大腿我们队伍在六月份的月榜在两道人工智能赛道的题目都排在第三名,七月份的月榜我还没看

image.png

 

      希望有兴趣的猛男和二五仔能加入我们的队伍中,当然如果有精英二五仔能带我们躺赢拿冠军那热烈欢迎


      (弱弱的吐个槽,隔壁基础算法赛道参赛选手的实力差距也太大了吧)

image.png

      (再弱弱的吐个槽,似乎已经有二次元中二选手打入中科院内部了)

image.png



      好了,本帖写完收工,谢谢收看,毕竟笔者本人并非专业的人工智能类方向的学者,如有写的不妥之处,欢迎在留言区批评指正,也欢迎大家提出问题看看我有哪些地方没有讲清楚(alphastar系统非常复杂,其中部分细节我本人也不敢说全懂,也还在研究中),感激不尽


最后于 2020-8-3 13:08 被云天青大大编辑 ,原因:
热门回复
  • 云天青大大 猛男
    17 举报

    群里好多人表示本帖好多地方看不太懂,尤其是数学公式的部分,所以这里来详解一下。


    不过看这一楼,我更建议真的对这方面有兴趣的二五仔和猛男们去阅读Richard S. SuttonAndrew G. Barto写的强化学习第二版,这本书可以说是人工智能方面的圣经了,写的非常经典,有中文翻译版。但是卖得有些贵,见下图。

    image.png


    下面开始正文吧,看任何公式的时候,你们记住一个强化学习的中心思想,那就是训练的时候,决策对了给奖励,决策错了给惩罚,目标就是使奖励最大化,其实跟小时候学习学的好发小红花 题目做错打手心一样。


    下面一个一个公式来说吧。


    image.png

    这是奖励的计算公式,其中st等当前时间t下的环境,at是当前时间t下你的动作,我们看到这里用了一个连加号,表示你采取的动作会在之后一系列事件都产生收益,但是这里要加一个系数,意思是收益产生的时间离现在的时间越远则收益越小(你在对面只有1矿的时候穿火车杀一片农民比对面已经菌毯铺了半个地图好几个矿的时候杀农民好使的多)



    image.png


    这三个式子放在一起来说,在智能体计算出当前动作的优势image.png之后,就可以通过优势来计算收益。这个带有log和倒三角符号(梯度)的项实际上是指的优势最大化的计算,最速梯度法(啥是最速梯度法真就一个帖子打死我都讲不完),前面的项是为了避免正在学习的策略和正在采样的策略不同而准备的。


    image.png

    image.png


    这几个式子看着好像很复杂的样子,但是仔细一看,实际上没有啥复杂的符号,都是加法和减法,实际上第一个式子是预期收益的计算,是当前动作的预期收益,减去当前状态的预期收益,然后Q函数指的是状态动作价值,这一点在笔者上一个帖子的文字部分有详细的介绍,这里就不重复了。


    image.png

    image.png


    这一段同样的,看着很唬人,但是也是只有加减法,注意这里每一项有一个系数λ,表示的是收益会随着时间衰弱。


    image.png

    这个式子同样不难,分子就是指的A能打败B的概率,分母是C里面的一系列B能被A打败的概率只和,显然分子越大,这个数的值越大,也就是说image.png越大,被挑中的概率越大。这里f的选择对对手的挑选有很大影响。

    image.png

    当选取第一个函数的时候,x越大则f(x)越小,所以更容易挑选到能打败自己的对手,选取第二个函数的时候通过简单的求导我们发现当x=0.5的时候,f(x)取得最大值,所以更容易挑选到旗鼓相当分对手。


    好了,简单的公式讲解部分到此结束,希望能帮助到大家更好的理解alphastar的原理,更深一步的学习还是要去阅读Richard S. SuttonAndrew G. Barto写的强化学习第二版。


    2020-8-3 09:38 回复
最新回复 (85)
全部楼主
  • JK灵梦 精英猛男
    0 举报 2
    2020-8-2 07:19 回复
  • tuteli 灵魂画湿
    0 举报 3
    2020-8-2 07:22 回复
  • 0 举报 4

    说的没错,基于数学算法的人工智能恰好证明的启元为了吹“像人一样”这种言论是多么的可笑

    2020-8-2 07:23 回复
  • 群内鬼 拟态猛男
    1 举报 5
    这个货太干了,这不来个精?
    2020-8-2 07:24 收起回复
    云天青大大: 不来个精我干死tager
    2020-8-2 07:27回复
  • 赤色彗星 二五仔
    0 举报 6
    教授牛逼嗷
    2020-8-2 07:25 回复
  • 待宰的五只羊 精英猛男
    0 举报 7
    看完了,感觉有点收获
    2020-8-2 07:36 收起回复
    云天青大大: 哪怕你稍微有一点点收获,就算我没白写
    2020-8-2 07:47回复
    乾坤深似海: 太硬核了2333
    2020-8-4 10:16回复
  • 五香熊掌 二五仔
    0 举报 8
    看完了,完全没看懂,云叫兽nb
    2020-8-2 07:41 回复
  • 0 举报 9
    太强了
    2020-8-2 07:41 回复
  • gluvly 鸡中之霸
    0 举报 10
    这数学部分得啥水平才能看懂啊,我这三脚猫数学表示题干都看不懂。云教授牛逼!
    2020-8-2 07:44 收起回复
    云天青大大: 你要真想学的话很快就看得懂
    2020-8-2 07:49回复
  • 0 举报 11
    2020-8-2 08:03 回复
  • 似雨若离 二五仔
    0 举报 12
    好,我学会了,我一会就去研发!
    2020-8-2 08:04 收起回复
    云天青大大: 去吧去吧~
    2020-8-2 08:12回复
  • 量子比特 精英猛男
    0 举报 13
    太强了
    2020-8-2 08:30 回复
  • 野人麻酱 混元体猛男
    0 举报 14
    先赞再看
    2020-8-2 08:31 回复
  • EdwardElric 混元体猛男
    0 举报 15
    2020-8-2 08:36 回复
  • 永不为奴钱赞企 拟态猛男
    2 举报 16
    这个帖子写得确实好,可以算是这个论坛里价值最高的帖子了,有一个小小的建议,关于状态St,行为At这一类variable,考虑到广大读者的背景不同,可以提一下t是下标,代表当前这个time(时间点,不是指李少)。

    至于帖子里的内容,强烈建议对人工智能有兴趣的二五仔/猛男仔细阅读,挑几点说吧:
    1)actor-critic是个很有意思的算法,非常值得研究,这个在UCB的CS专业也是研究生层面的内容。
    2)多个相似算法的加权平均这一点,对于结果精确性是有帮助的,但是这对权的判断要求很高,不是任何加权平均都能benefit but not harm accuracy,这里因为用的是向前看n步的结果,属于比较简单的加权,不同的情况适用不同的加权方式。
    3)自学习跟联盟训练真的是亮点中的亮点,整段读下来的感受就是,任何一个variable的选择出错,就是万劫不复的overfitting,这个做过ai相关训练的人都能体会(这里赞一下云教授的队伍名,underfitting真的是所有人工智能领域从事者的心头好,underfitting就代表着希望啊)。这个训练过程中,包括均匀随机选择以及选择中的加权平均都是很好的解决重复训练中overfitting的方式,强烈建议对人工智能感兴趣的二五仔对这段好好揣摩。

    反正云教授牛逼就对了,我去研究alphastar的paper了。
    2020-8-2 08:37 收起回复
    云天青大大: 八嘎(>﹏<) 明明是隔壁的宇宙美少女,代表暗物质消灭你这个队名更经典
    2020-8-2 08:53回复
  • 0 举报 17
    干死云教授
    2020-8-2 08:38 收起回复
    云天青大大: 你能不能换个词。。。
    2020-8-2 08:49回复
    保加利亚土豆王: 回复 云天青大大: 干死云天青大大
    2020-8-2 09:36回复
  • 一天一觉 二五仔
    0 举报 18
    :哦,原来是这样,我懂了
    :你看懂什么了?
    :emmmmmm
    2020-8-2 08:38 回复
  • madbird302 猛男
    0 举报 19
    不愧是教授
    2020-8-2 08:39 回复
  • 0 举报 20
    我个丈育
    2020-8-2 08:45 回复
  • Michmh 二五仔
    0 举报 21
    %%%%%%%%%%%
    2020-8-2 08:46 回复
  • X丶幻空 精英猛男
    0 举报 22
    看完还是看不懂,反正教授nb就是了。
    2020-8-2 08:47 回复
  • 难以言表的星尘 精英猛男
    0 举报 23
    教授还是你飙车的帖子受欢迎一点
    2020-8-2 08:50 回复
  • 青卿子衿 版主
    0 举报 24
    你们看看什么叫专业,这就叫专业.jpg
    2020-8-2 08:55 收起回复
    云天青大大: 低调基操勿六皆坐
    2020-8-2 09:02回复
  • 茶摘 混元体猛男
    0 举报 25
    啊啊,完全看不明白哇
    2020-8-2 09:00 回复
  • 0 举报 26
    我希望,总有一天我能看懂这个
    2020-8-2 09:04 收起回复
    云天青大大: 加油,不难的
    2020-8-2 09:22回复
  • 0 举报 27
    顶一下,都懂了(
    2020-8-2 09:04 回复
  • 0 举报 28
    云教授tql
    2020-8-2 09:07 回复
  • 第27个混元体 混元体猛男
    0 举报 29
    这绝对是一篇值得花金币点赞的文章,点赞+收藏! 云教授有东西的。
    2020-8-2 09:08 回复
  • 色相头 混元体猛男
    0 举报 30

    我想知道Alphastar在星际对战中对于地图信息中每个单位是不是有多个坐标轴作为参考的?
    纯好奇,因为从小到大只见过三坐标轴的坐标系
    2020-8-2 09:19 收起回复
    云天青大大: 有多少个参数就是多少个坐标轴咯
    2020-8-2 09:22回复
    色相头: 回复 云天青大大: 很难想象那个坐标系是啥样子哇
    2020-8-2 09:40回复
    云天青大大: 回复 色相头: 就是n维的向量呀
    2020-8-2 09:42回复
    色相头: 回复 云天青大大: 嗷嗷啊,这么一说就有点明白了
    2020-8-2 10:02回复
返回