Unity Machine Learning Agents Toolkit(簡(jiǎn)稱(chēng)ML-Agents)工具套能幫助用戶(hù)在Unity中輕松入門(mén)強(qiáng)化學(xué)習(xí)(RL)。ML-Agents本身帶有多種樣例環(huán)境和模型架構(gòu),,可讓用戶(hù)利用現(xiàn)成的環(huán)境和架構(gòu)上手RL,,再通過(guò)調(diào)整超參數(shù)來(lái)測(cè)試和改進(jìn)結(jié)果模型,。所有這些都不需新建Unity場(chǎng)景或?qū)胭Y源,且初期不涉及任何編程,。本文介紹的項(xiàng)目由日本公司Ghelia Inc.創(chuàng)立,,他們使用了ML-Agents的soccer訓(xùn)練環(huán)境來(lái)訓(xùn)練人工智能足球賽。由Ghelia訓(xùn)練出的RL模型被部署到索尼的toio機(jī)器人上,,在真實(shí)世界中踢起了足球,。這是一個(gè)用ML-Agent訓(xùn)練機(jī)器人、從“虛擬到現(xiàn)實(shí)”的絕佳實(shí)例,。
Ghelia的CEO兼總裁清水亮以及公司創(chuàng)新和品牌戰(zhàn)略辦公室的首席程序員布留川英一及創(chuàng)新部經(jīng)理Masatoshi Uchida在下文中向我們解釋了Ghelia是如何使用ML-Agents Toolkit來(lái)訓(xùn)練一個(gè)真實(shí)機(jī)器人完成踢足球的,。
通過(guò)ML-Agents和索尼t(yī)oio制作的足球機(jī)器人
Ghelia是一家專(zhuān)注于強(qiáng)化學(xué)習(xí)應(yīng)用的公司。Ghelia的創(chuàng)始人北野弘明在索尼任職期間創(chuàng)辦了RobocupSoccer足球賽,,并開(kāi)發(fā)出了AIBO機(jī)器人,。我們的團(tuán)隊(duì)曾制作過(guò)一個(gè)空氣曲棍球演示,但過(guò)于繁雜的部件使其變得不夠輕便,。接著為了向客戶(hù)們解釋強(qiáng)化學(xué)習(xí)的概念,,我們開(kāi)始討論制作另一個(gè)便于展示的演示場(chǎng)景。鑒于ML-Agents已經(jīng)有了一個(gè)足球訓(xùn)練環(huán)境,,我們完全可以用輕便小巧的索尼t(yī)oio機(jī)器人來(lái)開(kāi)發(fā)一個(gè)足球游戲,,這種游戲甚至有可能會(huì)大火。
為了將強(qiáng)化學(xué)習(xí)應(yīng)用到真正的機(jī)器人上,,我們需要將機(jī)器人本身導(dǎo)入到模擬環(huán)境中,。幸好,toio已經(jīng)有一個(gè)稱(chēng)為toio SDK for Unity的模擬程序,。我們能直接將程序與ML-Agents軟件包結(jié)合使用,,即刻開(kāi)始培訓(xùn)。toio SDK僅包含了機(jī)器人模型,,而足球需要另外制作,。我們使用了Unity的物理引擎在模擬程序中重現(xiàn)了逼真的足球,還在現(xiàn)實(shí)中搜尋能準(zhǔn)確還原模擬情景的小球,。結(jié)果,,高爾夫球的運(yùn)動(dòng)可準(zhǔn)確匹配訓(xùn)練的成果。球的位置在Unity中以transform值表示,,在現(xiàn)實(shí)里則使用相機(jī)進(jìn)行拍攝,、用OpenCV進(jìn)行識(shí)別。
實(shí)際運(yùn)行硬件配置
我們使用一個(gè)高爾夫球來(lái)代表足球,,并將其涂成紅色以提高辨識(shí)度,。不可思議的是,我們僅用一部iPhone就能完成足球的探測(cè),,控制所有八個(gè)機(jī)器人(這是一場(chǎng)四對(duì)四的足球比賽),,再使用ML-Agents模型進(jìn)行推導(dǎo),。
關(guān)于如何設(shè)置獎(jiǎng)勵(lì)
一開(kāi)始,代理機(jī)器人們各自為政,,于是我們?cè)囍o個(gè)人進(jìn)球設(shè)置了負(fù)面獎(jiǎng)勵(lì),,但這又導(dǎo)致了守門(mén)員不會(huì)去主動(dòng)防守球門(mén)。而如果為運(yùn)球設(shè)置積極獎(jiǎng)勵(lì),,兩隊(duì)又只會(huì)來(lái)回運(yùn)球,不會(huì)積極射門(mén),,基本上就是在拖時(shí)間,。最后,我們決定把獎(jiǎng)勵(lì)設(shè)置為進(jìn)球得一分,,被進(jìn)球則扣一分,。
項(xiàng)目中最具挑戰(zhàn)的地方
有時(shí)實(shí)機(jī)機(jī)器人并不會(huì)像模擬的那樣行動(dòng),其背后原因有時(shí)讓人捉摸不透,。比方說(shuō),,如果機(jī)器人在一個(gè)稍微傾斜的地板上運(yùn)動(dòng)時(shí),有時(shí)會(huì)導(dǎo)致推導(dǎo)失??;另外,如果球的反彈與模擬不同,,機(jī)器人也無(wú)法做出訓(xùn)練好的反應(yīng),。并且,機(jī)器人對(duì)攝像機(jī)位置的要求十分嚴(yán)苛,,需要達(dá)到毫米級(jí)的精度,,這使得每次線下活動(dòng)的鏡頭調(diào)整異常困難。在每一次大型修改后,,模型還需要三天左右的訓(xùn)練時(shí)間來(lái)適應(yīng),,我們總共進(jìn)行了約六次的訓(xùn)練環(huán)節(jié)來(lái)實(shí)現(xiàn)如今的成果。
對(duì)于那些想在項(xiàng)目中用上機(jī)器學(xué)習(xí)的Unity創(chuàng)作者們的建議
AI,,特別是深度學(xué)習(xí)雖然讓人癡迷,,但人們尚未充分理解它。除非親手嘗試過(guò),,否則你將無(wú)法欣賞該技術(shù)的難度與美,,所以我們建議來(lái)自全球的Unity開(kāi)發(fā)者親自上手體驗(yàn)一下AI技術(shù)。我想特別指出機(jī)器學(xué)習(xí)非常有趣,,而Unity ML-Agents工具能幫你輕松地上手機(jī)器學(xué)習(xí)這一技術(shù)并將其應(yīng)用到項(xiàng)目中,。