注意从上面的讨论我们可以看出,没有绝对“好”的数据表示,我们根据对某个特定的任务是否有效来衡量一种表示方法的好坏。数据表达的质量可不仅仅取决于输入数据的形式,而是跟整个数据分析的任务密切相关。比方说输入的对象是自然人,人当然是个十分复杂的对象,如果要量化描述之,那么对于“预估此人能否成为优秀的篮球队员”这个任务,“身高、摸高、100米跑时间”这些量化的指标就比较合理;而对于“预估此人会不会去观看某部电影”的任务,“票价与此人月收入的对比、前一年上映的每部电影此人是否观看过……”这些量化指标就显得合适。
深度学习的兴起的最大功臣是在随这类模型而得到的有效数据表示:从输入到输出之间架构好深度神经网络之后,我们就自然而然地把输入数据的转换,预测输出的数据模型,模型产生的输出与真实样例之间的对比,这三者统一到了同一个训练过程中。神经网络的结构也就同时规定了“怎样整理转换输入数据”和“怎样用整理过的输入数据预测所需的输出”这两个在数据分析中的关键步骤。
•序列转换模型
根据Deepmind的说法, AlphaStar 采用了基于注意力机制的序列转换的表示模型 。这种数据表达方法的起源是在自然语言处理领域,我们能够想象,这种方法擅长于表示成序列出现的数据样本。具体地说,transformer模型来自于自然语言处理中的翻译任务,把一句话——即一串单词和标点(语言的基本单位,tokens)——转换成另一种语言的基本单位。Deepmind同样没有详述这个模型在 AlphaStar 中的具体使用方法。不过据上文提到的使用人类对战数据预训练作为“种子AI”的做法来看,有可能预训练的任务被制定成了学习从输入“游戏状态序列”到输出“操作指令序列”之间的联系。
•策略模型
基于注意力机制的序列转换目前已经发展成为一个大的模型家族(刚刚在自然语言处理领域大放异彩的BERT也是其中一员),Deepmind 提到 AlphaStar 的输出策略的计算模型是一种产生“指针”来“引用”自己的输入序列从而构建输出序列的自回归(auto-regression)模型。
•基于多智能体的批评家
AlphaStar 的强化学习核心是“实干家-批评者”(AC)算法族。其具体的选择是引入一种更加适应多个AI共同学习,但每个AI的观测受限的学习环境的估值方法。其基本原理是采用“要不然”式估值(原名为Counterfactual Multiagent,直译为“反事实多智能体”),批评家在评判AI之前做的一项决策的价值时,使用“要是当时不这么做”的话平均下来会有若干回报,那么当初这么做的优势(劣势)也就相应得出。
以上大致是我们从目前已有的知识所能推测的AlphaStar的详细训练方案。在Deepmind正式论文发表之后,补足其中少量细节,我们就可以沿用这套方法,创建自己的星际争霸2训练环境。