BRETT 機器人算有「學習」的能力么?
加州伯克利大學新搞出來的機器人,基於神經網路的深度學習演算法,以「Trial and Error」這種方式來學習技能。不過目前還比較笨,進行一些簡單組裝需要很長的時間來「學習」。不過最終的確是可以脫離人的控制獨立完成相應的任務。
新聞來源:http://chinese.engadget.com/2015/05/26/brett-deep-learning-robot/
國內免翻牆:會像人一樣學習新技能的機器人
前不久聽過Sergey Levine(這個項目的第一作者)來CMU RI給的Job Talk, 簡單說思路是這樣的:(1)在Trajectory optimization(比如LQG)和supervised learning(比如neural network(relatively deep))之間迭代。相當於最後訓練出的neural network是一種trajectory interpolation,可以應付的初始條件和魯棒性更強一些。但其實Chris Atkeson早年已經提出過類似trajectory-based method。(2)提出了一些針對manipulation task的cost function。
值得指出的一點是講reinforcement learning用在robotics中一個關鍵問題是數據獲取代價很大(因為運行機器人耗時,難以控制),所以和deepmind在atari上跑是不一樣的(從simulator裡頭獲取數據),所以作者很大程度上是在提出一種sample-efficient的演算法。
其實還有大量hack/trick沒有在paper裡頭講清楚,做出來的demo挺炫酷的。至於你想拿這樣的框架在你的機器人很快跑起來,我覺得可能不太現實,離human-level manipulation skill還差之甚遠。
總體確實是很不錯的work!
參考:
[1] http://rll.berkeley.edu/icra2015gps/robotgps.pdf
[2] http://arxiv.org/pdf/1504.00702v1.pdf
謝謝@阿爾吉儂 邀請。
已更新,看來大家還是喜歡學術討論的。
有人可以討論Robot Learning的感覺真好呀。
------------------------------------------------ 開始學術討論的分割線 -------------------------------------------------------
@周佳驥 說的非常好。 我也基本贊同。不過我感覺如果機器人的框架是類似ROS的控制流,hack/trick可能沒有想像的多。之前實現了其他Policy Gradient演算法在Baxter上的任務學習。PR2, Baxter這種雙臂研究型機器人對用戶普遍友好,相關演算法的特性也基本都是Well Developed,大家有興趣,值得一試!
提到的talk,youtube上也有。在這裡:https://www.youtube.com/watch?v=CW1s6psByxk
由於這個工作本來就是視覺和動作分開訓練的,所以文獻也寫了兩個。
文獻一[1] 主要講的是用迭代的方式用Trajectory Optimization(TO)的結果 作為數據集訓練一個Policy, 也就是基於Trajectory Optimization結果的Policy優化。 作者說的原因是,直接在Policy空間優化很難讓演算法收斂,但是如果supervised learning和TO迭代反而會效果更好。能提出這個想法,主要原因是作者是Guided Policy Search的發明人。傳統Reinforcement Learning界的人都主要是想用單一的基於Reward-based方法來學習一件事情。但是機器人的Degrees of Freedom太大,成為了機器人學習領域的One of Four Curses。於是很多人就開始尋找方法把Policy集中到一個子空間,在加上Randomness進行優化。
能提出這個想法,主要原因是作者是Guided Policy Search的發明人。傳統Reinforcement Learning界的人都主要是想用單一的基於Reward-based方法來學習一件事情。但是機器人的Degrees of Freedom太大,成為了機器人學習領域的One of Four Curses。於是很多人就開始尋找方法把Policy集中到一個子空間,在加上Randomness進行優化。
個人覺得這個工作可圈可點,但是主要還是作者之前想法的延續。 傳統方法比如Bayesian Optimization[3], Policy Gradient With Parameter Exploration [4],甚至是基於進化演算法的[5]都可以在一定程度上解決自由度空間過大的問題。
[1] 具體講來就是有一個CNN加上多層神經網路的控制器(Policy CNN)
前者是計算機視覺的一個重要的神經網路模型。
後者是通過調整每個參數的Mean和Variance來優化的多層神經網路
每個weight符合高斯分布
要在這樣一個線性或者非線性空間找到參數使得整個網路輸出可以控制機器人完成一個動作, 是一個基於RL的學習任務。一般來說學習演算法是不敢和控制演算法比速度和精確度的。因為控制演算法在較短時間類就可以找到一個有效解決方案,只是對特定任務的魯棒性不是很好。
於是作者找到了 Linear-quadratic-Gaussian control(LQG),一個控制演算法。首先用這個方法找出幾個解,然後指導多層神經網路的控制器進行訓練。
文獻二[2] 主要講的是如何把視覺信號集成到模型當中。估計是二作做的,其實很好玩。她先訓練了一個pose regression CNN 然後 吧這個參數放進Policy CNN當中。然後再整個網路一起訓練。CNN裡面沒有Max Pooling Layer。我的感覺是不知道為什麼用這種方法找物體的具體位置,如果是為了速度的話可以理解。要不然點分類會更加精確一些。
總之,作者一方面單獨訓練改變後的CNN,另一方面單獨訓練多層神經網路,然後粘合,再訓練訓練就成了。綜合來看文獻二更牛逼一些,文獻一基於環境優化的學習演算法相似問題很多,解決方法很多。但是把視覺直接當做機器人學習系統的輸入信號的,而且還是一個bit一個bit輸入, end to end的,然後直接控制電機信號輸出的,太少見了。 這個也是Sensor Fusion的進步。引自文獻二
引自文獻二
[1] http://rll.berkeley.edu/icra2015gps/robotgps.pdf
[2] http://arxiv.org/pdf/1504.00702v1.pdf
[3] https://www.icub.org/images/b/bc/VVV13BayesianGaitOptimization.pdf
[4] http://www6.in.tum.de/Main/Publications/Sehnke2008a.pdf
[5] http://www.ics.uci.edu/~rickl/courses/cs-271/lit/2013-TOG-MuscleBasedBipeds.pdf
------------------------------------------------ 回答樓主問題的分割線 -------------------------------------------------------
討論之前我們可以先明確兩個共識
學習的定義: 是透過教授或體驗而獲得知識、技術、態度或價值的過程,從而導致可量度的穩定的行為變化,更準確一點來說是建立新的精神結構或審視過去的精神結構。學習必須倚賴經驗才可以有長遠成效。(http://zh.wikipedia.org/wiki/%E5%AD%A6%E4%B9%A0)
鴨子類型法則: 當看到一隻鳥走起來像鴨子、游泳起來像鴨子、叫起來也像鴨子,那麼這隻鳥就可以被稱為鴨子。
計算機科學有個方向叫機器學習:它主要研究如何在經驗學習中改善具體演算法的性能。(http://zh.wikipedia.org/wiki/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0)
現代機器學習領域至少是基於之前提到的兩個共識之上的,而這個工作用了現在機器學習分支-強化學習和監督學習方向幾乎是最好的演算法。如果這篇工作不能被叫做機器人學習的話,那就至少部分否認了現代機器學習的在這兩個方向上的努力。因此我認為,伯克利的這個機器人一定是具有學習的能力的。
另外現代機器學習是一門嚴肅學科。嚴格來講,各大網站上的推薦演算法,圖片搜索都是機器學習方向的分支。而且有些方向(聲稱)比人類做的好了,比如人臉識別,圖像分類。加上量子電腦的發展速度加快,比人類更會學習的機器人到來是可以預料的事情,這一點其實並不需要驚訝。
------------------------------------------------ 開始認真討論的分割線 -------------------------------------------------------
論文連接:http://arxiv.org/abs/1504.00702
如果了解強化學習在Motor Skill控制的應用和監督學習在計算機視覺上的應用的話,這篇文章的主要貢獻點就是拚命湊神經網路的參數,讓整個系統能通過視覺信號直接控制電機。
通過視覺信號直接控制電機最難的點在於他處理視覺信號的神經網路是一個叫CNN的網路。裡面的參數有大約92000個,如何通過嘗試-錯誤的方式優化這92000參數是個非常麻煩的事情。原因有幾個。
1. 機器人必須識別物體,且分辨物體的位置。
2. 就算是最好的強化學習的方法能訓練的參數也有限(大約2000個左右)。
3. 如何把人給的示範動作告知機器人且讓機器人學習。
4. 機器人如何實現在不同位置的初始化都可以完成最後的結果。
那麼這篇文章具體的解決方案(具體貢獻)是
1 -&> 識別物體位置用的演算法是 CNN 的相似結構(CNN和它的變種是最經典的物體分類演算法,很多新聞都有寫)
2 -&> 先做示範引領機器人
3 -&> Guided Policy Search, 作者自己發明的一個強化學習演算法
4 -&> End to End 訓練
BRETT 是一個很贊的工作,但BRETT並不是學習新的技能,而是學習自己的硬體設置。對應到現實生活中,有點像是每輛車的長寬都不一樣,松下油門移動的距離也不一樣,怎麼樣讓人適應這個車的配置。但是學習開車是在適應配置之前的工作。
BRETT 所實現的功能,有大量的機器人都能實現,甚至實現地更好。論文裡面也提到,他們所使用的訓練集,就是用一個 simple trajectory-centric algorithms 生成的。他們通過修改機械手臂的初始狀態,根據之前的簡單演算法,計算出正確的運動軌跡,記錄下運動過程中的圖片紀錄和其他相關信息,之後用這個數據去作為標註數據去訓練。
這篇論文的核心賣點是,在不知道硬體結構的情況下,怎麼去控制機器人?現有的機器人系統隨著自由度,關節的增加,編程難度也是幾何倍數增加。如何操作一個和人手臂一樣靈活的機械臂,肩部的運動是會影響到手腕的位置的。這篇論文,把這些參數丟進了deep learning這個黑盒子里,然後自動把硬體操作和任務綁定在一起。
思路上和deepmind的atari小遊戲沒什麼區別,但二維變三維並不簡單,真實世界裡的數據標註要晦澀很多。
http://arxiv.org/abs/1504.00702
這個東西確實和機器學習有關。引自於維基百科的定義:
「機器學習是對能通過經驗自動改進的計算機演算法的研究」。
於是我們知道,能從經驗中改善自己的行為就是叫學習了。換句話說,機器學習要做的就是構造一個函數f(x),在輸入x的情況下儘可能的使函數輸出f(x)儘可能的靠近真實輸出y.
例如這裡x可能是一張一張的圖片,然後函數的目標就是判斷圖片中的東西到底是個什麼物種:
或者輸入一張人臉圖片,目標就是判斷這個圖片中的人到底多少歲:
到底怎麼構造函數呢。當然是從數據中來了。我們有很多張人臉圖片以及他們的年齡,人臉可以根據他們的像素值構造出一些數字來描述,年齡也是一個數字,我們就可以通過一些統計的方法來找出一個合適的f.
到底怎麼構造函數呢。當然是從數據中來了。我們有很多張人臉圖片以及他們的年齡,人臉可以根據他們的像素值構造出一些數字來描述,年齡也是一個數字,我們就可以通過一些統計的方法來找出一個合適的f.
那麼這個機器人是怎麼回事呢。當然它也是有輸入的,就是當前面臨的環境,期望的輸出就是這個環境下應該乾的事兒。比如把瓶蓋子擰上。
在這類問題中,學習演算法就像是一個訓狗的過程。狗做出了好的舉動,然後人就會告訴它Good Dog. 狗做出了不對的舉動,人就告訴它Bad Dog. 然後胡錫進,啊不對,狗就學會了銜飛盤。在機器人問題上,機器人做出了成功的舉動(例如把鑰匙放好)系統就返回yes,或者返回yes的一個程度, 它以後就知道儘可能按這個方式做;機器人沒有做出成功的舉動,系統就返回no. 這玩意兒在機器學習里叫增強學習(reinforcement learning)。
在這類問題中,學習演算法就像是一個訓狗的過程。狗做出了好的舉動,然後人就會告訴它Good Dog. 狗做出了不對的舉動,人就告訴它Bad Dog. 然後胡錫進,啊不對,狗就學會了銜飛盤。在機器人問題上,機器人做出了成功的舉動(例如把鑰匙放好)系統就返回yes,或者返回yes的一個程度, 它以後就知道儘可能按這個方式做;機器人沒有做出成功的舉動,系統就返回no. 這玩意兒在機器學習里叫增強學習(reinforcement learning)。就這樣。其實機器學習沒有科幻小說里那麼可怕。引自微博中的一句話:
每次AI技術大發展,總會冒出來"機器人終將超越人類"、"機器永遠不會有情感"這種討論不出結果的論爭。百年前人想: 我們要做個東西像鳥一樣飛起來。後來沒人爭論說你這東西不對,因為它不會下蛋孵小鳥。。。咱祖師爺給起了個引人遐想的名字人工智慧,別人起的名字叫空氣動力學,不叫人工鳥。
/**********************************************************************/
論文在此。http://rll.berkeley.edu/icra2015gps/robotgps.pdf
謝邀
先說答案,機器人肯定具有某種「學習」能力,但是這個學習不是類似人類的主動學習或者是智慧行為,而是屬於機器學習裡面通過不斷得輸入樣本和標籤讓機器人學到一個數學模型,即一個x-&>y的函數映射。
首先要定義你問題裡面的「學習」兩個字的含義了,猜測樓主的意思是類似人類的主動學習。首先使用深度學習這個關鍵詞就可以知道這肯定不是類似人類的主動學習。深度學習也只是機器學習的一種演算法,無非是根據輸入樣本(x,y)來學到一個x-&>y的映射,並沒有所謂的「智能」在裡面。這個產品的亮點是它能夠不斷的試錯來學習,那麼問題就集中在在沒有外力的幫助下,它是如何得知一條樣本的label(標籤,也就是y值)的,也就是如何定義一次嘗試是對的還是錯的?這個就是這個新機器人的核心。從新聞里只用「Trial and Error」來描述了,所以我們並不知道是怎麼做到的。但是我大膽猜測還是通過程序完成的這一標註過程(labeling)。謝邀。。
不過為什麼我的首邀是一個和我專業領域完全不搭邊的問題。
看到被邀還略激動準備好好發揮一下的,結果一看問題傻眼了。(?_?)
抱歉,不懂這方面的知識沒辦法幫到忙。謝邀。
只是簡單地看了一些報道和小視頻,我認為已經可以說算了。儘管在我所看到的小短片中,BRETT先生僅僅完成了簡單環境下的兩個不同的小任務,一個是給塑料玩具組裝部件,一個是疊毛巾,但是其演算法已經實現了自主學習的最基本認知閉環,可以稱之為「學習」能力。
一個最基礎的學習閉環是:
1.從輸入信號中區分環境信號和焦點信號;
2.將不同信號,主要是焦點信號映射到變數集中;
3.嘗試對變數建立關係,制定試錯計劃;
4.執行試錯計劃,驗證結果;
5.根據驗證結果對先前的試錯過程進行激勵或懲罰,並按照行動路徑存儲經驗;
6.根據可行路徑完成任務。
機器「學習」完全不是什麼新鮮事。馬爾可夫過程決策好早以前就有了,就可以實現類似的效果。
這種問題上又不是有大量樣本的問題,不知道深度學習對這個問題有什麼樣的幫助。
學習演算法,終究也是一個演算法。機器人就是一個計算機,計算機就是用於計算的。上帝做了一個無限長的算盤,請問這個算盤什麼時候能有自我認知。
未來機器人是否有可能享有人權? - 蕭墨的回答
謝邀。
首先這個機器人的項目確實很厲害!
看到了問題下很簡短的描述,第一個反應時想到了CMU從2010年開始的一個項目,Read the Web :: Carnegie Mellon University
他的初始條件是,
(1) an initial ontology defining hundreds of categories (e.g., person, sportsTeam, fruit,emotion) and relations (e.g., playsOnTeam(athlete,sportsTeam), playsInstrument(musician,instrument)) that NELL is expected to read about, and
(2) 10 to 15 seed examples of each category and relation
簡單說一下就是
- 幾百種歸類的學習範疇和定義了一下簡單的關係
- 對於各種分類提供了很少的幾個例子
今天點開看的時候,隨機刷新出來的幾個結果是,
在某種程度上來說,這個項目和這裡提到的BRETT機器人很類似。對比來看,我也相信這個機器人在不遠的幾年內的未來,可以獨立完成一些小的任務。似乎這些系統已經完全具有了學習的能力?!!
在某種程度上來說,這個項目和這裡提到的BRETT機器人很類似。對比來看,我也相信這個機器人在不遠的幾年內的未來,可以獨立完成一些小的任務。似乎這些系統已經完全具有了學習的能力?!!
但是,等等!!這個東西和20年前就可以做的不錯的supervised learning有很大區別么?給我一些數據,然後fit數據之後得到結論。根據得到的結論修正一下數據,那不也就是reinforcement learning么?數據量足夠大,不斷地修正模型,總有一天我的模型會越來越好,讓人有了一種強人工智慧出現了的錯覺。而就我不多的經歷來看,神經網路的各種實現過程基本都還是依靠經驗。
總之,確實是可以認為是在學習,但也就只是已有的機器學習裡面一點點比較有意思的應用罷了。能通過自己獲取信息來改變自己,就算是學習了吧
學習應該基於記憶的基礎之上吧,我們首先應該進行記憶 然後在利用記憶進行決策。
目前人類對於神經系統的各種研究到了一個極致了,每時每刻都有新的成果出來。但是目前人們對於腦科學的研究缺乏一個大框架,如果有一個相應的框架的話我們就能把所有的研究成果組合在一起,從而實現對於人類大腦的理解。
從感覺、認知、思維的角度對大腦的工作流程進行分析,理解大腦的運作形式,從而提出人工智慧的新演算法。
人類大腦的工作流程:
人工智慧新演算法的主要的核心思想就是:進行固定事物的模型特徵提取,從而形成固定的人工神經網路認知模型。通過事物模型特徵進行對取得的時序相關的數據流進行編碼從而生成專屬匹配於人工智慧的記憶模式。
在記憶模式的基礎上進行思維活動的展開和語言的學習,從而讓思維和語言都具有了相應的意義;就是通過概念定義的形式讓相應的語言和思維具有相應的意義。從而進行強人工智慧的實現。「有意義」就是我們能夠理解語言相應符號組合本身的含義,比如我說桃子,那麼在做的每一位都能夠明白桃子的含義,如果你對你一個深度學習的人工神經網路說「桃子」,它能理解桃子嗎,很明顯不同,現階段人工智慧缺乏的就是這種理解能力和基於這種理解能力的主動思維能力。目前我的工作已經完成了對於大腦工作框架和工作流程的分析與結構。進行人工智慧新演算法的提出,與實驗階段。希望通過新演算法的提出,極大的減少當前階段人工神經網路構建和深度學習等等方面所需眼的計算量。
對於現階段的人工神經網路的構建來說,主要分為兩個方面:即學習訓練階段和應用階段。訓練階段通過無監督的學習演算法對於深度神經網路進行逐層和綜合調優;而應用階段則是通過訓練好的神經網路對於輸入的數據進行分辨,得到結果。
但是人類的神經網路並非是如此工作的,通過深度學習得到的深度神經網路本身,通過層級神經元之間的鏈接權值和偏置以及相應的鏈接方式來表示知識本身,即是鏈接主義的方式。而大腦則是通過神經認知模型的方式來實現認知的,一旦模型形成那麼我們便可以應用模型來認知和思考,即使我們失去了相應的感官,但是我們的神經認知模型也不會失去,他依然能夠進行工作,可以在百度上搜索新聞「能讓盲人「看見」周圍物體的舌部刺激器」,這難道不是讓人覺著很神奇嗎。但是現在的人工神經網路做不到這一點。
因此我個人覺得應該對現階段的神經演算法進行分解,即把需要大運算量的學習訓練階段和需要極小計算量的應用階段分解開來。我們可以通過訓練得到相應的事物模型特徵。這種事物模型特徵應該是通用的;而後我們在應用這種事物模型特徵,對於獲得的數據進行辨析。這樣我們就可以在很小的設備上進行人工智慧的應用,比如手機等等等等。
具體的分析還有很多 詳細見:http://pan.baidu.com/s/1dFLXgBJ
有同好中人嘛 哈哈
瀉藥,
雖然我不懂,但是我覺得現在應該還沒有真正意義上具有學習能力的機器人,有一些可以糾錯的機器人,前陣子看BigTalk知道的。
謝邀!
許多觀點其他朋友已經回答的很多了。其實個人反而覺得「學習」的定義很關鍵,以及「學習」是主動的還是「懵懵懂懂」的被動行為。當然不是說主動習得某種技能就不是「學習」了。個人覺得也應該關注那一類」模模糊糊「的行為,似乎會更為接近」具有學習能力的個體「的本質。
看起來像蟹,吃起來像蟹,那它就是蟹。
謝邀
【人工智慧】這個玩意還要好多時間發展,我也不太懂這個,感覺除非出現天網那種,不然不會有特別厲害的人工智慧出現
推薦閱讀:
※機器學習有很多關於核函數的說法,核函數的定義和作用是什麼?
TAG:機器人 | 機器學習 | 自主學習 | 深度學習(Deep Learning) | 強化學習 (Reinforcement Learning) |