您好,登錄后才能下訂單哦!
每次看到人類訓練機器人,我都會很困惑一件事,那就是在如此殘酷環境中培養出來的技能,到底能在現實世界中用上幾回?
像是狠狠從背后踹它一腳,讓它倒地后再爬起來;讓兩個機器人斗毆在地上瘋狂摩擦;又或者是在十幾米的高臺不停地跳高高……有事嗎???
這么對待重金打造的機器人,先不說畫面“不忍直視”,修理損耗難道不要錢的嗎?
后來我明白了,這跟目前的技術路徑有關。深度學習就是要進行大量的實踐和訓練,才能不斷優化算法,直至機器人能夠應對真實世界中各種各樣的狀況。
理論上講,只要時間足夠長、預算無上限,猴子也能用電腦寫出文學著作,更何況是算力逆天的機器。
但,這跟我們普通人又有什么關系呢?我們能否在有生之年用上(而且買得起)可靠解決問題的機器小助手呢?一萬年太久,我們只爭朝夕好嗎?
最近,伯克利和谷歌大腦最新開發的強化學習算法——soft actor-critic(SAC),據說就現實世界的機器人學習,或許,有望改變一下訓練機器人的古早思維。
今天我們就來聊聊,SAC會如何改變機器人的“成材之路”?
為什么想要一個rio的機器人,這么難?
在介紹SAC這個新算法之前,有必要先解釋一下,是不是一定要有更好的機器人算法呢?或者說,這個算法到底能夠改變什么?
這要從機器人在現實世界中遇到的挑戰來解答。
首先,是目前的訓練方式,決定了機器掌握新技能的速度還遠遠不夠。
傳統的機器學習算法,每次執行新任務時,都需要對原型設計進行參數調整,有的還需要重新收集數據進行訓練,這就使得機器新技能所需的總時間迅速增加;
其次,現實場景中的無數意外,都有可能讓機器出現故障。
真正在使用機器時,無論出現什么問題,比如斷電或者網絡延遲,機器都會以“死機”來應對危機。如果每次都要以“重啟”來恢復作業,那應用機器人的價值何在?
以上都是效率問題,傳統訓練方式帶來的成本困境,更是令研究人員愁到禿頭。
無論是訓練人員人為制造bug的暴力操作,還是執行器在種種復雜環境下的高頻抖動,都會給硬件帶來極大的磨損。這是機器人嗎?這是鈔票粉碎機啊!
當然,人類也不是沒有想過辦法。比如讓機器人打游戲啦,設計仿真環境啦,這些努力都大大減少了對現實訓練的依賴,但歸根結底,都無法替代現實環境的多樣性和隨機性。最重要的,還是得打造一套專為現實世界機器人“量身定制”的算法。
真實世界的機器人,到底需要怎樣的算法?
那么,這樣一套算法應該具備哪些屬性呢?
至少需要有這樣幾個關鍵要素:
1.良好樣本復雜性。提供給算法的訓練樣本數量越多,機器獲得數據標簽的時間成本也就越低,返回的誤差也更小,在強化學習中的表現自然也就越出色;
2.沒有敏感的超參數。為了提高機器學習的性能和效果,往往需要對超參數進行優化,但在現實環境中,自然是參數調整越少越好。算法就需要最大限度地減少調整超參數的需求;
3.異步采樣。真實世界中,難免會出現數據流終端、推理延遲等問題,要讓機器在“重啟”階段也能夠保持一定的持續性和穩定性,就必須將數據的收集和訓練在確保在最小化的多個獨立線程中進行。
4.動作平滑。為了防止大幅度動作或震動損壞硬件,因此,時間上具有關聯和連貫性的探索就變得尤為重要了。
簡單總結一下,如果我們相信未來真實世界中的機器人不可或缺,那么,要求它用無限長的時間、無限多的投入、無數次的碰壁去掌握這樣那樣的本領,顯然不太明智。
如何讓它自己進行有取舍、有現實意義的訓練呢?SAC應聲出現。
SAC成功的秘訣,就是心大
說了這么多,正主終于出現了。那么。究竟什么是SAC?
SAC,全稱是Soft actor-critic。從名字不難看出,SAC也是基于Actor-Critic算法的邏輯,即actor(玩家)隨機表演,critic(評委)隨機打分,互相制衡下追求更好的表現(reward)。
不同的是,SAC對參數的態度十分“溫柔”,它會自動權衡預期收益(最大化回報)和探索深度(最大化的不確定性),然后自動學習不是將其視為需要調整的“超參數”,從而獲得最優策略。
這樣帶來的好處是,訓練樣本多樣,還不需要頻繁調整參數,學習效率高了很多。即使遇到最差的實驗環境,也表現良好。
這就像是以前機器需要在人類親媽的“呵護”之下,點燈熬夜窮經皓首地做奧數題,以期成為“數學神童”。如今學會了勞逸結合奮發圖強,拿下高考高分就一本滿足了。顯然,后者才是大多數普通機器的榜樣和人類家長應該有的期待嘛。
具體表現如何,有請來自“伯克利小學”的三位機器人同學現身說法:
第一個向我們走來的是Minitaur,一個帶有八個驅動執行器的小型四足機器人。在前進時,往往借助控制器追蹤四肢的擺動部位,觀察好各種角度以平衡腿上的力度。如果沒有有效的訓練策略,很容易失去平衡而摔倒,摔多了鋼筋鐵骨也會壞的啊。
不過,在掌握了新的學習方法之后,由于訓練時將數據的不確定性最大化,Minitaur不需要任何額外的學習,就可以駕馭絕大對數平衡性的干擾。
第二位是非常靈活的“三指手”同學,它的任務是用手旋轉“閥門”,使彩色掛鉤朝右。但閥門上安裝了一個小型電機,受力會自動復位。因此,每轉一次,閥門的初始位置都會被隨機重置,使得機器必須重新感知當前的閥門方向。這個任務需要感知預測,并精準地控制9個伺服電機關鍵來完成,非常具有挑戰性,但我們的“三指手”依然順利完成了任務。
最后一位機器人同學雖然在玩樂高,但并沒有從中得到多少樂趣。因為訓練者要求它在堆疊積木的時候準確地對準螺柱以減少摩擦。
除了需要確定關節的位置和速度之外,還需要保證末端的力度,并且將復雜命令同時傳送給7個關節。這和要求人類小孩“百步穿楊”有差別嗎?
不過,掌握了SAC大法的機器并沒有讓人失望,只用3個小時就學會了如何搞定這個任務。而以往使用的PPO策略用了7.4小時才搞定。SAC是不是很棒棒?
在論文中,研究人員給SAC用了一個高調的定語:“state-of-the-art”(最先進的),可以說是實至名歸了。
當然了,上述還都只是些比較概念化的實驗,真正要將這種能力擴展到更具挑戰性的現實任務中,還需要大量的優化迭代、開發編碼調參等工作,不過可以預測的是,由于SAC的出現,機器人正在無限近地接近概念到實用的臨界點。
有了這個最佳引路人,機器人終于可以少受點“虐待”,真正滲透進生活的細節了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。