一種深度自動編碼器與q學習算法相結合的移動機器人路徑規(guī)劃方法
【技術領域】
[0001] 本發(fā)明涉及一種將深度自動編碼器與Q學習算法相結合的移動機器人路徑規(guī)劃 方法,屬于機器人路徑規(guī)劃領域。
【背景技術】
[0002] 路徑規(guī)劃是移動機器人領域的基礎問題。移動機器人路徑規(guī)劃是指在有障礙物的 工作環(huán)境中,如何尋找一條從給定起點到終點的適當?shù)倪\動路徑,使機器人在運動過程中 能安全、無碰地繞過所有障礙物。
[0003] 隨著機器人技術的發(fā)展,機器人己開始應用到未知環(huán)境,與已知環(huán)境下的移動機 器人路徑規(guī)劃研究相比,對于未知環(huán)境的探索帶來了新的挑戰(zhàn)。由于在未知環(huán)境下,機器人 不具有環(huán)境的先驗知識,移動機器人在路徑規(guī)劃過程中不可避免的會遇到各式各樣的障礙 物,因此,如何提高移動機器人對環(huán)境的自學習和自適應能力具有非常重要的實際意義。
[0004] 移動機器人路徑規(guī)劃方法可分為基于模版匹配的路徑規(guī)劃技術、基于人工勢場的 路徑規(guī)劃技術、基于地圖構建的路徑規(guī)劃技術和基于人工智能的路徑規(guī)劃技術?;谌斯?智能的路徑規(guī)劃技術是將現(xiàn)代人工智能技術應用到移動機器人的路徑規(guī)劃中,如強化學 習、人工神經(jīng)網(wǎng)絡、進化計算、模糊邏輯與信息融合等。其中強化學習又稱再勵學習、增強學 習,是一種實時、在線的學習方法,通過試錯的方法不斷獲得先驗知識,根據(jù)這些知識來改 變行動策略實現(xiàn)到達目標的目的。強化學習是一種賦予智能體學習自適應能力的方法。
[0005] 強化學習在機器人控制領域得到廣泛重視,一些現(xiàn)有方法將強化學習與其他機器 學習算法結合實現(xiàn)機器人的控制,如將模糊邏輯與強化學習算法結合實現(xiàn)移動機器人的導 航;將高斯過程與基于模型的策略搜索強化學習結合實現(xiàn)機器人的控制;或將人工神經(jīng)網(wǎng) 絡與強化學習結合實現(xiàn)移動機器人在特定任務中的路徑規(guī)劃。
[0006] 但要把基于強化學習的路徑規(guī)劃應用在真實環(huán)境中,系統(tǒng)必須能很好的處理圖像 數(shù)據(jù)。以上方法均需人工處理圖像。傳統(tǒng)地人工提取圖像特征是一件非常費力、啟發(fā)式(需 要專業(yè)知識)的方法,能不能選取好的特征很大程度上靠經(jīng)驗和運氣,而且它的調(diào)節(jié)需要 大量的時間。
【發(fā)明內(nèi)容】
[0007] 針對上述問題本發(fā)明將深度學習中的深度自動編碼器與強化學習中的Q學習算 法結合,本發(fā)明可通過深度自動編碼器自主提取環(huán)境圖像特征,完成對原始圖像的處理,實 現(xiàn)對環(huán)境的認知,具有很強的圖像處理能力,可應用于機器人的路徑規(guī)劃。
[0008] 本發(fā)明采用如下技術方案。它包括深度自動編碼器部分,BP神經(jīng)網(wǎng)絡部分,強化 學習部分。深度自動編碼器部分主要采用深度自動編碼器處理機器人所處環(huán)境的圖像,獲 得圖像數(shù)據(jù)的特征,為后續(xù)實現(xiàn)對環(huán)境的認知打下基礎。圖1是一個具有η層網(wǎng)絡的深度 自動編碼器。輸入圖像數(shù)據(jù),通過一層層網(wǎng)絡提取圖像特征,最終得到可以代表圖像的最主 要的特征。圖2是每層網(wǎng)絡提取圖像特征的過程,其思想是堆疊多個層(Sl,S2,…,s n),令每 一層的輸出等于輸入。輸入經(jīng)過編碼器產(chǎn)生一個輸出,這個輸出經(jīng)過解碼器解碼后是原輸 入信號的復現(xiàn)。以重建的輸入與原輸入的差最小為原則調(diào)節(jié)參數(shù),參數(shù)調(diào)節(jié)好后去掉解碼 器,即得到一個隱藏層,固定此層參數(shù),將此層的輸出作為下一層的輸入訓練下一層。
[0009] 本發(fā)明中在深度自動編碼器加入了稀疏限制
其中 &是隱層神經(jīng)元的數(shù)目;P是稀疏參數(shù),通常被設為一個很小的接近于〇的值;P ,表示某 一層網(wǎng)絡節(jié)點輸出值的平均值(j = l、2、3 . . . 81,81為某一層網(wǎng)絡的節(jié)點數(shù))。加入稀 疏限制可保證當隱含層神經(jīng)元的數(shù)量很大時,自動編碼器依然能發(fā)現(xiàn)輸入數(shù)據(jù)的結構性特 征。
[0010] BP神經(jīng)網(wǎng)絡部分主要實現(xiàn)獎勵值與圖像特征數(shù)據(jù)的擬合,實現(xiàn)深度自動編碼器與 強化學習的結合。BP神經(jīng)網(wǎng)絡主要包括三個部分:輸入部、訓練部、輸出部。輸入部接收外 來的輸入樣本X,由訓練部進行網(wǎng)絡的權系數(shù)W調(diào)整,然后由輸出部輸出結果。在這個過程 中,期望的輸出信號可以作為教師信號輸入,由該教師信號與實際輸出進行比較,產(chǎn)生的誤 差去控制修改權系數(shù)W。
[0011] 通過深度自動編碼器提取圖像特征,再將提取的特征經(jīng)BP神經(jīng)網(wǎng)絡擬合可實現(xiàn) 對環(huán)境的認知。
[0012] 強化學習部分基于以上網(wǎng)絡的輸出結果實現(xiàn)機器人的路徑規(guī)劃,本發(fā)明采用的是 強化學習中的Q學習算法。Q學習算法通過與環(huán)境交互學習,在行動-評價的環(huán)境中獲得知 識,改進行動方案以適應環(huán)境達到預想目的。強化學習框圖如圖3, agent感知周圍環(huán)境狀 態(tài),根據(jù)Q學習算法選擇相應的動作,agent執(zhí)行完動作后會作用于環(huán)境使環(huán)境發(fā)生改變, 同時返回一個獎賞信號給agent。機器人通過與環(huán)境的交互實現(xiàn)自主學習,最終找到從起始 點到達終點的可行路徑。
[0013] 本發(fā)明的有益效果在于提高了系統(tǒng)處理圖像的能力。傳統(tǒng)的提取圖像特征需經(jīng)過 圖像預處理、特征提取、特征選擇,耗時耗力,而本發(fā)明可直接處理原始圖像數(shù)據(jù),自主提取 良好的特征,無需經(jīng)過上述步驟。通過深度自動編碼器與BP神經(jīng)網(wǎng)絡結合可實現(xiàn)對環(huán)境的 認知。
【附圖說明】
[0014] 圖1為深度自動編碼器網(wǎng)絡結構。
[0015] 圖2為深度自動編碼器某一層訓練過程。
[0016] 圖3為Q學習框圖。
[0017] 圖4為整體系統(tǒng)框圖。
[0018] 圖5為收斂后機器人行走路徑。
[0019] 圖6為系統(tǒng)收斂前機器人行走過程(從左到右)。
[0020] 圖7為系統(tǒng)收斂后機器人行走過程。
[0021] 圖8為系統(tǒng)收斂前到收斂后行走步數(shù)。
【具體實施方式】
[0022] 下面結合圖4~7對本發(fā)明做進一步說明:
[0023] 整體系統(tǒng)框圖如圖4所示,深度自動編碼器處理機器人所處環(huán)境信息(即機器人 所處環(huán)境的圖像),獲取圖像特征數(shù)據(jù);所得環(huán)境特征數(shù)據(jù)通過BP神經(jīng)網(wǎng)絡的擬合得到機 器人所處位置,實現(xiàn)對周圍環(huán)境的認知,進而得到相應的獎勵值R ;Q學習算法通過獎勵值R 改變相應的Q值,Q學習算法再根據(jù)Q值選擇移動機器人要執(zhí)行的動作,使機器人所處的位 置發(fā)生變化,從而其周圍環(huán)境變化,實現(xiàn)與環(huán)境交互。
[0024] 其中深度自動編碼器每一層網(wǎng)絡的參數(shù)更新過程如圖2,其每層參數(shù)更新規(guī)則如 公式⑴到(7)所示:
[0025]
[0026]
[0027] (3)
[0028]
[0029]
[0030]
[0031]
[0032] 公式(1)、(2)中hw,b(x)是各網(wǎng)絡節(jié)點的輸出;f(z)是輸出函數(shù);%為1層的節(jié) 點j與1+1層的節(jié)點i之間的連接權重;Zf表示與1+1層與的節(jié)點i連接的偏置;x(1)是 輸入,我們輸入一幅圖像,先通過(1)、(2)式得到此圖像的特征值,即輸出f (z)。公式(3)、 (4)、(5)中J(W,b)是損失函數(shù),在J(W,b)中hw』(x)的輸入X是得到的原圖像的特征值,解 碼器解碼得到復現(xiàn)的原圖像,y (1)是期望的輸出,即原輸入圖像,我們的目標是最小化關于w 和b的函數(shù)J(W,b) ;KL(p I I P ,)是稀疏性限制,上文已介紹。公式(6)、(7)中分別為W,b 的更新公式,α是〇到1之間的參數(shù)。通過調(diào)節(jié)W,b的值,使深度編碼器的最終輸出經(jīng)過 反解碼后最能代表原圖像,得到最能代表原圖像的特征值。本發(fā)明采用梯度下降法與Rprop 方法更改各層參數(shù)值。
[0033] Q-Iearning算法常采用數(shù)值迭代來逼近最優(yōu)值,其更新規(guī)則如公式(8):
[0034] (Λν,,?/ ) = 0