□ 姜 勇 □ 姜 智 □ 郭 鑫 □ 李建國 □ 龍智卓
1.北京礦冶科技集團(tuán)有限公司 機(jī)械設(shè)計研究所 北京 100160
2.天津科技大學(xué) 機(jī)械工程學(xué)院 天津 300222
隨著地下礦開采深度的增大,采礦條件越來越惡劣,對人的安全威脅也越來越大,由此遙控采礦、自動化礦山開采技術(shù)應(yīng)運(yùn)而生[1-2]。目前,地下無人駕駛車輛自主導(dǎo)航技術(shù)是數(shù)字礦山研究的熱點(diǎn)和難點(diǎn)[3-4]。近年來,隨著科技的不斷創(chuàng)新和進(jìn)步,在處理未知、變化環(huán)境下移動機(jī)器人的局部路徑規(guī)劃方面,已經(jīng)取得了巨大突破,提出了多種方法,包括:① 基于模型的反應(yīng)式方法,如人工勢場法;②基于行為的反應(yīng)式方法,如模糊邏輯控制方法、遺傳算法 (GA)、人工神經(jīng)網(wǎng)絡(luò)(ANN)算法;③ 以上方法與其它算法的綜合運(yùn)用[5-7]。
筆者提出一種基于GA-反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)的地下無人駕駛車輛自主導(dǎo)航技術(shù),這一技術(shù)基于GA-BPNN導(dǎo)航模型,將兩種基于行為的反應(yīng)式方法結(jié)合應(yīng)用,重點(diǎn)放在ANN對傳感器輸入信息的融合和模擬人輸出行為控制方面,充分發(fā)揮ANN高度的非線性逼近能力和自適應(yīng)能力,利用GA的全局搜索能力來調(diào)整BPNN的初始化權(quán)值和閾值,從而改善局部極小值問題。
ANN是20世紀(jì)80年代之后迅速發(fā)展起來的一門新興學(xué)科,通過模擬生物神經(jīng)系統(tǒng),在計算機(jī)上實(shí)現(xiàn)一種復(fù)雜的網(wǎng)絡(luò),具有并行運(yùn)行、容錯、自適宜、自學(xué)習(xí)及集體運(yùn)算等特點(diǎn)[8-9]。
在實(shí)際應(yīng)用ANN時,絕大多數(shù)ANN模型采用BPNN和它的變化形式,其實(shí)質(zhì)是將一組樣本的輸入、輸出問題轉(zhuǎn)化為一個非線性優(yōu)化問題,通過梯度算法,利用迭代運(yùn)算求解權(quán)值問題。
最常見的BPNN由輸入層、隱含層、輸出層組成,同層神經(jīng)元之間沒有連接,只能是上層神經(jīng)元連接下層神經(jīng)元。如圖1所示,從左至右的神經(jīng)元層依次為輸入層、隱含層和輸出層。輸入層的神經(jīng)元個數(shù)對應(yīng)的是網(wǎng)絡(luò)中的輸入?yún)?shù)個數(shù),輸出層的神經(jīng)元個數(shù)對應(yīng)的是網(wǎng)絡(luò)中的輸出值個數(shù),隱含層神經(jīng)元可以是一層或多層,每層神經(jīng)元的個數(shù)可以是一個或多個。一般在使用BPNN時,只使用一層隱含層。
▲圖1 BPNN拓?fù)浣Y(jié)構(gòu)
在三層BPNN拓?fù)浣Y(jié)構(gòu)中,輸入層神經(jīng)元個數(shù)為d,隱含層神經(jīng)元個數(shù)為p,輸出層神經(jīng)元個數(shù)為m,Wij表示第i個輸入神經(jīng)元對第j個隱含層神經(jīng)元的權(quán)值,Vkj表示第k個隱含層神經(jīng)元對第j個輸出層神經(jīng)元的權(quán)值,Xi1、Xi2、…、Xid為第i組數(shù)據(jù)的 d個輸入值,yi1、yi2、…、yim為第i組數(shù)據(jù)的 m 個輸出值,Wj0表示第j個隱含層神經(jīng)元的閾值,Vk0表示第k個輸出神經(jīng)元的閾值。
在三層BPNN模型中,一般隱含層神經(jīng)元與輸出層神經(jīng)元使用Sigmoid函數(shù)作為激勵函數(shù)。Sigmoid函數(shù)包含兩種形式:Log-Sigmoid函數(shù)和Tan-Sigmoid函數(shù)。Log-Sigmoid函數(shù)的表達(dá)式為:
式中:x為上層神經(jīng)元的輸入。
Tan-Sigmoid函數(shù)的表達(dá)式為:
Log-Sigmoid函數(shù)能夠?qū)⑤斎胫涤成涞絽^(qū)間[0,1],而Tan-Sigmoid函數(shù)能夠?qū)⑤斎胫涤成涞絽^(qū)間[-1,1]。
ANN中使用最多的激勵函數(shù)是Sigmoid函數(shù),通過對上一層神經(jīng)元的輸入進(jìn)行擠壓,將輸出壓縮到期望的區(qū)間內(nèi)。
BPNN算法是一類有導(dǎo)師的學(xué)習(xí)算法,用于BPNN的權(quán)值和閾值學(xué)習(xí)[10]。BPNN是一個單向傳播的網(wǎng)絡(luò),每一層神經(jīng)元只接收來自前一層神經(jīng)元的信號。通過反向傳播,調(diào)整權(quán)值,使輸入和輸出之間具有較好的映射作用。BPNN算法的基本思想是,學(xué)習(xí)過程由信號的正向傳播與誤差的反向傳播兩個過程組成。正向傳播時,模式作用于輸入層,經(jīng)隱含層處理后,傳向輸出層。如輸出層未能滿足預(yù)期的輸出要求,則轉(zhuǎn)入誤差的反向傳播階段,將輸出誤差按某種形式通過隱含層向輸入層逐層返回,并分?jǐn)偨o各層的所有單元,從而獲得各層單元的參考誤差或誤差信號,以此作為修改各單元權(quán)值的依據(jù)。這種信號正向傳播與誤差反向傳播的各層權(quán)值矩陣的修改過程,是周而復(fù)始進(jìn)行的。權(quán)值不斷修改的過程,也就是網(wǎng)絡(luò)不斷學(xué)習(xí)的過程,這一過程一直進(jìn)行到網(wǎng)絡(luò)輸出的誤差逐漸減小到可接受的程度或達(dá)到設(shè)定的學(xué)習(xí)次數(shù)為止。
BPNN算法流程如下。
(1)確定輸入層、隱含層、輸出層神經(jīng)元個數(shù)。輸入層和輸出層神經(jīng)元個數(shù)是確定的,而隱含層神經(jīng)元個數(shù)不確定,但卻至關(guān)重要。隱含層神經(jīng)元過少,會使神經(jīng)網(wǎng)絡(luò)模型學(xué)習(xí)能力有限,無法完整表達(dá)某些非線性關(guān)系的映射。隱含層神經(jīng)元過多,則會導(dǎo)致BPNN模型計算難度加大,訓(xùn)練起來更費(fèi)時間。如今,確定隱含層神經(jīng)元個數(shù)最常用的方法是利用經(jīng)驗(yàn)公式來估計參數(shù)的大概值,然后采用試探法最終確定個數(shù)。常用的經(jīng)驗(yàn)公式有兩種:
式中:ε為常數(shù)。
(2)數(shù)據(jù)預(yù)處理。數(shù)據(jù)預(yù)處理包括輸入向量、輸出向量的確定,以及數(shù)據(jù)歸一化處理,一般利用式(1)或式(2)將數(shù)據(jù)歸一化到[0,1]或[-1,1]。
(3)神經(jīng)網(wǎng)絡(luò)模型初始化。神經(jīng)網(wǎng)絡(luò)模型初始化過程需要初始化輸入層到隱含層之間的權(quán)值Wij、隱含層到輸出層之間的權(quán)值Vkj、學(xué)習(xí)效率、各個神經(jīng)元的閾值,以及選取激勵函數(shù)、最大迭代次數(shù)、目標(biāo)誤差E等。
(4)計算隱含層神經(jīng)元的輸出值。先計算輸入層神經(jīng)元輸入?yún)?shù)的加權(quán)和,然后使用激勵函數(shù)對這個值進(jìn)行擠壓,形成隱含層輸出值。計算公式如下:
式中:Ki為第i個隱含層神經(jīng)元的輸出值;函數(shù)f(x)為激勵函數(shù);Wki為第k個輸入神經(jīng)元對第i個隱含層神經(jīng)元的權(quán)值;xk為輸入層第k個神經(jīng)元的輸入;wi0為第i個神經(jīng)元的閾值。
(5)計算輸出層神經(jīng)元的輸出值。方法與第(4)步相同。
(6)計算誤差。根據(jù)BPNN模型的輸出和實(shí)際輸出,計算輸出誤差。
(7)判斷訓(xùn)練是否結(jié)束??筛鶕?jù)以下幾個條件判斷BPNN模型訓(xùn)練是否結(jié)束:①誤差E小于給定的誤差最大值;②迭代次數(shù)大于設(shè)定的某個參數(shù)值;③ 訓(xùn)練誤差已經(jīng)收斂至最小值,即連續(xù)多次誤差E基本不變。若達(dá)到以上條件之一,則進(jìn)入第(9)步,否則進(jìn)入第(8)步。
(8)反向調(diào)整神經(jīng)元之間的權(quán)值及神經(jīng)元閾值,然后返回到第(4)步。
(9)利用測試集驗(yàn)證算法的可行性。首先將訓(xùn)練好的BPNN根據(jù)測試集的輸入計算出模型輸出,然后對比模型輸出和實(shí)際輸出,最后計算預(yù)測誤差并分析模型構(gòu)建是否合理。
(10)算法訓(xùn)練結(jié)束,使用該BPNN模型解決實(shí)際問題。
GA是在20世紀(jì)70年代初期由美國密歇根大學(xué)Holland教授發(fā)展起來的,根據(jù)生物進(jìn)化模型,即遺傳、變異、選擇提出的一種優(yōu)化算法[11-12]。GA將優(yōu)勝劣汰、適者生存的生物進(jìn)化原理引入待優(yōu)化參數(shù)形成的編碼串群體中,按照一定的適配值函數(shù)及一系列遺傳操作對各個體進(jìn)行篩選,從而保留適配值高的個體,組成新的群體。此時,群體中適配值最高的個體即為待優(yōu)化參數(shù)的最優(yōu)解。GA在計算機(jī)上模擬生物進(jìn)化過程和基因操作,并不需要對象的特定知識,也不需要對象的搜索空間是連續(xù)可微的,它具有全局尋優(yōu)的能力。人們常把GA應(yīng)用于許多領(lǐng)域的實(shí)際問題,如函數(shù)優(yōu)化、自動控制、圖像識別、機(jī)器學(xué)習(xí)等。目前,GA正在向其它領(lǐng)域滲透,形成GA和ANN或模糊控制相結(jié)合的新算法,從而構(gòu)成一種新型的智能控制系統(tǒng)整體優(yōu)化結(jié)構(gòu)形式。
GA是一種通過模擬自然進(jìn)化過程搜索全局最優(yōu)解的算法,該算法同時考慮搜索空間上的多點(diǎn),并使用概率法則來引導(dǎo)搜索。將GA應(yīng)用于ANN中,以前述GA和BPNN理論為基礎(chǔ),首先建立地下車輛工作環(huán)境的BPNN模型;然后應(yīng)用GA調(diào)整網(wǎng)絡(luò)的權(quán)值,執(zhí)行選擇、交叉、變異遺傳操作;最后將二進(jìn)制碼譯為十進(jìn)制碼,輸出結(jié)果來解決實(shí)際問題。這種特定的遺傳神經(jīng)控制器,既繼承了GA較好的全局搜索性,又突出了BPNN具有較強(qiáng)非線性逼近能力的特點(diǎn),可以應(yīng)用于復(fù)雜非線性多變量系統(tǒng)的控制。
地下車輛在復(fù)雜的地下環(huán)境中無人行駛,對于前方障礙物的檢測通常采用激光傳感器來完成。對于地下車輛而言,只需要判斷車體正前方、左前方、右前方、左方和右方有無障礙物即可,因此,分別在車體的以上五個方向安裝傳感器,以檢測地下行駛環(huán)境,將傳感器和障礙物的相交情況作為神經(jīng)網(wǎng)絡(luò)的輸入。地下無人駕駛車輛傳感器布置如圖2所示。
▲圖2 地下無人駕駛車輛傳感器布置
圖2中,一個扇形區(qū)域代表一個激光傳感器可檢測的最大區(qū)域,L為傳感器可測最遠(yuǎn)距離,陰影區(qū)域代表障礙物,扇形區(qū)域與陰影區(qū)域重疊則表示傳感器檢測到障礙物。圖2中全部障礙物區(qū)域即為地下車輛在行駛過程中,經(jīng)傳感器檢測后需要轉(zhuǎn)向時的所有可能情況。設(shè)定傳感器檢測到5 m以內(nèi)障礙物時,返回“1”信號,反之,返回“0”信號,那么,五個傳感器將分別產(chǎn)生五個返回信號,這五個信號即可作為模型的輸入。然后利用BPNN進(jìn)行信息融合。在試驗(yàn)中,采取了人為設(shè)置的方法,對于采集到的信息,去掉了一些相同的環(huán)境信息,對剩下的一些信息逐個人為設(shè)置導(dǎo)師信號,最終所設(shè)計的BPNN含有32種輸入模式。
將BPNN的輸出設(shè)置為三個,用于更新地下車輛的注視向量、轉(zhuǎn)向角和轉(zhuǎn)向速度。除轉(zhuǎn)向速度由地下車輛本身性能決定外,注視向量和轉(zhuǎn)向角的大小都需要根據(jù)實(shí)際環(huán)境中障礙物的分布情況來確定。針對不同的障礙物分布,對應(yīng)采取不同的判斷與決策,即BPNN的具體轉(zhuǎn)向角和注視向量輸出。以圖2為原型,在逐一分析不同障礙物的分布情況下,得到車體應(yīng)該采取的最大轉(zhuǎn)向角,將32種輸入模式進(jìn)行分類劃分。如當(dāng)1號、2號和3號傳感器全部返回“0”信號時,表明車體的正方向沒有檢測到障礙物,則車輛直行。
所設(shè)計的BPNN有三層,分別是輸入層、隱含層和輸出層,經(jīng)前述討論,輸入層的神經(jīng)元個數(shù)d為5,隱含層的神經(jīng)元個數(shù)p為10,輸出層的神經(jīng)元個數(shù)m為3,網(wǎng)絡(luò)中所有的權(quán)值都在[-1,1]區(qū)間上,由GA進(jìn)行學(xué)習(xí)更新。
BPNN訓(xùn)練參數(shù)包括訓(xùn)練樣本、訓(xùn)練次數(shù)、訓(xùn)練期望誤差和學(xué)習(xí)速率。將已劃分的32種輸入模式訓(xùn)練樣本確定為神經(jīng)網(wǎng)絡(luò)訓(xùn)練樣本,訓(xùn)練次數(shù)設(shè)定為最大200次,期望誤差值選取0.001,學(xué)習(xí)速率選取0.4,利用GA的宏觀搜索和全局優(yōu)化能力來確定BPNN網(wǎng)絡(luò)的初始權(quán)值和閾值。GA-BPNN學(xué)習(xí)方法流程如圖3所示。
▲圖3 GA-BPNN學(xué)習(xí)方法流程
為了更清楚地說明GA在BPNN中應(yīng)用的優(yōu)勢,分別對引入GA前后的BPNN進(jìn)行仿真對比分析。初始權(quán)值和閾值選取[-1,1]的隨機(jī)數(shù),經(jīng)過多次訓(xùn)練,仿真對比曲線如圖4所示。
▲圖4 BPNN仿真曲線對比
仿真結(jié)果表明,BPNN誤差訓(xùn)練仿真曲線在誤差達(dá)到0.1之后,訓(xùn)練進(jìn)入死區(qū),誤差呈近似水平線,根本無法滿足所設(shè)定誤差0.001的要求。由此可見,在還沒有達(dá)到所要求精度之前,誤差就停留在某一固定值,不再減小,陷入局部極小值問題,這就是BPNN經(jīng)常出現(xiàn)的問題,也是BPNN的致命弱點(diǎn)。若出現(xiàn)這種情況,即代表網(wǎng)絡(luò)訓(xùn)練失敗,此時的BPNN雖已訓(xùn)練完畢,但無法根據(jù)輸入向量給出正確的輸出結(jié)果,即不具備正確的模式識別能力,如應(yīng)用在地下車輛的導(dǎo)航控制中,就會出現(xiàn)控制系統(tǒng)無法根據(jù)傳感器返回的信號給出正確操作指令的情況,使地下車輛在行進(jìn)過程中失控。
GA-BPNN誤差訓(xùn)練仿真曲線在較短的訓(xùn)練代數(shù)內(nèi)達(dá)到所要求的誤差0.001,在很大程度上改善了BPNN的局部極小值問題。由此可見,通過引入GA對BPNN的權(quán)值和閾值進(jìn)行修正是十分必要的。
建立某地下采礦巷道電子地圖,地下無人駕駛試驗(yàn)車輛如圖5所示。
▲圖5 地下無人駕駛試驗(yàn)車輛
地下無人駕駛車輛系統(tǒng)布置如圖6所示。將GABPNN算法應(yīng)用到地下無人駕駛車輛的自主導(dǎo)航控制技術(shù)中,自主行駛路徑跟蹤曲線如圖7所示。試驗(yàn)結(jié)果表明,基于GA-BPNN的地下無人駕駛車輛自主導(dǎo)航技術(shù)可以保證地下車輛在地下復(fù)雜多變的地形環(huán)境中,根據(jù)預(yù)定路徑實(shí)時調(diào)整自身的運(yùn)行軌跡,完成避障與路徑規(guī)劃,實(shí)現(xiàn)地下車輛的自主行駛。
▲圖6 地下無人駕駛車輛系統(tǒng)布置
▲圖7 地下車輛自主行駛路徑跟蹤曲線
基于GA和BPNN算法,將兩種基于行為的反應(yīng)式方法結(jié)合應(yīng)用,提出了一種基于GA-BPNN的地下無人駕駛車輛自主導(dǎo)航技術(shù)。
通過引入GA對BPNN的權(quán)值和閾值進(jìn)行修正,充分發(fā)揮BPNN高度的非線性逼近能力和自適應(yīng)能力,并利用GA的全局搜索能力調(diào)整BPNN的初始化權(quán)值和閾值,很好地解決了BPNN算法經(jīng)常陷入局部極小值的致命弱點(diǎn)。
將GA-BPNN應(yīng)用于地下無人駕駛車輛的自主導(dǎo)航控制,對車輛的路徑軌跡進(jìn)行跟蹤試驗(yàn),驗(yàn)證了算法的有效性和可靠性,具有重要的工程應(yīng)用價值。