一读小说 » 玄幻奇幻 » 遗漏的科技树 » 九 如何定义打架?

九 如何定义打架?

    叶蒙想了想说,“我想做一件事,但一时半会儿说不清,而且现在也天黑了,哪天你若能抽出一整天时间我再和你说说,到时候把太明珠也叫上,让她也帮忙参考参考。”

    一整天?看来不是小事啊,邵康对此充满期待。

    两人来到交大太明珠实验室,一是向太明珠了解下生产线的问题,二是跟太明珠说下发布会的情况。

    “厉害啊!关于人形机器人的那两个问题,说实话我去回答也不能解释那么好。叶蒙,再次给你竖大拇指,你总能看到问题本质!”

    “还好还好呵呵。”叶蒙笑了笑。

    “话说以后公司还会不断推出新产品,干脆都由你去坐镇吧。”太明珠笑道。

    “可别,你这不会是因为我今天抢了你风头吧?”

    “哪有,不行的话咱俩都去啊。”

    “哎算了,今天也是被拖过去的,以后你们别再拉我当救火队员了。”

    “能力强才救火啊。”

    ...

    三人一阵说笑,邵康打算告辞,就问叶蒙,“你今晚不回去了吧?已经没车了现在。”

    “不回了,明天还会呆在城里。”

    “那晚上住我那吧,不过现在该不算太晚,跟我去玩会儿。”

    不带叶蒙询问,太明珠就面无表情道,“他不会跟你去的,你自己去吧。”

    “好好好,”邵康摆摆手,“那我先走了。”

    刚才那一幕叶蒙还是第一次见到,他转头看向太明珠,“怎么回事?他要玩什么?”

    太明珠看了眼叶蒙,“你猜不到么?”

    好吧,看来真是那种事。

    “邵康人品看起来还行啊,怎么会——”

    太明珠直接转过旋转座椅回到办公桌前,“人品还行,就是风流成性。”

    “额,富二代都这样么?”叶蒙还以为关于富二代的那些传言不适用于邵康呢。

    “他的圈子不代表全部,”这时太明珠突然转过头来看着叶蒙,带着一丝警告的意味道,“你生活中离他远点儿,别被带坏了。”然后她就转过头在电脑上办公了。

    叶蒙感觉有点儿滑稽,自己做错什么了吗?

    他看太明珠一直在工作,完全没有继续聊的意思,只能无奈提醒道,“那个,白天说的事还谈么?”

    嗯?

    太明珠一愣,随即反应过来,早上还说了让叶蒙给她讲讲新路线的事,怎么就忘了?但刚才还警告对方呢,现在再转头向他请教?

    叶蒙不知道太明珠在想啥?见她没回应,就说,“那...我走了?”

    “等一下!”

    叶蒙刚转身就被太明珠叫住,他见太明珠站了起来,并带着歉意道,“抱歉,我不该迁怒于你。”

    “哈哈没事,那咱们说说新路线的事?”

    “嗯,不过我可以先问你一个问题么?”太明珠问道。

    问题?叶蒙有点儿奇怪,不过还是说,“你问吧。”

    “为什么愿意将这么重要的技术发明分享给我?包括之前你提的技术方案也是类似。凭你的能力,自己干能获取的利益绝对远大于现在的选择。”

    哈~原来和邵康问的一样。

    “我不是机器人专业的,只是脑子有些想法,具体还是需要别人实现,然后就分享出来了。”

    太明珠摇摇头,

    “就算你不是这个专业的,但只要你愿意,很快就能成为机器人顶级专家。而且对于科研而言,找路线的能力才是最珍贵的,专业知识反而不那么重要。你完全可以成立一家公司,然后招人来干就行。”

    见对方不信,叶蒙只能说道,

    “这个问题邵康也问过,虽然问法有点儿差别。我告诉他,我不擅长社交,不会管理公司,而且说实话,我现在也算小富豪了,对赚更多钱也没太大兴趣。想相比起赚钱,我更希望这些技术能早点儿实现,而请你这样的专家来研究就是最好的选择。”

    太明珠看了他一会儿,说,“你果然与众不同,这样的话,我要再次向你表示感谢。”

    “没事没事不用客气。”

    “那么请坐吧,我听你讲解一下新路线的事。”

    “ok,不过先补充说下用远程机器人数据训练机器人的事,其实这种方案有简化版。不知道你想到”

    “简化版?”

    “没错,就是在游戏空间里造个足够逼真的机器人模型,然后用体感仪操控就行,这样制造训练数据更快更方便。”

    “也对。用远程机器人多做一些研究应该也能想到这种方案,但你却能跳过动手操作直接想到。”说道这里太明珠顿了顿,然后笑着说,“你的脑回路是不是与正常人不一样啊?”

    “哈,你真会夸人。”

    “好的那不开玩笑了,你继续讲吧。”

    “那么现在开始说说新路线,简单来说就是在游戏里设置两个或多个机器人对象,用强化学习算法控制他们打架,然后算法就会不断演进。”

    “啊?”

    之前叶蒙提出新方案后,太明珠至少能大概明白对方什么意思,但现在这个通过打架来研究机器人的思路,着实给她cpu烧干了。

    叶蒙继续解释道,“强化学习你应该知道吧?”

    太明珠点点头。

    强化学习是ai领域的重要算法,同样也应用于很多其他领域,机器人就是其中一个。

    强化学习就是用一种叫马尔科夫链的模型,来表示机器人的运动状态和策略,并给系统一个目标函数,系统会不断实验各种策略,每种策略都会得到对应目标函数,算法会不断取最优目标函数,并更新对应策略。这样目标函数和策略会不断优化,最终得到的目标函数和策略就是最优的,而这个策略就是人们想要的。

    理想情况下,只要实验次数够多,最终策略就会是全局最优的。

    “自从ai火起来后,强化学习在机器人研究上用的就越来越多。但强化学习与打架结合具体有什么好处呢?”

    “传统机器人强化学习方法都只是应用于特定场景,但机器人应用场景有无数种,每换一种场景就需要重新建模研究,效果并没有那么好。这里的重新建模主要指目标函数要重新编写,但打架的目标函数基本只有一个,那就是用最小的代价战胜对手。”叶蒙解释道。

    “你是指因为强化学习目标函数单一,而打架的场景也有无穷多样,那么相比传统方法,不用多少人力就能让算法策略达到更优,并且覆盖范围更广?”

    “没错。”

    “但是打架的场景毕竟与一般机器人应用场景不同,研究这个对后者有什么用呢?”太明珠仍有疑惑。

    “用处就是提高保持平衡的能力。”

    “哦!”太明珠恍然,然后将自己的理解解释一遍。

    人形机器人两大难点就是复杂地形移动保持平衡,以及具有处理复杂任务的智能。打架与一般机器人应用场景的区别主要是后者,但前者是类似的,因此打架机器人算法也可以用来帮助提高机器人在一般场景下保持平衡的能力。

    而且打架是种极端剧烈运动,不仅在移动方面剧烈,其余肢体运动也激烈,而机器人每个关节运动都会与其余几十个关节运动耦合,能够在打架中保持平衡的机器人要在一般场景中保持平衡没什么难度,当然算法要经过适当调整。

    当然要做到在打架中保持平衡很难,但打架结合强化学习的强处就在这,它只有一个目标函数,不需要费劲去反复设计。对于策略计算而言,只要有明确目标,就能通过不断迭代毕竟目标。

    叶蒙点点头,和聪明人说话就是方便,一点就通。

    “我还有疑问,首先是如何定义打架?”

    物理建模需要有相应物理量或物理过程的明确定义,不然无法在数学上表示。

    “就是肉体...额人体的碰撞,当然手持兵器也可以算作人体部位的延伸。”

    打架就是用拳、脚、兵器等部位去直击、勒、拧、刺或挥砍对方,击伤方式很多,但大多都属于碰撞,虽然勒和拧这类不算,但在模拟仿真时可以排除,这样只是让打架方式少一点儿,影响不大。

    而身体不同部位强度不同,按从高到低排列为:兵器、屈拢成锐角的关节、拳和脚、四肢关节之间部位、胸/腹/头等。这种划分不用很严格,毕竟这里的重点是有方法表示打架这个物理过程,而非让物理过程与现实尽量接近。

    一般打架需要尽量用强度高的部位攻击对方强度低的部位,另外攻击角度和速度对攻击效果也有很大影响。

    而打架收益分为两方面,敌方受到的伤害和自己受到的伤害。在算法中这种伤害用血条表示就行,理由同上。而打架目标就是尽量多击伤对方而己方少受伤,这里可以简化为让对方受伤量与己方受伤量的差值最大化,简称伤害差值最大化。

    “哇,打架原本是很复杂的物理过程,结果被你这么一表示就简单多了。”

    太明珠笑了笑,然后又问道,

    “不过即便对于简化的打架模型,其状态空间仍然极其巨大,甚至远大于围棋。那么计算复杂度就会明显更大,而且在算法迭代期间会不断遇到陷入局部最优的情况,怎么解决这种问题呢?”

    由于人体各关节是连续运动的,所以状态空间是连续状态空间,而且关节转动自由度很多,转动范围和速度范围也很大,这样打架的状态空间超过围棋是很正常的事。

    一般来说状态空间大,计算量就大。而且算法目标函数是让伤害差值最大化,这样容易造成这种情况,比如a与b拼刀,某个时刻a看到b手臂无防守,就砍过去,但砍中后自己脑袋却无防守,然后被b一刀剁下来。这种追求短期效益的情况就是局部最优。

    叶蒙答道,“两问题其实没那么严重。状态空间的确巨大,但仅仅是让格斗者打起来并且打得有模有样,并不难实现。比如你挥拳打我,挥拳方式有无数种,但你并不需要在这无数种方式中抉择,只要简单让右手打过来就行。”

    当然在算法上,达到挥拳打到对方的程度也需要进行一定迭代,但这种目标明确、探索路径也不长的过程不需要多少计算量。

    这表明打架过程中很多状态和策略是自然而然就表示和求解出来的,没那么费劲。

    “至于局部最有问题,虽然算法目标函数是伤害差值最大化,但我们的研究目标不是,只要能达到打得有模有样就行。达到这种程度时,格斗者或机器人基本就能做到在复杂地形移动不摔倒了。”

    不然跑一步就摔倒还算什么有模有样?

    太明珠想了想,怀疑道,“仅仅要做到打得有模有样,也不是那么容易吧?”

    “的确,如果一开始就以这个为目标,那算法可能会做很多无用计算,所以可以先从简化模型开始模拟。”

    “简化到什么程度?”

    “降维。”

    “嗯?哪方面降维?”

    凡是自由度都能说是维度,而自由度不只有运动自由度,算法上相当多独立变量都算是维度,太明珠不知道叶蒙说的降维是针对哪种维度的。

    “就是运动自由度的降维。”叶蒙说道。

    “你指通过减少关节来简化人体模型么?可人体这种结构就算简化,能简化的程度也很有限吧?”

    叶蒙摇摇头,“降低运动自由度不代表只能减少关节啊,直接减少空间维度就行了。”

    “这也行?”太明珠感觉对方脑洞总是从意想不到的地方冒出来。

    “对啊。先做两个二维人体模型,再配上重力场就行。不管几维打架,都是人体碰撞,本质上一样的。”

    “不是,你等等,我想下。”太明珠扶了扶额头。她过去很少感觉脑子不够用,但在一连串陌生的知识结构中思考的确是件不容易的事。

    她想了一会儿,问道,“这样问题的确更简单,但二维打架和三维打架动作完全不一样吧,算法能套用到三维空间里么?”

    “可以的,”叶蒙点点头,“动作不一样只是视觉上的差异。不管几维,打架动作都只有近身缠斗和非近身动作两大类,近身缠斗只有攻击、格挡和闪躲三类,而非近身动作只考虑逃跑和追击就行,所以本质上都一样。”

    “而且你说的关节简化应该和一些机器人研究或动画上的简化人体一样吧,就是不要手指脚趾,脊椎关节也省去?”

    太明珠点点头。

    “其实还可以进一步简化,比如手臂的大小臂合为一根,大小腿合为一根,也不要拳头和脚了。”

    “这种结构有人试过,站不稳的,毕竟腿上关节减少会让保持平衡手段减少。”太明珠邹眉道。

    “那是对机器人这种精度较低、工程难度又大的单位而言,在游戏中的虚拟单位运动精度可以高几个量级。哦,忘记说了一点,机器人需要的是实时计算运动策略,但进行虚拟模拟不需要。可以降低时间流速或者用很长时间计算一个动作。”

    “回到简化模型的问题,可以从二维和少关节人体模型开始模拟,然后逐渐升级到三维和多关节模型,这样虽然整个过程也要花不少时间,但这种循序渐进的方式可以减少避免很多无用试错。”

    叶蒙解释了一大堆,然后总结道,

    “说了这么多都是解决计算量问题,其实只要目标函数唯一确定,计算量问题就不是什么大问题。而且当模型扩展到完整机器人模型后,算法就能靠自我迭代不断演进了。除了提高研发速率,还能将算法控制水平上限提高若干层级。”

    “上限不就是达到人体的运动水平么?当然机器人还能做一些空翻之类杂技动作,甚至比顶尖运动员做的还好,但也没有明显超过人类水平吧。”太明珠问道。

    叶蒙摇摇头,“这只是基于现在这种硬件水平的机器人,而在游戏中没有硬件限制,完全可以让格斗者具有超强力量,达到武侠甚至玄幻格斗效果都是可以的。在这样的格斗中训练出来的控制算法会有更高水平。”