这是份值得收藏的Unity强化学习指南!

如果你不知道Unity ml-agents是什么,请允许我提供一个简短的介绍。Unity ml-agents是一个"开源的Unity插件,它能使游戏和模拟器成为你训练智能代理的环境"。在我看来,它是一个很好的框架,可以帮助新手开始学习深度学习和强化学习。因为它可以使你看到正在发生的事情,而不仅仅是看到在终端上的数字和字母。

在开始介绍我们的小项目之前,让我先展示一些已经创建好的场景。

请查收,这是份值得收藏的Unity强化学习指南!

好,现在你了解了这个工具的功能,下面就让我们讨论这个项目吧!

我们使用了Unity ml-agents创建了一个代理。它的外形像是一只"蜘蛛",但只有4条腿。我们为小""蜘蛛""创造了一个移动平台。

请查收,这是份值得收藏的Unity强化学习指南!

这就是Unity building,接下来我们一起谈谈强化学习!在开始时,和往常一样,""蜘蛛""(agent)只知道它在平台上的位置和方向,其余的它都一无所知。由于我们的目标是让两只""蜘蛛""互相争斗(不告诉它们该怎么做),所以我们必须设法教它们。现在就是强化学习大展身手的时候了。在这篇文章中,我会默认为你知道强化学习背后的基本理论。如果你是新手,那么这里有初学者指南!(https://skymind.ai/wiki/deep-reinforcement-learning

所以,就像任何一个"懵懂的"代理一样,我们必须"教"它。通过奖惩来训练它,经过一番反复试验,""蜘蛛""终于知道如何站起来走路了!基本上,每次它们的身体接触到地面时,我们都给予了惩罚。因为如果它们的身体在地面上,这意味着它们没有用腿行走,或者说它们的腿没有产生足够的力。通过给予惩罚,我们能告诉""蜘蛛""这些行为是不好的,它们应该避免这些行为。

让我们概括一下到目前为止的情况:

  • 我们使用ml-agents创建了一个Unity环境。

  • 我们教我们的"蜘蛛"站起来,让它们学会行走。

下一步是教它们学会战斗!为了改变"蜘蛛"的行为使它们能够战斗,我们必须改变奖惩机制。因此,如果其中一只"蜘蛛"走出平台,或者身体与地面进行了接触,它将获得非常严重的惩罚。

再一次强调,如果我们没有良好的奖惩机制,它们就会不断犯错。所以当一只"蜘蛛"面对另一只"蜘蛛"时,我们给了它奖励,当"蜘蛛"朝另一只"蜘蛛"的方向行进时,我们给予了更好的奖励。这使得两只"蜘蛛"会朝着另一只"蜘蛛"的方向前进,并且在某些时候,其中一只"蜘蛛"会将另一只"蜘蛛"扔出平台。(这只是一个证明我的观点的简单例子)

请查收,这是份值得收藏的Unity强化学习指南!

此外,它们自己也认识到,只要把对方打倒在地,就能赢得胜利。所以在同一时刻,他们开始"摔跤"。这是一个非常有趣的观察。

同时,我们还使用移动平台测试了我们的代理,以创建一个更加困难的环境:

请查收,这是份值得收藏的Unity强化学习指南!

如果你想复制我的结果,这里有更多关于我的可观测向量和奖励函数的信息:

可观测向量(代理即指蜘蛛)

代理关于自身的信息:

  • 关于代理关节的信息

  • 使代理身体前进的向前向量e

  • 代理在平台中的位置

关于对手的信息:

  • 能够向上移动对手身体的向前向量

  • 对手在平台中的位置

奖励函数

  • 代理不能站立会受到惩罚,使对手摔倒会获得奖励,攻击对手,令对手摔倒是代理的主要目标。
  • 代理从平台上掉下来会受到惩罚,不会得到奖励。我们希望代理学习战斗方法,不限制以特定方式击倒对手。
  • 代理前进和推对手会获得奖励,后退或者自己被推会受到惩罚。我们奖励战斗积极的代理,并惩罚战斗风格偏向逃避或喜欢逃跑的代理。

基于前面的观点,我们创建了以下内容:

  • 如果代理的身体接触了地面:-1.0分
  • 如果对手的身体接触了地面:+1.0分。
  • 如果代理不在平台上:-1.0分
  • 0.003(归一化速度(对手位置 - 代理位置))+ 0.001(前向归一化(对手位置 - 代理位置))

最后,我们试图通过使用类人生物作为代理来进行进一步研究。难度呈指数级增长,因为"蜘蛛"只有有8个关节,而类人生物有12个。这增加了可能的运动组合的总数。所以,我们最终没有取得满意的结果,但看起来非常有趣:

请查收,这是份值得收藏的Unity强化学习指南!

总之,Unity ml-agents允许你非常容易地构建一些有趣的东西。 我认为这是开始学习这门学科的好方法。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,458评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,030评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,879评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,278评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,296评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,019评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,633评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,541评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,068评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,181评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,318评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,991评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,670评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,183评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,302评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,655评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,327评论 2 358

推荐阅读更多精彩内容

  • Agents设计 本文翻译自https://github.com/Unity-Technologies/ml-ag...
    浪尖儿阅读 6,173评论 0 6
  • 0. 预备知识 虽然名字叫做机器学习ML,但是主要内容还是增强学习RL(或者叫强化学习)。其实并没有错,ML中主要...
    浪尖儿阅读 21,867评论 4 24
  • Unity中的强化学习 Reinforcement Learning in Unity 强化学习是一种人工智能技术...
    浪尖儿阅读 1,811评论 1 3
  • 判断游戏是否公平,凭借的是这个游戏的规则。参加了一个游戏就严格遵守,不可以无视这个游戏里一切事物,它的存在可...
    love倪阳阅读 201评论 0 1
  • 书籍:《认知突围》 2297-鲁鲁 前几年知识无用论盛行一时,作者指出,这是对知识认知的一种偏差,什么是知识,不...
    鲁一理阅读 1,062评论 9 10