劉子豪
摘要:目前絕大多數(shù)智能機器人具有較高的魯棒性,但其基于具體行為的實現(xiàn)方法都需要程序員對相應的任務進行手工編程。然而,環(huán)境是復雜多樣的,而要使得機器人能夠在多種環(huán)境下進行任務,需要程序員將各種情況考慮在內(nèi),這樣的系統(tǒng)對環(huán)境并不具有適應性,讓機器人的應用受到了局限?;诖?,提出的自主學習機器人以類人形機器人為基本模型,以神經(jīng)網(wǎng)絡為基礎,通過人體對機器人進行示范,訓練一個能識別人關節(jié)姿態(tài)的完備的神經(jīng)網(wǎng)絡。當機器人身處不同環(huán)境執(zhí)行任務時,能夠做出適應環(huán)境變化的動作。為此所設計的學習機器人系統(tǒng)的特色就在于使用神經(jīng)網(wǎng)絡具有學習能力,提高機器人對環(huán)境的適應能力,從而讓任務執(zhí)行更加靈活,使得機器人擁有更廣闊的應用前景。
關鍵詞:自主學習;神經(jīng)網(wǎng)絡;姿態(tài)識別;機器人
中圖分類號:TB
文獻標識碼:A
doi:10.19311/j.cnki.16723198.2017.01.092
1引言
1.1機器人在現(xiàn)代社會中的重要性
隨著城鄉(xiāng)居民消費結(jié)構的持續(xù)升級,以及智慧中國戰(zhàn)略的不斷推進,智能機器人在家庭、農(nóng)業(yè)、工業(yè)等生活的方方面面都有著極其廣泛的應用。隨著社會的不斷發(fā)展,社會分工越來越細,與此同時工作也變得越來越單調(diào)。另外,社會上有些工作風險較高,若讓人去做,不僅效率不高,而且更會產(chǎn)生生命危險。在這樣高風險的作業(yè)領域,對機器人的需求越來越高。在這一背景下,各種各樣的機器人被研制了出來,用它們代替人來完成枯燥、單調(diào)、高風險的工作。這極大的提高了勞動生產(chǎn)率和生產(chǎn)質(zhì)量,創(chuàng)造出了更多的社會財富。
同時,社會服務也對機器人產(chǎn)生了大量的需求。從公共服務方面來說,目前我國老齡人口已超過總?cè)丝诘?0%,人口老齡化問題已成為中國需要面臨的重大課題。此外,我國殘疾人口占總?cè)丝诘谋戎匾参痪邮澜巛^高國家之列。機器人的運用,可以為他們提供大量的護理服務,提高他們的生活質(zhì)量。在醫(yī)療服務方面機器人也有很大的優(yōu)勢,手術機器人憑借其操作的精度及可長期工作等特性廣泛應用于手術操作中??偠灾瑱C器人已成為我們的社會不可取代的一部分。
1.2當前機器人領域的現(xiàn)狀及弊端
目前機器人正處于快速發(fā)展的階段,但目前市場上的機器人仍存在著許多弊端。傳統(tǒng)機器人需要設計者針對具體的任務進行手工編程,為了使機器人在環(huán)境改變時也能完成任務,設計者就需要盡量將各種情況考慮在內(nèi)。但是這樣的機器人存在一些問題:一方面程序員無法窮盡所有的可能情況,另一方面環(huán)境的復雜性也無形中加大了機器人可能出故障的概率,這使得機器人缺乏良好的環(huán)境自適應能力,給機器人的廣泛應用帶來了很大的限制。
基于無法動態(tài)適應具體任務目標這個問題,市場上出現(xiàn)了很多自主學習的機器人,比如有些作品使用了強化學習的算法,這種算法通過進行試錯來尋求最優(yōu)行動策略,從而有效解決了基于行為控制的機器人缺乏對動態(tài)環(huán)境適應能力這一問題。但同時這些該作品也存在出現(xiàn)了一些弊端。這一技術需要執(zhí)行一些分層檢索及優(yōu)化的工作,因為機器人需要進行大量重復性實驗來獲得最優(yōu)解,而任務變得復雜時該技術的性能就會變得很差,提高了學習的難度。
基于目前機器人存在的限制與不足,本文提出了基于神經(jīng)網(wǎng)絡的學習方法,使機器人環(huán)境適應能力提高。
2多任務學習機器人介紹
2.1機械結(jié)構
本文所設計的多任務學習機器人的機械結(jié)構主要由攝像頭和仿生機械臂組成。為了使機器人能執(zhí)行與人類一樣非常細膩的動作,并能在某些應用中代替人,本文設計的機械臂擁有與人相似的機械結(jié)構。
如圖1所示,該機械臂具有著與人體骨骼結(jié)構相似的關節(jié),通過這些關節(jié),機械臂可以完成人手臂的旋轉(zhuǎn)、升降等動作。為了方便控制機械臂的運動狀態(tài),每一個關節(jié)都有相應的姿態(tài)參數(shù)。而根據(jù)不同關節(jié)的靈活程度不同,對應的參數(shù)數(shù)量也會存在差異。當機械手模仿人體動作時,可以通過設定對應機械手關節(jié)的姿態(tài)參數(shù)來完成,這樣,人體的姿態(tài)與機械手關節(jié)的姿態(tài)參數(shù)之間就存在著一一對應的關系。我們所搭建的神經(jīng)網(wǎng)絡的目的,就是為了找到這樣的對應關系,為機器人學習人的動作奠定基礎。本文設計中的攝像頭主要用于捕捉人體手臂姿態(tài),并對采集到的視頻流中的手臂姿態(tài)進行學習。通過將攝像頭固定到一定位置,作為機器人的“眼睛”,機器人便可將人的動作記錄下來,轉(zhuǎn)化為視頻信息。高速攝像頭將人的連貫動作存儲成一幀幀的圖片,作為神經(jīng)網(wǎng)絡訓練的原始輸入信息。
2.2神經(jīng)網(wǎng)絡
人工神經(jīng)網(wǎng)絡,是人們利用仿生學觀點,模擬人腦的結(jié)構及智能行為所構建的網(wǎng)絡,它能模擬生物神經(jīng)系統(tǒng)對真實世界做出交互反應。神經(jīng)元的基本模型也叫“M-P神經(jīng)元模型”。該模型中,神經(jīng)元接收來自n個神經(jīng)元的信號(x1,x2,…),通過帶權重(w1,w2,…)的連接傳遞,將獲得的總輸入值與閾值q比較,通過激活函數(shù)f(x)最終得到該單元的輸入y。
y=f(∑ni=1wixi-θ)
神經(jīng)網(wǎng)絡就是一個個這樣的網(wǎng)絡單元按一定的結(jié)構次序排列而成的。兩層神經(jīng)元形成的網(wǎng)絡可以容易地實現(xiàn)與、或、非這樣的基本邏輯運算,多層神經(jīng)網(wǎng)絡可以處理更加復雜的運算。神經(jīng)網(wǎng)絡的學習過程,就是根據(jù)獲得的訓練數(shù)據(jù)對自身的權重和閾值進行一定的調(diào)整,使神經(jīng)網(wǎng)絡輸出的值與我們所給的輸出值相差達到最小的過程。
為了達到這樣的學習過程,就需要合適的算法。誤差逆?zhèn)鞑ニ惴ǎê喎Q“BP算法”)是目前最成功的算法之一。在訓練開始時,隨機產(chǎn)生權重值wi,輸入訓練集(xi,yi)和學習率η,神經(jīng)網(wǎng)絡根據(jù)對應權重和輸入值計算出輸出y,。BP算法以y與y之間差值的差值作為反饋,調(diào)整各個神經(jīng)元的閾值和權重,進而更新神經(jīng)網(wǎng)絡,使網(wǎng)絡的誤差減小。其中,學習率η起著“控制神經(jīng)網(wǎng)絡學習速度”的作用,若學習率過小,神經(jīng)網(wǎng)絡變化相對遲緩,影響學習效率;而若學習率過大,則容易陷入局部最優(yōu)解,影響最終結(jié)果。因此,給予足夠的訓練數(shù)據(jù)和適宜的學習率,神經(jīng)網(wǎng)絡就會快速調(diào)整到穩(wěn)定而準確的狀態(tài)。
利用神經(jīng)網(wǎng)絡,我們可以對攝像機獲得的人體手臂各個關節(jié)的姿勢進行學習,所獲得的神經(jīng)網(wǎng)絡便表征了人體姿態(tài)與機械臂關節(jié)參數(shù)的映射關系。
2.3學習機器人原理
本文所用神經(jīng)網(wǎng)絡的作用是將輸入的動作信息轉(zhuǎn)化為機器人的姿態(tài)參數(shù),以神經(jīng)網(wǎng)絡作為核心算法,機器人就可以在一定的學習訓練后,具備識別人體關節(jié)姿態(tài)的能力,從而使機器人做出與人體輸入動作一致的動作,具體的學習過程如下:
為了獲得比較完備的訓練數(shù)據(jù),選擇盡可能多的人采集手臂各關節(jié)姿態(tài)數(shù)據(jù),提高神經(jīng)網(wǎng)絡的魯棒性;使人體位于攝像頭采集姿態(tài)的最佳角度,做各種各樣的動作,以覆蓋盡可能多的關節(jié)姿態(tài)參數(shù)范圍;針對高速攝像頭采集獲得的圖像數(shù)據(jù)的某一幀,手工采用測量工具標定該圖像中人體每個關節(jié)的角度數(shù)據(jù),以這些圖像數(shù)據(jù)和標定獲得的角度數(shù)據(jù)作為訓練原始數(shù)據(jù)。
以采集的數(shù)據(jù)作為神經(jīng)網(wǎng)絡的輸入,選擇一定的學習速率,采用誤差逆?zhèn)鞑ィ˙P)算法,完成訓練后,得到一個能夠根據(jù)圖像數(shù)據(jù)輸出關節(jié)姿態(tài)參數(shù)的神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡訓練完畢之后,為了檢測其準確性,需要對其進行測試。測試過程與實際使用過程類似。測試方法如下:使用攝像頭采集人體手臂的幾組圖像數(shù)據(jù),將這幾組圖像數(shù)據(jù)分別作為神經(jīng)網(wǎng)絡的輸入,觀察神經(jīng)網(wǎng)絡能否正確輸出與人體手臂關節(jié)相對應的角度數(shù)據(jù)。如果機器人的動作有較大的偏差,則證明訓練失敗,需要重新檢查訓練數(shù)據(jù),對攝像頭捕捉關節(jié)的位置進行調(diào)整,或提高攝像頭的性能,以便使攝像頭獲得更精確的信息。另外,根據(jù)神經(jīng)網(wǎng)絡測試的結(jié)果,適當調(diào)節(jié)神經(jīng)網(wǎng)絡模型學習過程中的參數(shù)如學習速率,樣本容量等。
神經(jīng)網(wǎng)絡訓練與測試完畢后,我們就獲得了一個輸入為一系列包含手臂各個關節(jié)的圖像數(shù)據(jù)、能夠識別人體關節(jié)各個姿態(tài),并輸出各個關節(jié)姿態(tài)角度的神經(jīng)網(wǎng)絡。利用這個訓練并測試完成的神經(jīng)網(wǎng)絡,多任務學習機器人即可以根據(jù)人演示的動作,準確地模仿人的姿態(tài),完成特定的任務,具體過程如下:
(1)針對某一環(huán)境下的任務要求,人體做任務動作,攝像頭捕捉這個過程中的圖像信息。
(2)每一時刻的圖像信息輸入神經(jīng)網(wǎng)絡,神經(jīng)網(wǎng)絡輸出各個關節(jié)的角度值。
(3)各個關節(jié)角度值輸入到機械臂相關關節(jié)控制單元,實現(xiàn)對機器人姿態(tài)的控制。
(4)每個時刻分別重復這個過程,就實現(xiàn)了機器人控制參數(shù)流的輸出,機器人即可完成一系列動作。
由于神經(jīng)網(wǎng)絡的可復用性,機器人可以隨時模仿各種各樣的動作,實現(xiàn)了多任務學習的設計要求。實際的應用過程中,可以通過設計多個存儲單元,分別存儲多個動作的控制參數(shù)流序列,實現(xiàn)常用動作的記憶與切換功能。
3總結(jié)
本文所設計的機器人主要由攝像頭及仿生機械臂組成,機器人以攝像頭接收使用者的動作,首先通過訓練過程,對神經(jīng)網(wǎng)絡進行訓練。神經(jīng)網(wǎng)絡訓練完畢后,在使用過程中,人體演示機器人做相應動作,機器人就可根據(jù)神經(jīng)網(wǎng)絡識別的結(jié)果反饋來操控機器人,完成指定動作。應用這一方法,可以有效提高機器人的環(huán)境應變能力,通過對某一新動作的學習,可以高效提取新動作的參數(shù)信息,根據(jù)這些信息輸出對機器人的控制量,從而達到理想的效果。本作品解決了傳統(tǒng)機器人功能單一的缺點,可以使得機器人能執(zhí)行多種動作,使機器人“身兼數(shù)職”,也提高了機器人的靈活性與便捷性。
參考文獻
[1]李揚.智能服務機器人引領智慧變革[J].高科技與產(chǎn)業(yè)化,2016,(5):6971.
[2]陳衛(wèi)東,席裕庚,顧冬雷.自主機器人的強化學習研究進展[J].機器人,2001,23(4):379384.
[3]周志華.機器學習:=Machine learning[M].北京:清華大學出版社,2016.