代碼不是機器人的全部,有些事得讓它們自己學
編者按: 脫離人類編寫的程序,機器人甚至無法行走。但如果它們的一舉一動,甚至是思考都由代碼來控制的話,工作量將大得驚人。
如果讓機器人自己學習會怎么樣呢?
本文全文編譯自 MIT Technology Review ,圖片來源于網絡。
與許多蹣跚學步的小孩一般,Darwin 有時看上去腳下不穩。但是它每一次笨拙的移動,無疑都在向人們展示,機器人在面對陌生環境和處理具有挑戰性任務之時的另一種重要解決方式。這臺機器人學習去處理一項新任務的方式,多少與人類腦神經鞏固童年時期學習成果相類似。
Darwin 生活在加州大學伯克利校區副教授, Pieter Abbeel 的實驗室里。幾周之前,我們第一次看到這臺機器人之時,它被一根拴在三腳架上的繩子給懸空吊著,看上去有些可憐。沒過一會兒,Darwin 開始在繩子的末端扭動著身子,以不摔倒而站立起來為目的,試圖找出四肢最佳的移動方式。
Darwin 的一舉一動都由數個擬神經系統的網絡控制著,這是個模擬大腦學習過程的算法——在生物大腦學習之時,各個神經之間的連接會隨之增強或變弱,以達到輸入的目的,這個算法模擬的正是這個過程。 這種方法充分利用了最為復雜的神經網絡,這就是廣為人知的「深度學習網絡」——一個擁有多層仿神經的系統。
拿讓這臺機器人學習如何站立和扭動身體舉例,首先它為了訓練出高級的深度學習網絡,需要經過一系列的模擬演算,才能最后得出完成這個項目的最佳方 案——研究者將之比喻成「想象的過程」。它給予了這臺機器人全身引導,而第二深度學習網絡則是為了讓機器人關節利用動力學對真實環境的復雜性做出反饋,然 后利用反饋執行這個任務。第二網絡有存在必要性是因為比如,當第一網絡嘗試移動一條腿,在與地面相接觸的那一瞬間,它體驗到的摩擦力有可能直接讓它滑倒。
研究者讓機器人學習站立,學習移動它的手以完成伸手的動作,以及在斜面上完成站立的動作。
「它已經模仿練習了一個小時了,」Iogr Mordatch,一名加州大學伯克利校區的博士后表示,「然后在執行實驗的時候,它慌忙地學習如何不會摔倒。」
Abbeel 的小組之前展示了深度學習將怎樣確保一臺機器人執行任務,比如,磕磕絆絆地將一塊玩具磚頭從一個形狀特殊的洞里穿過。這種新方法意義非凡,因為一臺機器人 不可能一直有機會經歷長時間的不斷測試。與此同時,計算機模擬測試缺少現實世界中的復雜性,以及能夠將機器人不斷地卷入失敗的環境。
「我們正在嘗試能否添加更多的變量,」Abbeel 表示,「即使加入了一點兒超出了機器設計范圍內的任務變量,都會讓機器人執行起來更為困難。」
這項新的技術對任何在現實環境中「工作」的機器人來說,都是有用的,尤其是對用腿行走的機器人——它能讓這些機器人行走起來更優雅。目前這項研究 致力于開發出一套算法,將走路或跑步時的空氣動力學因素考慮進去。但這樣的算法模型在處理真實世界中的種種變化之時,將會遇到很大的困難。因為其他很多仿 人類的機器人在沙子上行走或者伸手去抓某物時,都會失去平衡滑倒。「這是真實世界的檢驗。」Abbeel 回答道,「在那樣的真實世界里,確實機器人會滑倒。」
Dieter Fox,一名華盛頓大學計算機工程系的教授,專精于機器人知覺和控制,表示神經網絡學習在機器人領域有著巨大的潛力——「對整個研究方向,我都熱血沸 騰。」Fox 說道,「在真實世界里操練,一定是問題重重。模型是不完美的。機器人學習,尤其是深度學習引入之后,機器人就能從真實世界里學習和這個世界交互的邏輯 了。」