徐明亮, 柴志雷, 須文波
(1.無錫城市職業(yè)技術(shù)學(xué)校 電子信息系,江蘇無錫 214063;2.江南大學(xué) 信息工程學(xué)院,江蘇無錫 214122)
導(dǎo)航是移動機器人的一項重要的功能,是移動機器人完成其他智能行為的基礎(chǔ)。沿墻導(dǎo)航控制是指機器人在和墻保持一定距離的情況下沿墻運動,從更一般意義上來說實際上是機器人與物體保持一定距離并沿物體輪廓運動[1]。因此沿墻導(dǎo)航實際上既可以使機器人實現(xiàn)障礙物的避碰[2],也可以實現(xiàn)在未知環(huán)境的導(dǎo)航[3]。
移動機器人的反應(yīng)式導(dǎo)航是一種直接在機器人的感知和行為之間建立映射關(guān)系的導(dǎo)航方法。它具有靈活和執(zhí)行快速的特點而成為移動機器人在未知和快速變化環(huán)境中導(dǎo)航的重要方法。已有許多學(xué)者提出了不同的反應(yīng)式導(dǎo)航方法,比如文獻(xiàn)[4]采用引力勢場法進(jìn)行導(dǎo)航。文獻(xiàn)[5]采用基于模糊規(guī)則的反應(yīng)式導(dǎo)航控制器。這些方法通?;诰唧w的環(huán)境模型,需要較多的先驗知識,同時對變化的環(huán)境不具有自適應(yīng)能力。
強化學(xué)習(xí)能夠在沒有先驗知識的情況下通過與環(huán)境的交互獲得由狀態(tài)到動作的策略,因此基于強化學(xué)習(xí)的機器人導(dǎo)航受到眾多研究者的廣泛關(guān)注。文獻(xiàn)[6]中采用Q-學(xué)習(xí)來對模糊規(guī)則進(jìn)行調(diào)整,但模糊規(guī)則則是根據(jù)機器人的系統(tǒng)特性手工建立。文獻(xiàn)[7]也采用類似技術(shù),其特點是用RBF網(wǎng)絡(luò)逼近選定的若干個離散動作的Q-值,網(wǎng)絡(luò)權(quán)值利用Q-學(xué)習(xí)來調(diào)整。而RBF網(wǎng)絡(luò)隱層節(jié)點的中心和寬度卻要由樣本來確定。文獻(xiàn)[8]采用CMAC神經(jīng)網(wǎng)絡(luò)實現(xiàn)了Q-值函數(shù)的逼近,該方法涉及到輸入?yún)?shù)的離散化,離散化的粒度也將影響系統(tǒng)的性能。文獻(xiàn)[9]利用FNN來逼近Q-值函數(shù)和策略函數(shù),而這些函數(shù)都是建立在若干個選定的離散動作的基礎(chǔ)之上,使得系統(tǒng)過于復(fù)雜。文獻(xiàn)[10]是用模糊推理系統(tǒng)來逼近Q-值函數(shù),每一條規(guī)則對應(yīng)一個由若干個選定的離散動作所構(gòu)成的向量,每一個規(guī)則的輸出動作由規(guī)則內(nèi)部的離散動作通過競爭的方法產(chǎn)生,控制器的輸出動作由各個規(guī)則的輸出動作根據(jù)當(dāng)前狀態(tài)在各個規(guī)則所導(dǎo)出的狀態(tài)值進(jìn)行加權(quán)。在這些方法中,導(dǎo)航控制器輸出取決于預(yù)先選定的離散動作。這些離散動作的選擇影響導(dǎo)航控制器的性能,而如何選擇這些種子動作也沒有任何先驗知識可用。另外這些方法中的Q-學(xué)習(xí)從本質(zhì)上來說是基于 actor-critic 方法的[11]。
為避免種子動作的選擇,我們用模糊神經(jīng)網(wǎng)絡(luò)直接對強化學(xué)習(xí)中的Q-值函數(shù)進(jìn)行逼近,即網(wǎng)絡(luò)的輸入為狀態(tài)動作對,而非相關(guān)文獻(xiàn)中的狀態(tài),利用函數(shù)優(yōu)化技術(shù)產(chǎn)生控制器輸出動作。同時在學(xué)習(xí)過程中引入網(wǎng)絡(luò)節(jié)點自適應(yīng)構(gòu)建和參數(shù)自適應(yīng)調(diào)整方法,減少人工干預(yù)。
Q-學(xué)習(xí)的主要目標(biāo)是通過與環(huán)境的交互獲得表征策略的狀態(tài)動作對的Q-值函數(shù)。Q-學(xué)習(xí)中狀態(tài)動作對的Q值按照下式進(jìn)行更新:
其中:st為當(dāng)前狀態(tài);at為當(dāng)前狀態(tài)下選擇執(zhí)行的動
其中:γ為折扣因子,rt+1為學(xué)習(xí)agent在狀態(tài)st執(zhí)行動作at后轉(zhuǎn)移到狀態(tài)st+1時所獲得的立即獎賞。經(jīng)典的Q-學(xué)習(xí)是以查找表來描述離散空間狀態(tài)動作對的值函數(shù)。對于連續(xù)空間下的Q學(xué)習(xí),直接的方法是將連續(xù)空間進(jìn)行離散化處理。而對于離散的粒度選擇,往往沒有任何先驗知識可用。離散粒度過大將會導(dǎo)致系統(tǒng)性能下降,甚至學(xué)習(xí)不成功;過小也會使學(xué)習(xí)速度下降。為克服離散化所產(chǎn)生的弊端,研究者普遍采用具有泛化功能的神經(jīng)網(wǎng)絡(luò)或模糊推理系統(tǒng)來逼近Q值函數(shù)。
模糊神經(jīng)網(wǎng)絡(luò)是模糊推理系統(tǒng)和神經(jīng)網(wǎng)絡(luò)相結(jié)合的產(chǎn)物,它既擁有模糊推理系統(tǒng)便于知識的表達(dá)和便于在系統(tǒng)中嵌入已有知識的優(yōu)點,也擁有神經(jīng)網(wǎng)絡(luò)的自學(xué)習(xí)自組織的特點,因此在函數(shù)逼近中得到廣泛應(yīng)用。因此我們采用模糊神經(jīng)網(wǎng)絡(luò)來逼近Q值函數(shù)。
用于對Q值函數(shù)進(jìn)行直接逼近的模糊神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。第一層為輸入層,它將由狀態(tài)s和動作a構(gòu)成的向量x=(s1,…,sm,a)T直接傳送到下一層。狀態(tài)空間s為m維,記向量x維數(shù)為n,則n=m+1。第二層為模糊化層,其中每個節(jié)點代表一個語言變量。該層的作用是計算各個分量在不同語言變量中的隸屬度。各個語言變量的隸屬度函數(shù)采用高斯函數(shù)。輸入向量第i個分量的第j個語言變量的隸屬度函數(shù)為作;α 為學(xué)習(xí)率;δTD為時間差分(temporal difference,TD)。一步時間差分δTD計算式為其中:μij和σij分別為該隸屬度函數(shù)的中心和寬度;J為該分量的語言變量的個數(shù)。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 The architecture of network
第三層為T-norm運算層,該層計算每個規(guī)則的發(fā)射強度。第k條規(guī)則的發(fā)射強度為
第四層為歸一化層,對每一條規(guī)則的發(fā)射強度進(jìn)行歸一化處理。第k條規(guī)則的歸一化后的發(fā)射強度為
wk是第k條規(guī)則的后件。
模糊規(guī)則可以根據(jù)樣本的ε完整性[12]來建立,但ε完整性不能充分體現(xiàn)每個分量對系統(tǒng)性能有不同影響。在文獻(xiàn)[13]中,RBF網(wǎng)絡(luò)隱層節(jié)點根據(jù)當(dāng)前樣本與隱層節(jié)點中心最小距離和誤差進(jìn)行自適應(yīng)添加。在這些方法中沒有考慮系統(tǒng)性能對輸入向量中的不同分量有不同的敏感程度。如果對這些分量不加區(qū)別,為保證系統(tǒng)性能,就要照顧到對系統(tǒng)性能敏感的分量,因此必須采用較細(xì)的分辨率,這樣將導(dǎo)致規(guī)則數(shù)或隱層節(jié)點數(shù)目過多。對系統(tǒng)性能敏感的分量應(yīng)采用較細(xì)的分辨率,而對系統(tǒng)性能不敏感的分量應(yīng)采用較粗的分辨率。這樣可以減少節(jié)點數(shù)目,減小系統(tǒng)計算量,加快學(xué)習(xí)速度。因此考慮不同分量具有不同分辨率的模糊規(guī)則構(gòu)造的條件為
第五層為解模糊層即輸出層,采用重心法進(jìn)行解模糊,輸出為輸入狀態(tài)動作對的Q值,即
式中:ρi為第i個分量的分辨率;eT為TD誤差閾值;di為輸入狀態(tài)動作對的第i個分量和該分量全部語言變量的隸屬度函數(shù)中心的最小距離,即
其中:xti為在時間t的狀態(tài)動作對的第i個分量。
如果當(dāng)前狀態(tài)動作對滿足式(7)的條件,系統(tǒng)就構(gòu)造一個新的模糊規(guī)則。為描述方便,記
式中參數(shù)τ為重疊系數(shù)。ηi為第i個分量的分辨率。新規(guī)則的后件wnew為
該規(guī)則第i個分量的隸屬度函數(shù)的寬度為
在學(xué)習(xí)的初始階段,系統(tǒng)沒有任何規(guī)則,可以以第一個狀態(tài)動作對作為隸屬度函數(shù)中心建立第一個規(guī)則,規(guī)則的寬度設(shè)為[τρ1,…,τρn]。對于后續(xù)的狀態(tài)動作對則根據(jù)式(7)來判斷是否創(chuàng)建新的規(guī)則。
當(dāng)無需增加新規(guī)則時,即狀態(tài)動作對不滿足規(guī)則構(gòu)建的條件時,可以采用梯度下降法對規(guī)則的前件和后件中的相關(guān)參數(shù)進(jìn)行調(diào)整。但由于梯度下降法容易陷入局部最優(yōu),因此采用卡爾曼濾波法對相關(guān)參數(shù)進(jìn)行調(diào)整[14]。
令規(guī)則中全部可調(diào)參數(shù)構(gòu)成的向量為v=[w1,μT1,σT1,…,wK,μTK,σTK]T,根據(jù)卡爾曼濾波方法其更新式為
其中Γh為各個參數(shù)的梯度向量,由式(3),(4),(5),(6)可以推導(dǎo)出
其中Rh為測量噪聲方差,Ph為協(xié)方差矩陣,其更新式為
其中U是一個標(biāo)量,表示在梯度方向上的隨機步長,I為單位矩陣。如果參數(shù)v的長度為N,Ph是一個N×N正定對稱矩陣,當(dāng)新增一個規(guī)則時,可調(diào)參數(shù)也將增加,矩陣Ph的維數(shù)按下式增加,即
其中P0為新增規(guī)則的初始化參數(shù)。
為獲得最大的累積報酬,學(xué)習(xí)主體在任何狀態(tài)下總是選擇具有最大Q值的動作,即貪婪動作:
其中b為可選動作。該貪婪動作的求解實際上是一個優(yōu)化問題,即
式中A為動作定義域。將當(dāng)前狀態(tài)st代入上式有的障礙物與機器人之間的距離。
圖2 KheperaⅡ機器人傳感器及其布置[10]Fig.2 The displace of the sensor of the robot KheperaⅡ
上述優(yōu)化問題可以用PSO或GA算法或最簡單的格點法進(jìn)行求解。
為平衡強化學(xué)習(xí)中特有的搜索和利用兩難問題,貪婪動作并不直接作用于環(huán)境,而是在其上疊加一個干擾動作ad[15],即執(zhí)行動作aexe為
而干擾動作ad服從如下的正態(tài)分布:
式中
λ為比列因子。
和文獻(xiàn)[10]一樣,用 Khepera 2[16]機器人仿真器進(jìn)行實驗,該機器人的結(jié)構(gòu)如圖2所示,該機器人有6對紅外傳感發(fā)射、接收器,用于測量相應(yīng)方向上
實驗?zāi)康氖窍M麢C器人在沒有任何先驗知識的情況下通過強化學(xué)習(xí)獲得一個能控制機器人按順時針方向沿墻繞行的控制器,因此只需考慮s0,s1,s2,s3這四個傳感器的輸出作為機器人狀態(tài)。機器人的動作為轉(zhuǎn)角。將距離進(jìn)行歸一化處理后,機器人離墻的最小距離為0.15 m,最大距離為0.85 m。以傳感器s0的測量值為機器人與墻的距離。
仿真實驗環(huán)境如圖3所示。在這個環(huán)境中,有三個90°拐角,一個270°拐角,一個 116.57°鈍角拐角,一個63.43°銳角拐角,可見該環(huán)境比文獻(xiàn)[10]要復(fù)雜。實驗中4個傳感器的最大分辨率為1 m,最小分辨率為0.5 m。輸出轉(zhuǎn)角在-30°和30°之間,其最大分辨率為60°,最小分辨率為30°。所有分辨率衰減因子均為0.82。TD誤差閾值eT為0.01,TD誤差計算式(2)中的折扣因子γ=0.48,Q值更新式(1)中學(xué)習(xí)因子α=1。重疊因子τ=0.82??柭鼮V波器參數(shù)P0=R0=1.0,Q0=0.000 5。式(23)中λ=0.4。機器人速度為0.2 m/s。機器人決策時間間隔為200 ms。為簡單起見,貪婪動作及最大Q值的計算采用格點法,即按ai=-30°+i+f(i=0°,1°…,60°,f是一個在區(qū)間[-0.5,0.5]上服從均勻分布的隨機數(shù)。如果ai大于30°,取ai為30°,如果ai小于 -30°,取ai為 -30°)。比較60 個輸出動作的Q值,取Q值最大的動作為貪婪動作。
強化信號定義為
圖3 仿真環(huán)境Fig.3 The enviroment of simulation
為加快學(xué)習(xí)速度同時減小計算量,采用經(jīng)驗重放的方法[17]進(jìn)行學(xué)習(xí)。
一次運行中最大嘗試次數(shù)為500,當(dāng)機器人能繞墻成功行走1 200步(1 200步能確保機器人繞墻至少一周)就視為學(xué)習(xí)成功。每次嘗試時機器人的初始位姿為(0.5,0.5,90°)。
在25次運行中,每次機器人都能經(jīng)過不到500次嘗試就能完成繞墻至少一周的任務(wù)。平均嘗試次數(shù)為67.6,最大嘗試次數(shù)為480,最小嘗試次數(shù)為5??刂破髌骄?guī)則數(shù)為14,最大為40,最小為8。性能優(yōu)于文獻(xiàn)[10]的DFQL方法。如果直接采用文獻(xiàn)[13]中的方法進(jìn)行規(guī)則增加,即取總的最大分辨率為1,最小分辨率為0.5,在500次嘗試中并不能次次成功,同時由于規(guī)則數(shù)過多,計算量大。
圖4給出了在學(xué)習(xí)成功后繞墻行走的軌跡,該軌跡起點為(0.5,0.5)出發(fā),繞墻一周后終點為(2.66,4.42)。在這次運行中,控制器經(jīng)過9次嘗試后就能成功地控制仿真機器人實現(xiàn)沿墻行走。
圖4 機器人繞墻行軌跡Fig.4 The tragectory of the robot
圖5給出了機器人方向角的變化情況,圖6給出了控制器在1 200步的沿墻運動中輸出的控制量變化。圖7所示為每個傳感器在沿墻行走過程中的測量值。圖8給出了在學(xué)習(xí)后自動建立的9條規(guī)則中每個輸入變量隸屬度函數(shù)。
圖5 機器人方向角變化曲線Fig.5 The azimuth of the robot
圖6 控制器輸出控制量Fig.6 The output of the controller
圖7 各傳感器測量值變化Fig.7 The sensors value during moving
圖8 各輸入變量的隸屬度函數(shù)曲線Fig.8 Member function of ench variable
在25次運行過程中,一旦控制器通過學(xué)習(xí)能控制機器人過90°拐角和270°拐角后,就可以直接過116.57°鈍角拐角,這說明該學(xué)習(xí)系統(tǒng)具有較強的泛化性能。對于63.43°銳角拐角有時還需要進(jìn)行學(xué)習(xí)。同時控制器在學(xué)習(xí)通過拐角的過程中,對沿直線墻行走控制一般沒有影響,這源于FRBF網(wǎng)絡(luò)具有局部逼近的特性。
從圖5的機器人方位角變化情況來看,機器人在直線段行走過程中,方向角總的來說是以墻的方向角為基準(zhǔn)波動,這種波動一是由于強化學(xué)習(xí)中已有知識的應(yīng)用和新知識的探索之間的平衡所致。為能搜索到更好的策略,學(xué)習(xí)主體每次執(zhí)行的動作并非是最優(yōu)動作(已有知識的利用),通過選擇貪婪動作之外的動作來發(fā)現(xiàn)更好的動作(搜索),但這將會導(dǎo)致系統(tǒng)性能下降。二是由于傳感器s0的測量值并非是機器人和墻之間的距離,傳感器的測量值對機器人的姿態(tài)非常敏感,姿態(tài)的細(xì)微變化會導(dǎo)致測量值的巨大波動,為克服這種測量波動,機器人基本上是以一種之字形的路線沿墻行走,以保持其不出“軌道”。這一點從圖6控制器輸出控制量變化情況也可以看出。盡管傳感器s0的測量值不是機器人與墻的真正距離,用本文所提的方法仍然能獲得一個可以控制該機器人實現(xiàn)沿墻行走的控制器。
圖7和圖8分別給出機器人在1 200步的運行過程中四個傳感器輸出的測量數(shù)值和狀態(tài)動作對的五個分量的八個語言變量的隸屬度函數(shù)。
在前面所述文獻(xiàn)中,如文獻(xiàn)[10],控制器的輸出動作總的來說是基于預(yù)先選定的若干個離散的加權(quán)構(gòu)成,假設(shè)離散種子動作集合B={a1,a2,…,am},規(guī)則數(shù)為n,則控制器輸出動作為
其中bi為第i條規(guī)則輸出動作,βi為第i條規(guī)則后件。將上式進(jìn)行如下處理并按ai進(jìn)行同類項合并,即有:
由上式可見,由離散種子動作加權(quán)獲得輸出動作本質(zhì)上是由種子動作構(gòu)成的向量和由規(guī)則后件構(gòu)成的向量的內(nèi)積,后者需要通過學(xué)習(xí)來確定,其參數(shù)空間的維數(shù)為m-1。為獲得連續(xù)的動作,離散動作數(shù)m一般都取得較大,如在文獻(xiàn)[10]中,m為13,這樣參數(shù)空間維數(shù)比原來動作空間維數(shù)要大,因此學(xué)習(xí)速度慢,且同一規(guī)則內(nèi)的離散動作之間沒有泛化能力。
本文提出了一種基于模糊Q-學(xué)習(xí)導(dǎo)航控制方法,與已有的連續(xù)空間中的Q學(xué)習(xí)方法相比,其特點之一是以模糊神經(jīng)網(wǎng)絡(luò)對Q值函數(shù)進(jìn)行直接逼近,通過函數(shù)優(yōu)化的方法獲得輸出動作,這就克服了相關(guān)文獻(xiàn)中種子動作的選擇問題,實現(xiàn)了強化學(xué)習(xí)和函數(shù)優(yōu)化技術(shù)的結(jié)合。特點之二是提出了一種新的模糊規(guī)則自適應(yīng)構(gòu)造方法,實現(xiàn)了在學(xué)習(xí)過程中模糊規(guī)則的自動構(gòu)建和相關(guān)參數(shù)的自適應(yīng)調(diào)整,避免了模糊規(guī)則手工建立的困難。此外學(xué)習(xí)經(jīng)驗不但能在鄰近的狀態(tài)中可以進(jìn)行泛化,還可以在相鄰的動作之間進(jìn)行泛化,因此學(xué)習(xí)速度也得到提高。實驗結(jié)果表明該方法可以成功實現(xiàn)機器人沿墻行走的導(dǎo)航控制。
今后還將該方法應(yīng)用到其他控制問題,此外本文所提的模糊規(guī)則自適應(yīng)方法還可以應(yīng)用到監(jiān)督學(xué)習(xí)等方面,這都是今后的研究內(nèi)容。
[1] TURENNOUT P,HONDERD G,SCHELVEN L J.Wall-following control of a mobile robot[C]//Proceedings of the1992IEEE International Conference on Robotics and Automation,May 12 - 14,1992,Nice,F(xiàn)rance.1992:280-285.
[2] BORENSTEIN J,KERON Y.The vector filed histogram fast obstacle avoidance for mobile robots[J].IEEE Transactions on Robotics and Automation,1991,7(3):278-288.
[3] 彭一準(zhǔn),原魁,劉俊承,等.室內(nèi)移動機器人的三層規(guī)劃導(dǎo)航策略[J].電機與控制學(xué)報,2006,10(4):380-384.
PENT Yizhun,YUAN Kui,LIU Juncheng,et al.A three-layer planning navigation method for indoor mobile robot[J].Electric Machines and Control,2006,10(4):380 -384.
[4] KHATIB O.Real-time obstacle avoidance for manipulator and mobile robots[J].International Journal of Robotic Research,1986,5(1):90-98.
[5] Lee P S,Wang L L.Collision avoidance by fuzzy logic control for automated guided vehicle navigation[J].Journal of Robotic Systems,1994,11(8):743 -760.
[6] ZHANG Wenzhi,LU Tiansheng.Reactive fuzzy controller design byQ-learning for mobile robot navigation[J].Journal of Harbin Institute of Technology,2005,12(3):319 -324.
[7] 吳洪巖,劉淑華,張崳.基于RBFNN的強化學(xué)習(xí)在機器人導(dǎo)航中的應(yīng)用[J].吉林大學(xué)學(xué)報:信息科學(xué)版,2009,27(2):185-190.
WU Hongyan,LIU Shuhua,ZHANGYu.Application of reinforcement learning based on radial basis function neural networks in robot navigation[J].Journal of Jilin University:Information Science Edition,2009,7(2):185-190.
[8] 陸軍,徐莉,周小平.強化學(xué)習(xí)方法在移動機器人導(dǎo)航中的應(yīng)用[J].哈爾濱工程大學(xué)學(xué)報,2004,25(2):176-179.
LU Jun,XU Li,ZHOU Xiaoping.Research on reinforcement learning and its application to mobile robot[J].Journal of Harbin Engineering University,2004,25(2):176-179.
[9] 段勇,徐心和.基于模糊神經(jīng)網(wǎng)絡(luò)的強化學(xué)習(xí)及其在機器人導(dǎo)航中的應(yīng)用[J].控制與決策,2007,22(5):525-534.
DUAN Yong,XU Xinhe.Reinforcement learning based on FNN and its application in robot navigation[J].Control and Decision,2007,22(5):525-534.
[10] ER M J,DENG C.Online tuning of fuzzy inference systems using dynamic fuzzyQ-learning[J].IEEE Transactions on Systems,Man and Cybernetics Part B:Cybernetics,2004,34(3):1478-1489.
[11] BARTO A G,SUTTON R S,ANDERSON C W.Neuron like adaptive elements that can solve difficult learning control problems[J].IEEE Transactions on Systems,Man,and Cybernetics,1983,13(5):834-846.
[12] LEE C C.Fuzzy logic in control systems:fuzzy logic controller-Part I and II[J].IEEE Transactions on Systems,Man and Cybernetics,1990,20(2):404 -435.
[13] PLATT J.A resource allocating network for function interpolation[J].Neural Computation,1991,3(2):213 -225.
[14] SINGHAL S,WU L.Training multilayer perceptrons with the extended Kalman algorithm[C]//Advances in Neural Processing Systems,December 12 -14,1988,San Mateo,CA.1988:133-140.
[15]KONDO T,ITO K.A reinforcement learning with evolutionary state recruitment strategy for autonomous mobile robots control[J].Robotics and Autonomous Systems,2004,46(2):111-124.
[16] KTEAM S A.Khepera 2 User Manual[R].Switzerland,2002.
[17] LIN L J.Self-improving reactive agents based on reinforcement learning,planning and teaching[J].Maching Learning,1992,8(3-4):293-321.
(編輯:劉素菊)