近年來AI是最令人印象深刻的發(fā)展,阿姆斯特丹的一組研究人員試圖采用一個非常簡單的移動機器人,并創(chuàng)建一個可以通過邊做邊學的過程來學習如何優(yōu)化其運動的系統(tǒng)。研究人員開發(fā)的系統(tǒng)雖然靈活且有效,但由于現(xiàn)實世界中的一些基本特征(例如摩擦)而遇到了麻煩。
這項研究中的機器人非常簡單,由不同數(shù)量的相同單元組成。每個都有一個內(nèi)置的控制器、電池和運動傳感器。泵控制一塊充氣管,該充氣管將一個單元連接到一個相鄰的單元。充氣時,管道會產(chǎn)生將兩個單元分開的力。放氣后,管道會將單元拉回原處。
將這些單元鏈接在一起便創(chuàng)建了一部自行式火車。給定一系列適當?shù)某錃夂头艢?,各個單元可以以協(xié)調(diào)的方式相互拖動和推動,從而提供一種定向運動,使該系統(tǒng)像蠕蟲一樣被推動。找出發(fā)送給控制充氣的泵的最佳命令系列相對簡單,但很有趣。因此,這項新工作背后的研究人員決定查看該系統(tǒng)是否可以優(yōu)化其自身的運動。
每個部門都可以獨立行動,并獲得一套簡單的規(guī)則。充放氣設置為每兩秒鐘循環(huán)一次,唯一可調(diào)整的參數(shù)是在該2秒窗口內(nèi)泵將打開(其開啟時間少于一秒鐘)的時間。鏈中的每個單元都會隨機選擇一個開始時間,使用幾個周期,然后使用系統(tǒng)的板載傳感器確定機器人移動了多遠。在學習期間隨機選擇開始時間,然后在優(yōu)化期間進行采樣,在此期間對最佳執(zhí)行時間周圍的區(qū)域進行采樣。
至關重要的是,鏈條中的每個單元都完全獨立運行,而不知道其他單元在做什么。向前運動所需的協(xié)調(diào)性是自發(fā)出現(xiàn)的。
研究人員首先將兩個機器人和一個惰性塊連接到火車上,然后將系統(tǒng)放置在圓形軌道上。一些火車只用了大約80秒就達到了可能的最大速度,這是每秒僅超過2毫米的莊嚴步伐。正如模型系統(tǒng)中的仿真所證實的那樣,該硬件無法更快地運行。
但是問題立即顯現(xiàn)出來。一些系統(tǒng)陷入了局部最小值,其優(yōu)化速度僅為最大值的四分之一。當團隊向火車添加第三個機器人時,事情以不同的方式進行得很差。
同樣,系統(tǒng)僅用了幾分鐘就達到了仿真中看到的最大速度。但是,一旦達到這種速度,大多數(shù)系統(tǒng)似乎就會開始變慢。那應該是不可能的,因為這些裝置始終會節(jié)省與其達到的最大速度相關的循環(huán)開始時間。因為他們永遠不要故意選擇較低的速度,所以沒有理由他們應該放慢速度。
幸運的是,團隊中的某人注意到系統(tǒng)沒有出現(xiàn)統(tǒng)一的速度下降。相反,他們在賽道上的特定位置幾乎停下來,這表明他們在這些位置遇到摩擦問題。即使機器人繼續(xù)在軌道上的其他位置執(zhí)行與最大速度相關的動作,但它們?nèi)栽谶@樣的位置進行操作,在該位置上,一系列不同的動作可能會更有效地通過摩擦產(chǎn)生動力。
為了解決此問題,研究人員進行了一些重新編程。最初,系統(tǒng)只是尋找最大速度并存儲該速度和與此相關的充氣周期開始時間。切換后,系統(tǒng)始終保存最新的速度,但僅在存儲的速度慢于最近的速度時才更新開始時間。如果系統(tǒng)遇到問題并顯著降低速度,則可以找到一種最佳的供電方式,然后針對其最佳速度進行重新優(yōu)化。
期望與現(xiàn)實之間的錯誤冒險并沒有就此結束。為了測試系統(tǒng)是否可以學習從故障中恢復,研究人員將釋放閥鎖定在其中一個單元中,迫使其始終處于充氣狀態(tài)。該算法進行了重新優(yōu)化,但研究人員發(fā)現(xiàn),即使泵沒有推動任何空氣,當泵仍然打開和關閉時,它的效果甚至更好。顯然,振動有助于限制摩擦,否則摩擦可能會使整個系統(tǒng)癱瘓。
嘗試將啟動時間逼近最大的精煉系統(tǒng),一旦火車長到足夠長的時間,也發(fā)現(xiàn)它是有問題的。以一個有七個車廂的例子為例,該系統(tǒng)通常會達到最大速度,但很快就會減速下來。顯然,當火車很小時,可以接受在精煉期間測試的微小變化,但是一旦火車足夠長,它們就會使太多的汽車不同步。
即使在簡單的系統(tǒng)上使用,整個系統(tǒng)仍然非常有效。它采用了兩個簡單的屬性,并將它們轉(zhuǎn)變?yōu)榭梢詫Νh(huán)境變化(例如摩擦)做出響應的自學習系統(tǒng)。該系統(tǒng)具有可擴展性,因為它可以很好地適應各種列車長度的系統(tǒng)。而且它對損壞的抵抗力很強,例如當研究人員堵住閥門時。在另一個實驗中,研究人員將火車切成兩半,兩個半部分重新優(yōu)化了速度。