本發(fā)明提供一種基于elm-lrf(基于局部接收野的極限學(xué)習(xí)機)的自適應(yīng)視覺導(dǎo)航方法,具體而言就是輸入像素數(shù)據(jù)、輸出決策(選擇行走動作),直到找到想要的物體,停下。屬于機器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)算法、強化學(xué)習(xí)技術(shù)領(lǐng)域。
背景技術(shù):
視覺導(dǎo)航是在機器人上安裝單目或雙目照相機,獲取環(huán)境中局部圖像,實現(xiàn)自我位姿確定和路徑識別,從而做出導(dǎo)航?jīng)Q策,與人類視覺反饋導(dǎo)航很類似。從輸入圖像到輸出動作,機器學(xué)習(xí)是核心。隨著計算機計算性能的不斷提高和越來越多數(shù)據(jù)的產(chǎn)生,挖掘數(shù)據(jù)的價值為人們生活服務(wù)成為必然。在此趨勢下,“大數(shù)據(jù)”和“人工智能”成為火熱的名詞,而機器學(xué)習(xí)又是其中的核心技術(shù)。機器學(xué)習(xí)主要包括監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)和強化學(xué)習(xí)。
監(jiān)督學(xué)習(xí)最火熱的當(dāng)屬深度學(xué)習(xí),深度學(xué)習(xí)簡單說就是多層的神經(jīng)網(wǎng)絡(luò),給定數(shù)據(jù)和相應(yīng)標(biāo)簽,給定一個優(yōu)化目標(biāo),采用bp(誤差反向傳播errorbackpropagation)訓(xùn)練算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。深度學(xué)習(xí)算法中最著名是卷積神經(jīng)網(wǎng)絡(luò)(cnn),cnn受啟發(fā)于人類的視覺皮層,輸入至隱藏層采用局部連接。
極限學(xué)習(xí)機(elm),可用于特征學(xué)習(xí),聚類,回歸和分類。傳統(tǒng)觀點認為神經(jīng)網(wǎng)絡(luò)的隱藏層神經(jīng)元需要在訓(xùn)練階段迭代調(diào)整,比如bp算法,涉及大量的梯度下降,容易陷入局部最優(yōu)。elm理論打破了這種信條,認為隱層神經(jīng)元雖然很重要,但不需要迭代調(diào)整,解決了傳統(tǒng)方法的缺陷[1.g.-b.huang,q.-y.zhu,andc.-k.siew.extremelearningmachine:anewlearningschemeoffeedforwardneuralnetworks,inproc.int.jointconf.neuralnetworks,july2004,vol.2,pp.985–990.][2.g.-b.huang,q.-y.zhu,andc.-k.siew,.extremelearningmachine:theoryandapplications,neurocomputing,vol.70,pp.489–501,dec.2006.]。隱藏層節(jié)點的所有參數(shù)(權(quán)重w和偏置b)都獨立于訓(xùn)練樣例,可以隨機的(任意連續(xù)概率分布)生成,這樣的elm依然具有普適的逼近和分類能力。elm理論表明,只要隱層神經(jīng)元的激活函數(shù)是非線性分段連續(xù)的,神經(jīng)網(wǎng)絡(luò)就不需要通過迭代調(diào)整網(wǎng)絡(luò)來獲得學(xué)習(xí)能力。
elm-lrf[3.g.-bhuang,zbai,llckasun,cmvong.localreceptivefieldsbasedextremelearningmachine.[j].ieeecomputationalintelligencemagazine,2015,10(2):18-29]是基于局部感受野的極限學(xué)習(xí)機,輸入與隱藏層間的連接是稀疏的,且由相應(yīng)的局部感受野(對連續(xù)概率分布采樣得到)包圍。elm理論證明,隱藏層節(jié)點可以按照任意概率分布生成,這里的隨機是指:輸入與隱藏層節(jié)點間的連接密度是根據(jù)不同類型的概率分布隨機采樣得到的,輸入與隱藏層節(jié)點間的連接權(quán)重也是隨機生成的。
強化學(xué)習(xí)是一種重要的機器學(xué)習(xí)方法,在智能控制、機器人及分析預(yù)測等領(lǐng)域有許多應(yīng)用。在人工智能領(lǐng)域,一般用智能體來表示一個具備行為能力的物體,比如機器人,無人車,人等等。那么強化學(xué)習(xí)考慮的問題就是智能體和環(huán)境之間交互的任務(wù)。比如一個機械臂要拿起一個手機,那么機械臂周圍的物體包括手機就是環(huán)境,機械臂通過外部的比如攝像頭來觀察環(huán)境,然后機械臂需要輸出動作來實現(xiàn)拿起手機這個任務(wù)。再舉玩游戲的例子,比如玩賽車游戲,人們只看到屏幕,這就是環(huán)境,然后通過操作鍵盤來控制車的運動。不管是什么樣的任務(wù),都包含了一系列的動作,觀察還有反饋值。所謂的反饋值就是智能體執(zhí)行了動作與環(huán)境進行交互后,環(huán)境會發(fā)生變化,變化的好與壞就用反饋值來表示。如上面的例子,如果機械臂離手機變近了,那么回報值就應(yīng)該是正的,如果玩賽車游戲賽車越來越偏離跑道,那么回報值就是負的。用了觀察一詞而不是環(huán)境那是因為智能體不一定能得到環(huán)境的所有信息,比如機械臂上的攝像頭就只能得到某個特定角度的畫面。因此,只能用觀察來表示智能體獲取的感知信息。人與環(huán)境的交互就是一個典型的強化學(xué)習(xí)過程。
深度強化學(xué)習(xí)(deepreinforcementlearning)將深度學(xué)習(xí)和強化學(xué)習(xí)結(jié)合,這個想法在幾年前就有人嘗試,但真正成功的開端就是deepmind在nips2013上發(fā)表的[4.volodymyrmnih,koraykavukcuoglu,davidsilver,alexgraves,ioannisantonoglou,daanwierstra,martinriedmiller.playingatariwithdeepreinforcementlearning[a].nips,2013.]一文,在該文中第一次提出深度強化學(xué)習(xí)這個名稱,并且提出dqn(deepq-network)算法,實現(xiàn)從純圖像輸入完全通過學(xué)習(xí)來玩atari游戲的成果。之后deepmind在nature上發(fā)表了改進版的dqn文章[5.volodymyrmnih,koraykavukcuoglu,davidsilver,andreia.rusu,joelveness,marcg.bellemare,alexgraves,martinriedmiller,andreask.fidjeland,georgostrovski,stigpetersen,charlesbeattie,amirsadik,ioannisantonoglou,helenking,dharshankumaran,daanwierstra,shanelegg&demishassabis,human-levelcontrolthroughdeepreinforcementlearning.[j]nature.2015.518:529-541.],引起了廣泛的關(guān)注,深度強化學(xué)習(xí)從此成為深度學(xué)習(xí)領(lǐng)域的前沿研究方向。2016年9月,lifeifei組的最新文章[6.yukezhu,roozbehmottaghi,erickolve,josephj.lim,abhinavgupta,lifei-fei,andalifarhadi.target-drivenvisualnavigationinindoorscenesusingdeepreinforcementlearning.corr,abs/1609.05143,2016.]使用深度增強學(xué)習(xí)實現(xiàn)目標(biāo)驅(qū)動的視覺導(dǎo)航。這篇文章中,作者構(gòu)建了一個虛擬仿真環(huán)境,并且通過在高度仿真的環(huán)境中訓(xùn)練,然后遷移到真實場景中。這種方法被證明是有效的。深度強化學(xué)習(xí)可以用來做視覺導(dǎo)航,但有個缺陷就是訓(xùn)練速度非常慢。
技術(shù)實現(xiàn)要素:
本發(fā)明技術(shù)解決問題:克服現(xiàn)有技術(shù)的不足,提供一種基于elm-lrf的自適應(yīng)視覺導(dǎo)航方法,大大提高了導(dǎo)航速度。
本發(fā)明技術(shù)解決方案:一種基于elm-lrf的自適應(yīng)視覺導(dǎo)航方法,。該方法分配(st,at,rt,st+1,qt)結(jié)構(gòu)體數(shù)據(jù)存儲空間;令機器人在選定環(huán)境中重復(fù)運動,獲得所需結(jié)構(gòu)體數(shù)據(jù),將狀態(tài)相同的數(shù)據(jù)通過刪除q值較小的數(shù)據(jù)進行預(yù)處理。然后以st作為輸入,at作為輸出完成對elm-lrf的訓(xùn)練,建立起當(dāng)前狀態(tài)和最優(yōu)動作的映射關(guān)系。最后以機器人能否找到目標(biāo)來測試機器人的導(dǎo)航能力。本發(fā)明在該數(shù)據(jù)空間下利用elf-lrf模型提出的方法大大提高了機器人的導(dǎo)航速度。其中,st是當(dāng)前狀態(tài),在這里為拍攝到的照片,at是在st下機器人的動作(前后左右運動),rt是at的即時回報,st+1是機器人在at后的狀態(tài),q為長遠回報,qt值為在狀態(tài)st下執(zhí)行at后得到的總的長遠回報
具體包含如下:
(1)分配存儲(st,at,rt,st+1,qt)的空間;(st,at,rt,st+1,qt)是結(jié)構(gòu)體存儲,st是當(dāng)前狀態(tài),在這里為拍攝到的照片,at是在st下的動作,rt是at的即時回報,st+1是at后的狀態(tài),qt值為在狀態(tài)st下執(zhí)行at后得到的總的長遠回報;
(2)機器人在環(huán)境中運動,得到一組從初始位置到發(fā)現(xiàn)目標(biāo)物的(st,at,rt,st+1,qt)數(shù)據(jù);
(3)機器人重置到初始位置,當(dāng)在某狀態(tài)st′下得到的qt′比之前同狀態(tài)st得到的qt大時,刪除在st狀態(tài)下得到的(st,at,rt,st+1,qw)數(shù)據(jù),否則刪除在st′下得到的(st′,at′,rt′,st+1′,qt′);重復(fù)多次,從而得到較好的當(dāng)前狀態(tài)和最優(yōu)動作的數(shù)據(jù),即得到為訓(xùn)練所提供的更好的樣本數(shù)據(jù);
(4)在步驟(3)的基礎(chǔ)上,完成對基于局部接收野的極限學(xué)習(xí)機神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,即elm-lrf的訓(xùn)練,建立起當(dāng)前狀態(tài)和最優(yōu)動作的映射關(guān)系;
(5)根據(jù)步驟(4)的建立起當(dāng)前狀態(tài)和最優(yōu)動作的映射關(guān)系,測試機器人導(dǎo)航能力,觀察機器人是否能找到目標(biāo)。
所述步驟(4)的具體實現(xiàn)過程如下:
(4.1)計算隱層輸出矩陣h
給定的訓(xùn)練集(xi,ti),=1…l,xi為步驟(3)得到的st,ti為步驟(3)得到的at,
其中,g(ai,bi,x)是一個非線性分段連續(xù)函數(shù),實際上是將d維的輸入空間映射到l維的隱層隨機空間,是一個隨機特征映射;ai,bi是第i個隱藏節(jié)點的參數(shù),非線性分段連續(xù)函數(shù)的參數(shù),非線性分段連續(xù)函數(shù)有很多種,比如sin(ax+b),r代表實數(shù);
(4.2)根據(jù)步驟(4.1)中的h,求隱藏層至輸出的權(quán)重β
elm-lrf的輸出函數(shù)
通過求解
其中σ1>0,σ2>0,p,q>0,c用于控制兩項的重要性,t是訓(xùn)練樣例的目標(biāo)矩陣:
當(dāng)σ1=σ2=p=q=2時,常用的閉式解為:
p,q是范數(shù)下標(biāo),n是矩陣t的行數(shù),l是矩陣β的行數(shù)。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點在于:為了探索輸入圖像數(shù)據(jù)輸出動作的端到端學(xué)習(xí),其中在當(dāng)前狀態(tài)和最優(yōu)動作建立聯(lián)系時選擇了elm-lrf,而不是cnn。與dqn采用的cnn架構(gòu)不同的是,cnn采用bp訓(xùn)練,這使得dqn面臨bp中的瑣碎問題,如:局部最優(yōu),慢的收斂速度。而elm-lrf隨機生成輸入權(quán)重并解析地計算輸出權(quán)重,也就是計算主要是輸出權(quán)重的計算,從而elm-lrf更為高效。
因此,傳統(tǒng)方法需要設(shè)計特征提取器,而借助elm-lrf神經(jīng)網(wǎng)絡(luò)能實現(xiàn)輸入圖像到輸出動作的映射,并且相比于其他類型神經(jīng)網(wǎng)絡(luò),比如卷積神經(jīng)網(wǎng)絡(luò),elm-lrf訓(xùn)練速度快,所需計算資源也少,本發(fā)明通過仿真試驗測試大大提高了導(dǎo)航速度,從而很好的提高導(dǎo)航能力。
附圖說明
圖1為本發(fā)明方法的elm-lrf神經(jīng)網(wǎng)絡(luò)架構(gòu);
圖2為本發(fā)明方法的實現(xiàn)流程圖。
具體實施方式
下面結(jié)合附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的說明。
如圖1所示,elm-lrf神經(jīng)網(wǎng)絡(luò)架構(gòu)如圖1所示,elm-lrf分為elm特征學(xué)習(xí)和elm特征映射兩個階段,首先隨機分配輸入向量,局部接收野中的像素是隨機選取,輸入到隱藏層的權(quán)重也是隨機給出,接下來進行下采樣,最后輸出。
如圖2所示,本發(fā)明一種基于elm-lrf的自適應(yīng)視覺導(dǎo)航方法,具體實施例的流程如下:
步驟一:分配能存儲(st,at,rt,st+1,qt)結(jié)構(gòu)體的空間。qt初始化為0,根據(jù)當(dāng)前所處狀態(tài)st,隨機選取運動at(機器人可以向前后左右四個方向運動),機器人在運動at下向相應(yīng)方向走0.5m,得到新狀態(tài)st+1與即時回報rt。找到目標(biāo)物回報為1,其他為0。存儲(st,at,rt,st+1,qt),狀態(tài)圖像信息按64×64灰白圖存儲。
步驟二:重復(fù)步驟一,機器人在環(huán)境中不斷運動,直到機器人找到目標(biāo)物停止,這時將得到一組從初始位置到發(fā)現(xiàn)目標(biāo)物的(st,at,rt,st+1,qt)數(shù)據(jù)。每組最后的at的即時回報rt是1,qt值也為1,其他狀態(tài)下通過式(1)更新qt的值。
qt(st,at)=rt+γmaxq(st+1,at+1)(1)
其中,rt是st即時回報,記找到目標(biāo)物為1,未找到為0。st+1,at+1為下一個狀態(tài)與動作,0<γ<1為折扣因子,影響決策時的遠視程度。當(dāng)前的動作會影響后續(xù)動作。
步驟三:機器人重置到初始位置,回到步驟一繼續(xù)循環(huán),當(dāng)在某狀態(tài)st′下得到的qt′比之前同狀態(tài)st得到的qt大時,刪除在st狀態(tài)下得到的(st,at,rt,st+1,qt)數(shù)據(jù),否則刪除在st′下得到的(st′,at′,rt',st+1′,qt′),循環(huán)n0次來獲得大量樣本數(shù)據(jù)。
步驟四:將系統(tǒng)所處狀態(tài)st做輸入,對應(yīng)qt的動作at做輸出構(gòu)造樣本,at四個方向1,2,3,4用[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]取代。計算隱層輸出矩陣h,根據(jù)式(2):計算輸出權(quán)重β,完成對elm-lrf的訓(xùn)練,建立起當(dāng)前狀態(tài)和最優(yōu)動作的映射關(guān)系。
步驟五:將機器人放到新的出發(fā)點,測試其導(dǎo)航能力,觀察其是否能找到目標(biāo)。找不到目標(biāo)可以增加訓(xùn)練次數(shù),增加步驟三中的n0,獲得更多樣本數(shù)據(jù),接著重新訓(xùn)練elm-lrf神經(jīng)網(wǎng)絡(luò)。訓(xùn)練之后繼續(xù)測試,直到測試結(jié)果顯示能發(fā)現(xiàn)目標(biāo),則表示用于導(dǎo)航的elm-lrf神經(jīng)網(wǎng)絡(luò)訓(xùn)練好了。