是時候普及一下機器人素質教育了

  文|腦極體

  每次看到人類訓練機器人,我都會很困惑一件事,那就是在如此殘酷環境中培養出來的技能,到底能在現實世界中用上幾回?

  像是狠狠從背後踹它一腳,讓它倒地后再爬起來;讓兩個機器人鬥毆在地上瘋狂摩擦;又或者是在十幾米的高台不停地跳高高……

  這麼對待重金打造的機器人,先不說畫面“不忍直視”,修理損耗難道不要錢的嗎?

  後來我明白了,這跟目前的技術路徑有關。深度學習就是要進行大量的實踐和訓練,才能不斷優化算法,直至機器人能夠應對真實世界中各種各樣的狀況。

  理論上講,只要時間足夠長、預算無上限,猴子也能用電腦寫出文學著作,更何況是算力逆天的機器。

  但這跟我們普通人又有什麼關係呢?我們能否在有生之年用上(而且買得起)可靠解決問題的機器小助手呢?一萬年太久,我們只爭朝夕好嗎?

  最近,伯克利和谷歌大腦最新開發的強化學習算法——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 的出現,機器人正在無限近地接近概念到實用的臨界點。

  有了這個最佳引路人,機器人終於可以少受點“虐待”,真正滲透進生活的細節了。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理【其他文章推薦】

※想知道網站建置網站改版該如何進行嗎?將由專業工程師為您規劃客製化網頁設計後台網頁設計

※不管是台北網頁設計公司台中網頁設計公司,全省皆有專員為您服務

※Google地圖已可更新顯示潭子電動車充電站設置地點!!

※帶您來看台北網站建置台北網頁設計,各種案例分享

您可能也會喜歡…