吳洋洋
Danny Lange于2018年加入Unity,擔(dān)任人工智能與機(jī)器學(xué)習(xí)高級副總裁,在此之前,他在Uber擔(dān)任機(jī)器學(xué)習(xí)總監(jiān)。游戲引擎公司Unity成立于2004年。
過去10年間,人工智能發(fā)展得非常快。但是同人類一樣,這些AI也需要經(jīng)過足夠時間的訓(xùn)練,才具備被期待的智能。
2004年成立的游戲引擎公司Unity希望在這個新領(lǐng)域占據(jù)一半以上的市場份額。作為Unity的人工智能與機(jī)器學(xué)習(xí)高級副總裁,Danny Lange認(rèn)為訓(xùn)練AI最重要的工作就是為之創(chuàng)造一個足夠真實的模擬環(huán)境,幫助這些AI在虛擬程序中完成訓(xùn)練,而不是把一臺無人駕駛汽車放到真實的馬路上去完成自我成長。而且,真實世界并不總是比游戲世界復(fù)雜,從技術(shù)的角度,這個問題可能是相反的,這也正是游戲引擎為什么可以反過來為在真實世界中行走的AI提供訓(xùn)練的原因之一。
Yi游戲引擎為何可以用于工業(yè)領(lǐng)域?
L游戲有很多種,有些是2D的,但是大部分游戲特別是大型游戲都是3D的。而在3D游戲中,我們面對的其實是一個有各種3D物體、各種作用力的物理世界,并且我們可以與之交互。游戲引擎會用非??斓乃俣忍幚盹@示屏上的像素組成,每當(dāng)玩家操縱游戲里面的角色,像素會以玩家難以察覺的速度重新繪制,達(dá)到每秒30次以上。這種技術(shù)在游戲領(lǐng)域應(yīng)用已久,我們發(fā)現(xiàn),它也可以應(yīng)用在工業(yè)領(lǐng)域,尤其是機(jī)器人領(lǐng)域。有一個概念叫“數(shù)字孿生”,我們可以為測試環(huán)境開發(fā)一個“數(shù)字孿生”,在虛擬的仿真環(huán)境中測試機(jī)器人程序,用近乎實時的方式控制和操作仿真環(huán)境中的機(jī)器人。這一切都在Unity的游戲引擎中進(jìn)行,因為游戲引擎對3D環(huán)境的處理已經(jīng)非常成熟了。通過虛擬環(huán)境去測試機(jī)器人,既安全又經(jīng)濟(jì)。因為在現(xiàn)實世界中測試機(jī)器人,需要冒著損傷貴重硬件的風(fēng)險,但是在3D仿真環(huán)境中,這樣的風(fēng)險可以被規(guī)避。而且在仿真環(huán)境中可以測試機(jī)器人幾千幾萬次,甚至能用人工智能技術(shù)訓(xùn)練機(jī)器人,成本遠(yuǎn)低于在現(xiàn)實中訓(xùn)練機(jī)器人。
Yi在創(chuàng)造一個數(shù)字孿生環(huán)境的時候,人工智能可以做什么呢?
L每18個月,我們用于訓(xùn)練AI的數(shù)據(jù)量就會翻一番。這些數(shù)據(jù)對于模型的訓(xùn)練非常有利,模型越來越大,也越來越智能。我們會使用深度學(xué)習(xí)這樣的技術(shù)來創(chuàng)造更多的可能性。比如,在現(xiàn)實物理世界中,我們面臨的一個重要挑戰(zhàn)就是收集訓(xùn)練數(shù)據(jù)非常困難,這種困難主要體現(xiàn)在兩個方面:一是收集得非常慢;二是數(shù)據(jù)量有限。因此,我們使用合成數(shù)據(jù)來訓(xùn)練AI。在游戲引擎中,我們可以生成大量的合成數(shù)據(jù),并且可以同時運(yùn)行非常多的測試,比如說同時運(yùn)行1萬個測試,來快速獲取合成數(shù)據(jù),用于訓(xùn)練AI。這在真實的物理世界中不可能實現(xiàn)。
Yi游戲是想象的世界,機(jī)器人或者是汽車需要面對的是真實世界,模擬真實世界所需要的數(shù)據(jù)維度是否更加復(fù)雜?
如何訓(xùn)練這些AI正在形成一門生意,而對這個市場最富有野心的是游戲引擎公司。
L首先,實時3D技術(shù)在游戲中的應(yīng)用和在工業(yè)中雖然核心技術(shù)相同,但也有很多不同之處。比如,工業(yè)領(lǐng)域?qū)τ诰珳?zhǔn)度的要求要高得多,對于各種物理作用力,我們要模擬得更為精準(zhǔn),但同時它也不像游戲那樣要求畫面精美。在工業(yè)世界,準(zhǔn)確更為重要。其次,從收集數(shù)據(jù)的角度來說,現(xiàn)實世界的數(shù)據(jù)和合成數(shù)據(jù)之間確實存在差異。為了讓合成數(shù)據(jù)盡量準(zhǔn)確,我們會快速生成大量的合成數(shù)據(jù),并且在合成數(shù)據(jù)中盡可能地引入非常多的變量,比如顏色、光照、行為等等,從而讓合成數(shù)據(jù)獲得足夠的樣本來隨機(jī)化,盡可能地捕捉到所有現(xiàn)實世界中可能存在的情況。在現(xiàn)實世界中如果想要收集這樣體量的數(shù)據(jù),可能要花幾年時間。然而通過人工合成同等量的訓(xùn)練數(shù)據(jù),僅需要幾分鐘。
Yi具體到訓(xùn)練一個流水線上的機(jī)器人,你們會怎么做?
Lunity的實時3D技術(shù)最初主要用于游戲開發(fā),近幾年被廣泛應(yīng)用于汽車、制造、工程建設(shè)等工業(yè)領(lǐng)域。單就工業(yè)領(lǐng)域來說,機(jī)器人在工業(yè)領(lǐng)域中已經(jīng)存在了很多年,現(xiàn)在,它們的應(yīng)用場景更廣闊、也更靈活了。以前,機(jī)器人都是待在一個特定的位置,在一個有限的空間中按照既定程序來運(yùn)行。但現(xiàn)在很多公司會讓機(jī)器人和人類協(xié)作,于是就有了Cobot(協(xié)作機(jī)器人)的說法。這些機(jī)器人需要從人手上拿過某些物體,或者以其他方式與人類協(xié)作。在仿真環(huán)境中,我們會引入與人類似的一些代理(Agent),也可以將其稱作“類人動物”(Humannoid)。我們訓(xùn)練機(jī)器人與Humannoid之間的互動,這樣機(jī)器人就能在大量數(shù)據(jù)的訓(xùn)練下,學(xué)會如何才不會撞到人,如何和人之間來更好地傳遞物體。通過合成數(shù)據(jù),我們可以快速產(chǎn)生大量打過標(biāo)記的圖像,來高效地訓(xùn)練計算機(jī)視覺系統(tǒng)。試想在城市環(huán)境中訓(xùn)練AI去開車,有非常多復(fù)雜因素需要處理。在工業(yè)場合下訓(xùn)練機(jī)器人,和對AI無人駕駛技術(shù)的訓(xùn)練有相通之處。
Yi模仿工業(yè)流水線、汽車駕駛環(huán)境、建筑等不同場景時,需要面對的復(fù)雜度有何不同?可以模仿人體環(huán)境嗎?
L幾天前,有人問我,我們可不可以使用Unity來模擬人的心臟,包括心臟跳動的狀況,以及周圍相關(guān)肌肉運(yùn)動的情況。簡單地回答,當(dāng)前我們還做不到。Unity的強(qiáng)項在于模擬一些剛性結(jié)構(gòu),包括機(jī)械手臂以及可移動的機(jī)器人。我們可以在結(jié)構(gòu)以及力學(xué)方面實現(xiàn)非常好的模擬結(jié)果。人類器官一比如心臟有非常多復(fù)雜因素,包括軟組織、血液流動等等,當(dāng)前還沒有辦法實現(xiàn)非常好的模擬,但在將來或許可以成為現(xiàn)實。模擬其他領(lǐng)域,比如機(jī)器人、無人機(jī)、汽車以及工廠環(huán)境等,不同行業(yè)面臨的挑戰(zhàn)有所不同。當(dāng)機(jī)場、航站樓需要一個數(shù)字孿生的時候,我們可以模擬機(jī)場、跑道、模擬飛機(jī)滑行的狀況,以及整個機(jī)場的運(yùn)維管理,包括空管等很多動態(tài)因素,很適合用Unity來做。另外包括工廠生產(chǎn)線數(shù)字孿生、自動駕駛汽車學(xué)習(xí)環(huán)境,所有的汽車廠商都在使用游戲引擎訓(xùn)練他們的模型和算法。之前我在Uber工作,在無人駕駛汽車的訓(xùn)練過程中,需要考慮很多不同的動態(tài)因素,包括剎車距離、街上的交通狀況、突然出現(xiàn)在車前的行人等等,都需要去綜合考慮。我們要通過“幾百萬公里”的模擬訓(xùn)練,才能將算法放到車上。
Yi游戲世界和真實世界哪個更復(fù)雜?這種不同對技術(shù)意味著什么?
L游戲世界比真實世界更復(fù)雜。因為在虛擬世界里,我們有更多的自由,能做的事情更多,不像在現(xiàn)實世界我們面臨非常多的制約因素。舉個例子,我們訓(xùn)練AI的時候,和我們訓(xùn)練人或者動物一樣是需要花時間反復(fù)訓(xùn)練它的,在虛擬世界訓(xùn)練AI我們可以借助大量云端算力以超高速完成,仿佛我們可以將時間加速。但是在現(xiàn)實世界,我們無法加速時間。
另外,訓(xùn)練AI的時候我們也經(jīng)常用到強(qiáng)化學(xué)習(xí)。強(qiáng)化學(xué)習(xí)可以理解為是一個緩慢的進(jìn)化過程。系統(tǒng)從最開始比較低的水平,一點一點進(jìn)步,最后變得非常好。在這個過程中,我們可以在任何一個時間點,將當(dāng)前的學(xué)習(xí)狀態(tài)保存在硬盤上,而未來我們可以回到狀態(tài)中,選擇其中一個時間點,再朝不同的另外一個方向去發(fā)展、訓(xùn)練。在現(xiàn)實中,我們無法扭轉(zhuǎn)時間的走向,但是在虛擬世界可以。因此,虛擬世界中的很多事情在現(xiàn)實世界中沒有辦法做。通過虛擬世界,我們可以將更多的場景、可能性復(fù)現(xiàn)出來,從而幫助我們在現(xiàn)實世界中的決策。