加入收藏 | 设为首页 | 会员中心 | 我要投稿 宣城站长网 (https://www.0563zz.cn/)- 数据湖、行业智能、边缘计算、开发、备份!
当前位置: 首页 > 站长资讯 > 动态 > 正文

做过性能优化的工作吗?你会从哪些方面入手做性能优化呢?

发布时间:2021-02-05 15:52:54 所属栏目:动态 来源:互联网
导读:实时战略游戏 MARL 的另一种重要的游戏应用领域,是实时战略游戏,包括星际争霸,DOTA,王者荣耀,吃鸡等。该类游戏相比于前面提到的国际象棋、围棋等回合制类型的游戏,游戏 AI 训练的难度更大,不仅因为游戏时长过长、对于未来预期回报的估计涉及到的步数

实时战略游戏

MARL 的另一种重要的游戏应用领域,是实时战略游戏,包括星际争霸,DOTA,王者荣耀,吃鸡等。该类游戏相比于前面提到的国际象棋、围棋等回合制类型的游戏,游戏 AI 训练的难度更大,不仅因为游戏时长过长、对于未来预期回报的估计涉及到的步数更多,还包括了多方同时参与游戏时造成的复杂空间维度增大,在一些游戏设定中可能无法获取完整的信息以及全局的形势(比如在星际争霸中,不知道迷雾区域是否有敌方的军队),在考虑队内合作的同时也要考虑对外的竞争

OpenAI Five 是 OpenAI 团队针对 Dota 2 研发的一个游戏 AI [13],智能体的策略的学习没有使用人类玩家的数据、是从零开始的(learn from scratch)。考虑游戏中队内英雄的协作,基于每个英雄的分布式控制方式(即每个英雄都有各自的决策网络模型),在训练过程中,通过一个超参数 “team spirit” 对每个英雄加权、控制团队合作,并且使用基于团队整体行为的奖励机制来引导队内合作。考虑和其他团队的对抗,在训练过程中使用自我对抗的方式(也称为虚拟自我博弈,fictitious self-play, FSP)来提升策略应对复杂环境或者是复杂对抗形势的能力。这种自我对抗的训练方式,早在 2017 年 OpenAI 就基于 Dota2 进行了相关的研究和分析,并发现智能体能够自主地学习掌握到一些复杂的技能;应用在群体对抗中,能够提升团队策略整体对抗的能力。

AlphaStar 是 OpenAI 团队另一个针对星际争霸 2(Starcraft II)研发的游戏 AI,其中在处理多智能体博弈问题的时候,再次利用了 self-play 的思想并进一步改进,提出了一种联盟利用探索的学习方式(league exploiter discovery)。使用多类个体来建立一个联盟(league),这些个体包括主智能体(main agents)、主利用者(main exploiters)、联盟利用者(league exploiters)和历史玩家(past players)四类。这几类智能体的策略会被保存(相当于构建了一个策略池),在该联盟内各类智能体按照一定的匹配规则与策略池中的其他类智能体的策略进行对抗,能够利用之前学会的有效信息并且不断增强策略的能力,解决普通的自我博弈方法所带有的 “循环学习” 问题(“Chasing its tail”)。
 

最终学习收敛到最优的 Q_tot 并推出对应的策略,即为 QMIX 方法的整个学习流程。

3. 多智能体强化学习的应用

3.1. 游戏应用

分步对抗游戏

这类游戏包括了围棋、国际象棋、扑克牌等,MARL 在这几种游戏中都有相关的研究进展并取得了不错的成果。其中,著名的 AlphaGo 通过在和人类对战的围棋比赛中取得的惊人成绩而进入人们的视野。围棋是一种双玩家零和随机博弈,在每个时刻,玩家都能够获取整个棋局。它一种涉及超大状态空间的回合制游戏,很难直接使用传统的 RL 方法或者是搜索方法。AlphaGo 结合了深度学习和强化学习的方法:

针对巨大状态空间的问题,使用网络结构 CNN 来提取和表示状态信息;

在训练的第一个阶段,使用人类玩家的数据进行有监督训练,得到预训练的网络;

在训练的第二个阶段,通过强化学习方法和自我博弈进一步更新网络;

在实际参与游戏时,结合价值网络(value network)和策略网络(policy network),使用 蒙特卡洛树搜索(MCTS)方法得到真正执行的动作。
 

3. 不要被三大项给骗了

无论你多么崇拜这三大项,你都不应该被你的爱蒙蔽。自学成才的机器学习工程师是他们自己的比较大的怀疑者。

他们知道,数据不能进行证明,只能进行反驳(只要在十亿数据中有一个数据点就能证明之前的概念是错误的),一点点糟糕的数学运算就会产生极端的后果(自然不是线性的),代码的效率只有在它最薄弱的地方才有。

无论三大项多么神圣,直觉也不应被忽视。如果一个结果好得令人难以置信,除非你很幸运,否则它很可能就是错的。

4. 和你需要提供服务的客户保持好关系

让机器做它们擅长的事情(反复重复过程)。让你去做你擅长的事情时(关心、设身处地、提问、倾听、领导、教学)。

你的客户不像你那样关心三大项。他们关心他们的需求是否得到满足。

5. 向那些为你奠定基础的人致敬

当你想到计算机、机器学习、人工智能、数学等领域时,你会想到谁的名字?

Ada Lovelace,Geoffrey Hinton,Yann LeCun,Yoshua Bengio,Alan Turing,Fei Fei Li,Grace Hopper,Andrew Ng,Jon Von Neumann,Alan Kay,Stuart Russel,Peter Norvig?

当然,在你听到或记住的所有名字中,有1000个名字功不可没,但却从历史书中消失了。

后起之秀应该认可前辈们做出的巨大努力,但也应该认可他们中的每一个人都会告诉这位新晋的机器学习工程师同样的事情:这个领域的未来取决于你的工作。

6. 不要低估了完全重写的力量

你的目标应该是在第一时间构建可靠的东西。但随着技能的提高,你可能会想重构之前的作品,拆掉它们,用新的视角重新创造它们。

自学成才的机器学习工程师都明白,就像大自然一样,软件和机器学习项目永远不会完成,它们一直在运动。数据变化,代码在新的硬件上执行,一个天才发现了一个计算高效,低内存依赖的优化器适合,并称之为Adam。

你不仅应该对这些变化持开放态度,还应该欢迎它们。一旦它们出现,请使用你比较好的判断力来判断它们是否值得实现到你的系统中 —— 仅仅因为有些东西是新的,并不意味着它是必需的。

(编辑:宣城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读