本發(fā)明涉及水下機(jī)器人控制技術(shù),特別涉及一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法及控制系統(tǒng)。
背景技術(shù):
近年來,水下機(jī)器人在海洋探索和海洋環(huán)境保護(hù)等多個(gè)海洋科學(xué)領(lǐng)域得到了廣泛的應(yīng)用,其地位日益重要.通過對水下機(jī)器人運(yùn)動(dòng)軌跡的精準(zhǔn)控制,人們可以安全地完成一些危險(xiǎn)系數(shù)較高的任務(wù),例如勘探海底石油和修理海底管道等.目前水下機(jī)器人在指定軌跡上完成任務(wù)仍普遍存在著手動(dòng)操作的方式,手動(dòng)操作對需要人投入大量的精力,勞動(dòng)強(qiáng)度大,尤其當(dāng)水流變化或者是外界干擾時(shí),僅靠人工操作不僅操作復(fù)雜并且難以保證水下機(jī)器人的軌跡精度。實(shí)現(xiàn)水下機(jī)器人運(yùn)動(dòng)軌跡精準(zhǔn)的自主控制將大大節(jié)省人力物力,然而,由于水下環(huán)境極其復(fù)雜,水下機(jī)器人的運(yùn)動(dòng)極易受到水流、流體阻力的影響,同時(shí)水下機(jī)器人的自動(dòng)控制問題具有極強(qiáng)的非線性性質(zhì),導(dǎo)致水下機(jī)器人動(dòng)力學(xué)模型構(gòu)建難度較大,在各種水域中缺乏普適性.許多傳統(tǒng)的控制方式諸如pid,模糊算法,滑模算法都曾被應(yīng)用于水下機(jī)器人控制領(lǐng)域.雖然傳統(tǒng)的控制方法可以使得水下機(jī)器人在執(zhí)行軌跡跟蹤任務(wù)時(shí)達(dá)到一定的精度,但仍不能滿足水下作業(yè)對高精確性的要求,而且參數(shù)的整定較為繁瑣。因此,本發(fā)明的目的在于提供一種通過仿真模型數(shù)據(jù)或者是根據(jù)人工操作數(shù)據(jù)進(jìn)行學(xué)習(xí),從而能夠?qū)崿F(xiàn)減少參數(shù)整定且能實(shí)現(xiàn)高精度軌跡控制的方法,提高水下機(jī)器人控制性能和作業(yè)效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,通過該控制方法可以實(shí)現(xiàn)水下機(jī)器人運(yùn)動(dòng)軌跡的精確控制,避免由于水下機(jī)器人高維連續(xù)的行為空間和非線性性質(zhì)導(dǎo)致的軌跡跟蹤精度低的控制問題。
本發(fā)明的第二目的在于提供一種用于實(shí)現(xiàn)上述方法的基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制器系統(tǒng)。
本發(fā)明的第三目的在于提供一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,通過該控制方法可以實(shí)現(xiàn)水下機(jī)器人運(yùn)動(dòng)軌跡的更加精確控制,避免由于水下機(jī)器人高維連續(xù)的行為空間和非線性性質(zhì)導(dǎo)致的軌跡跟蹤精度低的控制問題。
本發(fā)明的第四目的在于提供一種用于實(shí)現(xiàn)第三目方法的基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制系統(tǒng)。
本發(fā)明的第一目的通過下述技術(shù)方案實(shí)現(xiàn):一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,包括學(xué)習(xí)階段和應(yīng)用階段;在所述學(xué)習(xí)階段,通過仿真器模擬水下機(jī)器人的運(yùn)作過程,并且采集仿真器所模擬的正在運(yùn)作的水下機(jī)器人的數(shù)據(jù),根據(jù)這些數(shù)據(jù)針對決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí);具體步驟如下:
s1、首先建立四個(gè)神經(jīng)網(wǎng)絡(luò),分別作為決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò),并且針對四個(gè)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行初始化;其中神經(jīng)網(wǎng)絡(luò)的參數(shù)指的是神經(jīng)網(wǎng)絡(luò)中各層神經(jīng)元的連接權(quán)重;同時(shí)建立一個(gè)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),并進(jìn)行初始化;然后針對上述初始化后的四個(gè)神經(jīng)網(wǎng)絡(luò),從初始時(shí)刻開始,進(jìn)入步驟s2開始學(xué)習(xí);
s2、實(shí)時(shí)采集仿真器所模擬的正在運(yùn)作的水下機(jī)器人在當(dāng)前時(shí)刻的狀態(tài);然后根據(jù)當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài),利用當(dāng)前決策神經(jīng)網(wǎng)絡(luò)計(jì)算當(dāng)前時(shí)刻需要的推進(jìn)力;在獲取到當(dāng)前時(shí)刻需要的推進(jìn)力后,將當(dāng)前時(shí)刻需要的推進(jìn)力實(shí)施至仿真器所模擬的正在運(yùn)作的水下機(jī)器人上;然后采用水下機(jī)器人的動(dòng)力學(xué)模型計(jì)算出水下機(jī)器人下一時(shí)刻的狀態(tài);并且根據(jù)當(dāng)前時(shí)刻需要的推進(jìn)力、下一時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài)計(jì)算出的當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;
s3、將步驟s2中獲取到的當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及下一時(shí)刻的目標(biāo)狀態(tài)組成一個(gè)經(jīng)驗(yàn)存入經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū);
s4、判斷經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),然后執(zhí)行步驟s5,否則執(zhí)行步驟s6;
s5、更新當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),具體為:
s51、針對于步驟s4中選取出的n個(gè)經(jīng)驗(yàn)中的每個(gè)經(jīng)驗(yàn)進(jìn)行以下處理:將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;然后將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻的狀態(tài)和上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)獲取輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)輸出的評價(jià)值,利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度;然后根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的評價(jià)神經(jīng)網(wǎng)絡(luò),再根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò);
s52、根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度,然后根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的決策神經(jīng)網(wǎng)絡(luò),同時(shí)根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助決策神經(jīng)網(wǎng)絡(luò),然后進(jìn)入步驟s6;所述更新后的決策神經(jīng)網(wǎng)絡(luò)和更新后的輔助決策神經(jīng)網(wǎng)絡(luò)供下一時(shí)刻使用;
s6、當(dāng)下一時(shí)刻到來時(shí),即下一時(shí)刻為當(dāng)前時(shí)刻時(shí),判定該時(shí)刻是否到達(dá)時(shí)刻t;若否,則返回步驟s2;若是,則表示決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)均完成一次訓(xùn)練,進(jìn)入步驟s7;
s7、判斷決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前的訓(xùn)練次數(shù)定值m是否超過定值m;
若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s2,開始決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的下一次訓(xùn)練;
若是,則計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的m次訓(xùn)練時(shí)通過步驟s2所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,并且判斷其是否小于第一閾值,若是,則決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)結(jié)束;若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s2;
在所述應(yīng)用階段:首先獲取水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后由上述學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)根據(jù)水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài)計(jì)算出當(dāng)前時(shí)刻需要輸出至水下機(jī)器人的推進(jìn)力。
優(yōu)選的,所述學(xué)習(xí)階段還包括如下步驟:s8、在水下機(jī)器人的運(yùn)行過程中實(shí)時(shí)采集各個(gè)時(shí)刻的數(shù)據(jù),針對于步驟s7中學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò),進(jìn)行以下再學(xué)習(xí),具體為:
s81、首先初始化經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū);將步驟s7中學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)分別作為初始神經(jīng)網(wǎng)絡(luò);然后針對上述初始神經(jīng)網(wǎng)絡(luò),從初始時(shí)刻開始,進(jìn)入步驟s82開始學(xué)習(xí);
s82、判斷當(dāng)前時(shí)刻是否為初始時(shí)刻;
若是,則采集水下機(jī)器人在當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài),然后進(jìn)入步驟s84;
若否,則進(jìn)入步驟s83;
s83、采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài);并且獲取水下機(jī)器人上一時(shí)刻的推進(jìn)力;根據(jù)水下機(jī)器人上一時(shí)刻的推進(jìn)力、當(dāng)前時(shí)刻的狀態(tài)以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)計(jì)算上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;然后將上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)組成一個(gè)經(jīng)驗(yàn)后存儲(chǔ)進(jìn)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū);
s84、判斷經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),然后執(zhí)行步驟s85,否則執(zhí)行步驟s86;
s85、更新當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),具體為:
s851、針對于步驟s84中選取出的n個(gè)經(jīng)驗(yàn)中的每個(gè)經(jīng)驗(yàn)進(jìn)行以下處理:將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;然后將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻的狀態(tài)和上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)獲取輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)輸出的評價(jià)值,利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度;然后根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的評價(jià)神經(jīng)網(wǎng)絡(luò),再根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò);
s852、根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度,然后根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的決策神經(jīng)網(wǎng)絡(luò),同時(shí)根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助決策神經(jīng)網(wǎng)絡(luò),然后進(jìn)入步驟s86;所述更新后的決策神經(jīng)網(wǎng)絡(luò)和更新后的輔助決策神經(jīng)網(wǎng)絡(luò)供下一時(shí)刻使用;
s86、當(dāng)下一時(shí)刻到來時(shí),即下一時(shí)刻作為當(dāng)前時(shí)刻時(shí),判定該時(shí)刻是否到達(dá)時(shí)刻t;若否,則返回步驟s82;若是,則表示決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)均完成一次訓(xùn)練,進(jìn)入步驟s87;
s87、判斷決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)從步驟s82所述的初始神經(jīng)網(wǎng)絡(luò)開始進(jìn)行再學(xué)習(xí)時(shí)至當(dāng)前的訓(xùn)練次數(shù)x是否超過定值x;
若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s82,開始決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的下一次訓(xùn)練;
若是,則計(jì)算出決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的x次訓(xùn)練時(shí)通過步驟s83所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,并且判斷其是否小于第一閾值,若是,則決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)結(jié)束;若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s82。
更進(jìn)一步的,所述步驟s51和步驟s851中,利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度
yi=ri+γq'(si,μ'(si,θt')|ωt');
其中l(wèi)oss為評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù),loss為:
其中μ(si,θt)是指選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si和某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò)時(shí)通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力;q(si,μ(si,θt)|ωt)是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si以及上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力μ(si,θt)作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸入時(shí)得到的當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出;θt為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),ωt為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);
其中μ'(si,θt')是指選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si和某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)時(shí)通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力;q'(si,μ'(si,θt')|ωt')是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si以及上述當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力μ'(si,θt')作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸入時(shí)得到的當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出;θt'為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),ωt'為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);
ri是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)中某時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值,γ是折扣系數(shù),取值范圍在0和1之間;
所述步驟s51和步驟s851中根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
其中ωt為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ωt+1為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);α為評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率,取值范圍在0和1之間;
所述步驟s51和步驟s851中根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't;
其中ωt'為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ω't+1為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ρ是輔助決策神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)參數(shù)的學(xué)習(xí)率,取值范圍在0和1之間;
所述步驟s52和步驟s852中根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度
其中j為決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù),j為:
j=q(si,μ(si,θt)|ωt);
所述步驟s52和步驟s852中根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
其中θt為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);θt+1為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);β為決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率,取值范圍在0和1之間;
所述步驟s52和步驟s852根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't;
其中θ't為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);θ't+1為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)。
更進(jìn)一步的,所述步驟s7中計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的m次訓(xùn)練時(shí)計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差為:
其中:
其中
所述步驟s87中計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的x次訓(xùn)練時(shí)計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差為:
其中:
其中
本發(fā)明的第二目的通過下述技術(shù)方案實(shí)現(xiàn):一種用于實(shí)現(xiàn)上述基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法的基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制系統(tǒng),其特征在于,包括仿真器、第一數(shù)據(jù)采集模塊、第一獎(jiǎng)勵(lì)計(jì)算模塊、第一經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)、第一決策模塊和通訊模塊;
所述仿真器,用于模擬水下機(jī)器人的運(yùn)作過程,用于接收決策模塊發(fā)送的水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力,并且將該推進(jìn)力實(shí)施至所模擬的正在運(yùn)行的水下機(jī)器人上,然后采用水下機(jī)器人的動(dòng)力學(xué)模型計(jì)算出水下機(jī)器人下一時(shí)刻的狀態(tài);
所述第一數(shù)據(jù)采集模塊,用于學(xué)習(xí)階段的各時(shí)刻,通過通訊模塊實(shí)時(shí)采集仿真器所模擬的正在運(yùn)作的水下機(jī)器人在當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài),并且傳送至決策模塊,同時(shí)采集仿真器采用水下機(jī)器人的動(dòng)力學(xué)模型計(jì)算出的水下機(jī)器人下一時(shí)刻的狀態(tài);用于在應(yīng)用階段的各時(shí)刻,通過通訊模塊實(shí)時(shí)采集水下機(jī)器人在當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài);
所述第一獎(jiǎng)勵(lì)計(jì)算模塊,用于根據(jù)仿真器所模擬的正在運(yùn)行的水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力、下一時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài)計(jì)算出的當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;
所述第一經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),用于在各時(shí)刻接收仿真器所模擬的正在運(yùn)行的水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及下一時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn),并進(jìn)行存儲(chǔ);
所述第一決策模塊:用于在學(xué)習(xí)階段建立決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò);用于在學(xué)習(xí)階段獲取到仿真器所模擬的正在運(yùn)行的水下機(jī)器人在當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的狀態(tài)后,通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)計(jì)算出水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力,然后發(fā)送至仿真器;用于在學(xué)習(xí)階段的各時(shí)刻,當(dāng)?shù)谝唤?jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)存儲(chǔ)進(jìn)仿真器所模擬的正在運(yùn)行的水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及下一時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn)后,判斷第一經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從第一經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),通過這n個(gè)經(jīng)驗(yàn)實(shí)現(xiàn)對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新;用于在決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前訓(xùn)練次數(shù)超過定值m時(shí),計(jì)算出決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的m次訓(xùn)練時(shí)所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,當(dāng)該標(biāo)準(zhǔn)差小于第一閾值時(shí),結(jié)束決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí);
用于在應(yīng)用階段獲取第一數(shù)據(jù)采集模塊所采集的水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后將其輸入至學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò),通過學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)計(jì)算出水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力;
所述通訊模塊,用于實(shí)現(xiàn)第一數(shù)據(jù)采集模塊、第一決策模塊與水下機(jī)器人控制系統(tǒng)之間的通訊;用于將第一決策模塊在應(yīng)用階段得到的水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力發(fā)送至水下機(jī)器人控制系統(tǒng);用于在應(yīng)用階段的各時(shí)刻,將水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài)發(fā)送至第一數(shù)據(jù)采集模塊。
優(yōu)選的,還包括第二數(shù)據(jù)采集模塊、第二獎(jiǎng)勵(lì)計(jì)算模塊、第二經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)、第二決策模塊;
所述第二數(shù)據(jù)采集模塊,用于在學(xué)習(xí)階段的各時(shí)刻,通過通訊模塊采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài);
所述第二獎(jiǎng)勵(lì)計(jì)算模塊,用于根據(jù)第二數(shù)據(jù)采集模塊獲取的水下機(jī)器人上一時(shí)刻的推進(jìn)力、當(dāng)前時(shí)刻的狀態(tài)以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)計(jì)算上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;
所述第二經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),用于在各時(shí)刻接收水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn),并進(jìn)行存儲(chǔ);
所述第二決策模塊:
用于在第一決策模塊結(jié)束對決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)之后,將第一決策模塊最終學(xué)習(xí)得到的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)作為初始神經(jīng)網(wǎng)絡(luò),然后進(jìn)行再次學(xué)習(xí);
用于在學(xué)習(xí)階段的各時(shí)刻,當(dāng)?shù)诙?jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)存儲(chǔ)進(jìn)水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn)后,判斷第而經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從第二經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),通過這n個(gè)經(jīng)驗(yàn)實(shí)現(xiàn)對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新;用于在決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前訓(xùn)練次數(shù)超過x時(shí),計(jì)算出決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的x次訓(xùn)練時(shí)所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,當(dāng)該標(biāo)準(zhǔn)差小于第一閾值時(shí),結(jié)束決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),將得到的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)作為學(xué)習(xí)階段學(xué)習(xí)完成的神經(jīng)網(wǎng)絡(luò),輸入至第一決策模塊,供第一決策模塊在應(yīng)用階段時(shí)使用。
本發(fā)明的第三目的通過下述技術(shù)方案實(shí)現(xiàn):一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,包括學(xué)習(xí)階段和應(yīng)用階段;在所述學(xué)習(xí)階段,具體步驟如下:
s1、首先建立四個(gè)神經(jīng)網(wǎng)絡(luò),分別作為決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò),并且針對四個(gè)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行初始化;其中神經(jīng)網(wǎng)絡(luò)的參數(shù)指的是神經(jīng)網(wǎng)絡(luò)中各層神經(jīng)元的連接權(quán)重;同時(shí)建立一個(gè)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),并進(jìn)行初始化;然后針對上述初始化后的四個(gè)神經(jīng)網(wǎng)絡(luò),從初始時(shí)刻開始,進(jìn)入步驟s2開始學(xué)習(xí);
s2、判斷當(dāng)前時(shí)刻是否為初始時(shí)刻;
若是,則采集水下機(jī)器人在當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài),然后進(jìn)入步驟s4;
若否,則進(jìn)入步驟s3;
s3、采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài);并且獲取水下機(jī)器人上一時(shí)刻的推進(jìn)力;根據(jù)水下機(jī)器人上一時(shí)刻的推進(jìn)力、當(dāng)前時(shí)刻的狀態(tài)以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)計(jì)算上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;然后將水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)組成一個(gè)經(jīng)驗(yàn)后存儲(chǔ)進(jìn)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū);
s4、判斷經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),然后執(zhí)行步驟s5,否則執(zhí)行步驟s6;
s5、更新當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),具體為:
s51、針對于步驟s4中選取出的n個(gè)經(jīng)驗(yàn)中的每個(gè)經(jīng)驗(yàn)進(jìn)行以下處理:將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;然后將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻的狀態(tài)和上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)獲取輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)輸出的評價(jià)值,利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度;然后根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的評價(jià)神經(jīng)網(wǎng)絡(luò),再根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò);
s52、根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度,然后根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的決策神經(jīng)網(wǎng)絡(luò),同時(shí)根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助決策神經(jīng)網(wǎng)絡(luò),然后進(jìn)入步驟s6;所述更新后的決策神經(jīng)網(wǎng)絡(luò)和更新后的輔助決策神經(jīng)網(wǎng)絡(luò)供下一時(shí)刻使用;
s6、當(dāng)下一時(shí)刻到來時(shí),即下一時(shí)刻作為當(dāng)前時(shí)刻時(shí),判定該時(shí)刻是否到達(dá)時(shí)刻t;若否,則返回步驟s2;若是,則表示決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)均完成一次訓(xùn)練,進(jìn)入步驟s7;
s7、判斷決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前的訓(xùn)練次數(shù)y是否超過定值y;
若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s2,開始決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的下一次訓(xùn)練;
若是,則計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的y次訓(xùn)練時(shí)計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,并且判斷其是否小于第一閾值,若是,則決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)結(jié)束;若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s2;
在所述應(yīng)用階段:首先獲取水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后由上述學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)根據(jù)水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài)計(jì)算出當(dāng)前時(shí)刻需要輸出至水下機(jī)器人的推進(jìn)力。
優(yōu)選的,所述步驟s51,利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度
yi=ri+γq'(si,μ'(si,θt')|ωt');
其中l(wèi)oss為評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù),loss為:
其中μ(si,θt)是指選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si和某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò)時(shí)通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力;q(si,μ(si,θt)|ωt)是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si以及上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力μ(si,θt)作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸入時(shí)得到的當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出;θt為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),ωt為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);其中μ'(si,θt')是指選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si和某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)時(shí)通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力;q'(si,μ'(si,θt')|ωt')是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si以及上述當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力μ'(si,θt')作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸入時(shí)得到的當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出;θt'為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),ωt'為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ri是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)中某時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值,γ是折扣系數(shù),取值范圍在0和1之間;
所述步驟s51中根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
其中ωt為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ωt+1為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);α為評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率,取值范圍在0和1之間;
所述步驟s51中根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't;
其中ωt'為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ω't+1為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ρ是輔助決策神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)參數(shù)的學(xué)習(xí)率,取值范圍在0和1之間;
所述步驟s52中根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度
其中j為決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù),j為:
j=q(si,μ(si,θt)|ωt);
所述步驟s52中根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
其中θt為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);θt+1為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);β為決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率,取值范圍在0和1之間;
所述步驟s52根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't;
其中θ't為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);θ't+1為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)。
優(yōu)選的,所述步驟s7中計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的y次訓(xùn)練時(shí)計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差為:
其中:
其中
本發(fā)明的第四目的通過下述技術(shù)方案實(shí)現(xiàn):一種用于實(shí)現(xiàn)第三目的中基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法的基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制系統(tǒng),包括數(shù)據(jù)采集模塊、獎(jiǎng)勵(lì)計(jì)算模塊、經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)、決策模塊和通訊模塊;
所述數(shù)據(jù)采集模塊,用于在學(xué)習(xí)階段的各時(shí)刻,通過通訊模塊采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài);用于在應(yīng)用階段的各時(shí)刻,采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài);
所述獎(jiǎng)勵(lì)計(jì)算模塊,用于根據(jù)數(shù)據(jù)采集模塊獲取的水下機(jī)器人上一時(shí)刻的推進(jìn)力、當(dāng)前時(shí)刻的狀態(tài)以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)計(jì)算上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;
所述經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),用于在各時(shí)刻接收水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn),并進(jìn)行存儲(chǔ);
所述決策模塊:
用于在學(xué)習(xí)階段建立決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò);
用于在學(xué)習(xí)階段的各時(shí)刻,當(dāng)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)存儲(chǔ)進(jìn)水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn)后,判斷經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),通過這n個(gè)經(jīng)驗(yàn)實(shí)現(xiàn)對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)的一次更新,當(dāng)?shù)絹淼南乱粫r(shí)刻達(dá)到t時(shí)刻時(shí),完成一次訓(xùn)練;
用于在決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前訓(xùn)練次數(shù)超過y時(shí),獲取到?jīng)Q策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的y次訓(xùn)練時(shí)獎(jiǎng)勵(lì)計(jì)算模塊所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值,從而計(jì)算出決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的y次訓(xùn)練時(shí)獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,當(dāng)該獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差小于第一閾值時(shí),結(jié)束決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí);
用于在應(yīng)用階段從數(shù)據(jù)采集模塊中獲取水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后將其輸入至學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò),通過學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)計(jì)算出水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力。
所述通訊模塊,用于實(shí)現(xiàn)數(shù)據(jù)采集模塊和決策模塊與水下機(jī)器人控制系統(tǒng)之間的通訊,將決策模塊在應(yīng)用階段計(jì)算出的水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力發(fā)送至水下機(jī)器人控制系統(tǒng);用于將在學(xué)習(xí)階段各時(shí)刻,將水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài)傳送至數(shù)據(jù)采集模塊;用于在應(yīng)用階段的各時(shí)刻,將水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài)發(fā)送至數(shù)據(jù)采集模塊。
本發(fā)明相對于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:
(1)本發(fā)明中公開的一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,包括學(xué)習(xí)階段和應(yīng)用階段;在學(xué)習(xí)階段,通過仿真器模擬水下機(jī)器人的運(yùn)作過程,并且采集仿真器所模擬的正在運(yùn)作的水下機(jī)器人的數(shù)據(jù),包括各時(shí)刻的狀態(tài)和各時(shí)刻對應(yīng)下一時(shí)刻的目標(biāo)狀態(tài),通過這些數(shù)據(jù)針對決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)四個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí);在應(yīng)用階段,獲取到水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后輸入至學(xué)習(xí)階段最終學(xué)習(xí)得到的決策神經(jīng)網(wǎng)絡(luò)中,通過決策神經(jīng)網(wǎng)絡(luò)計(jì)算出水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力。其中本發(fā)明四個(gè)神經(jīng)網(wǎng)絡(luò)在各時(shí)刻,當(dāng)前決策神經(jīng)網(wǎng)絡(luò)和當(dāng)前決策神經(jīng)網(wǎng)絡(luò)在輸入數(shù)據(jù)后,通過當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)分別對應(yīng)針對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的輸出進(jìn)行評價(jià),反映出對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出對最終控制效果的影響,并且通過評價(jià)結(jié)果更新當(dāng)前決策神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);其中當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)在獲取到評價(jià)結(jié)果后,同時(shí)通過評價(jià)結(jié)果針對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新;可見,本發(fā)明在學(xué)習(xí)階段通過深度強(qiáng)化學(xué)習(xí)的方式最終學(xué)習(xí)得到?jīng)Q策神經(jīng)網(wǎng)絡(luò),能夠?qū)崿F(xiàn)水下機(jī)器人運(yùn)動(dòng)軌跡的精確控制,避免由于水下機(jī)器人高維連續(xù)的行為空間和非線性性質(zhì)導(dǎo)致的軌跡跟蹤精度低的控制問題。另外本發(fā)明針對四個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的數(shù)據(jù)來自于仿真器所模擬的正在水下運(yùn)行的水下機(jī)器人,因此不需要經(jīng)過現(xiàn)場學(xué)習(xí),具有操作簡單以及方便的優(yōu)點(diǎn)。
(2)本發(fā)明中公開的一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,在通過仿真器所模擬的正在運(yùn)作的水下機(jī)器人的采集數(shù)據(jù)訓(xùn)練完四個(gè)神經(jīng)網(wǎng)絡(luò)后,還可以通過實(shí)時(shí)采集的實(shí)際水下機(jī)器人的數(shù)據(jù)對上述訓(xùn)練完成的四個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行再學(xué)習(xí),能夠有效避免使用仿真模型不夠真實(shí)而帶來偏差的問題,因此能夠?qū)崿F(xiàn)水下機(jī)器人運(yùn)動(dòng)軌跡的更高精確控制。
(3)本發(fā)明公開的另一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,包括學(xué)習(xí)階段和應(yīng)用階段;在學(xué)習(xí)階段各時(shí)刻,直接采集實(shí)際運(yùn)行的水下機(jī)器人以下數(shù)據(jù),包括當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力和下一時(shí)刻的目標(biāo)狀態(tài);
通過這些數(shù)據(jù)針對決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)四個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí)。在應(yīng)用階段,獲取到水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后輸入至學(xué)習(xí)階段最終學(xué)習(xí)得到的決策神經(jīng)網(wǎng)絡(luò)中,通過決策神經(jīng)網(wǎng)絡(luò)計(jì)算出水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力。其中本發(fā)明四個(gè)神經(jīng)網(wǎng)絡(luò)在各時(shí)刻,當(dāng)前決策神經(jīng)網(wǎng)絡(luò)和當(dāng)前決策神經(jīng)網(wǎng)絡(luò)在輸入數(shù)據(jù)后,通過當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)分別對應(yīng)針對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的輸出進(jìn)行評價(jià),反映出對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出對最終控制效果的影響,并且通過評價(jià)結(jié)果更新當(dāng)前決策神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);同時(shí)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)在獲取到評價(jià)結(jié)果后,同時(shí)通過評價(jià)結(jié)果針對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新;可見,本發(fā)明在學(xué)習(xí)階段通過深度強(qiáng)化學(xué)習(xí)的方式最終學(xué)習(xí)得到?jīng)Q策神經(jīng)網(wǎng)絡(luò),能夠?qū)崿F(xiàn)水下機(jī)器人運(yùn)動(dòng)軌跡的精確控制,避免由于水下機(jī)器人高維連續(xù)的行為空間和非線性性質(zhì)導(dǎo)致的軌跡跟蹤精度低的控制問題。另外本發(fā)明針對四個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的數(shù)據(jù)來自于實(shí)際在水下運(yùn)行的水下機(jī)器人,因此學(xué)習(xí)能夠?qū)W習(xí)得到更加準(zhǔn)確的決策神經(jīng)網(wǎng)絡(luò),提高軌跡控制的精度。
(4)本發(fā)明兩種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法中,均建立了決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)四個(gè)神經(jīng)網(wǎng)絡(luò);通過輔助決策神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)能夠有效提高決策神經(jīng)網(wǎng)絡(luò)和評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)速度。
附圖說明
圖1是本發(fā)明實(shí)施例1的水下機(jī)器人軌跡控制系統(tǒng)框圖。
圖2是本發(fā)明實(shí)施例2的水下機(jī)器人軌跡控制系統(tǒng)框圖。
圖3是本發(fā)明實(shí)施例3的水下機(jī)器人軌跡控制系統(tǒng)框圖。
圖4是目標(biāo)軌跡為直線軌跡時(shí),本發(fā)明方法與傳統(tǒng)pid控制器所控制的水下機(jī)器人軌跡圖。
圖5是目標(biāo)軌跡為直線軌跡時(shí),本發(fā)明方法與傳統(tǒng)pid控制器所控制的水下機(jī)器人軌跡的誤差圖。
圖6是目標(biāo)軌跡為圓弧軌跡時(shí),本發(fā)明方法與傳統(tǒng)pid控制器所控制的水下機(jī)器人軌跡圖。
圖7是目標(biāo)軌跡為圓弧軌跡時(shí),本發(fā)明方法與傳統(tǒng)pid控制器所控制的水下機(jī)器人軌跡的誤差圖。
圖8是目標(biāo)軌跡為正弦曲線軌跡時(shí),本發(fā)明方法與傳統(tǒng)pid控制器所控制的水下機(jī)器人軌跡圖。
圖9是目標(biāo)軌跡為正弦曲線軌跡時(shí),本發(fā)明方法與傳統(tǒng)pid控制器所控制的水下機(jī)器人軌跡的誤差圖。
具體實(shí)施方式
下面結(jié)合實(shí)施例及附圖對本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。
實(shí)施例1
本實(shí)施例公開了一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,其特征在于,包括學(xué)習(xí)階段和應(yīng)用階段;在所述學(xué)習(xí)階段,通過仿真器模擬水下機(jī)器人的運(yùn)作過程,并且采集仿真器所模擬的正在運(yùn)作的水下機(jī)器人的數(shù)據(jù),根據(jù)這些數(shù)據(jù)針對決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)進(jìn)行學(xué)習(xí);具體步驟如下:
s1、首先建立四個(gè)神經(jīng)網(wǎng)絡(luò),分別作為決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò),并且針對四個(gè)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行初始化;其中神經(jīng)網(wǎng)絡(luò)的參數(shù)指的是神經(jīng)網(wǎng)絡(luò)中各層神經(jīng)元的連接權(quán)重;同時(shí)建立一個(gè)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),并進(jìn)行初始化;然后針對上述初始化后的四個(gè)神經(jīng)網(wǎng)絡(luò),從初始時(shí)刻開始,進(jìn)入步驟s2開始學(xué)習(xí);
s2、實(shí)時(shí)采集仿真器所模擬的正在運(yùn)作的水下機(jī)器人在當(dāng)前時(shí)刻的狀態(tài);然后根據(jù)當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài),利用當(dāng)前決策神經(jīng)網(wǎng)絡(luò)計(jì)算當(dāng)前時(shí)刻需要的推進(jìn)力;在獲取到當(dāng)前時(shí)刻需要的推進(jìn)力后,將當(dāng)前時(shí)刻需要的推進(jìn)力實(shí)施至仿真器所模擬的正在運(yùn)作的水下機(jī)器人上;然后采用水下機(jī)器人的動(dòng)力學(xué)模型計(jì)算出水下機(jī)器人下一時(shí)刻的狀態(tài);并且根據(jù)當(dāng)前時(shí)刻需要的推進(jìn)力、下一時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài)計(jì)算出的當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;
s3、將步驟s2中獲取到的當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及下一時(shí)刻的目標(biāo)狀態(tài)組成一個(gè)經(jīng)驗(yàn)存入經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū);
s4、判斷經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),然后執(zhí)行步驟s5,否則執(zhí)行步驟s6;在本實(shí)施例中上述指定閾值去128,n為64。
s5、更新當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),具體為:
s51、針對于步驟s4中選取出的n個(gè)經(jīng)驗(yàn)中的每個(gè)經(jīng)驗(yàn)進(jìn)行以下處理:將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;然后將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻的狀態(tài)和上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)獲取輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)輸出的評價(jià)值,利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度;然后根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的評價(jià)神經(jīng)網(wǎng)絡(luò),再根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò);
其中在本步驟中利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度
yi=ri+γq'(si,μ'(si,θt')|ωt');
其中l(wèi)oss為評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù),loss為:
其中μ(si,θt)是指選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si和某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò)時(shí)通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力;q(si,μ(si,θt)|ωt)是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si以及上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力μ(si,θt)作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸入時(shí)得到的當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出;θt為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),ωt為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);其中μ'(si,θt')是指選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si和某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)時(shí)通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力;q'(si,μ'(si,θt')|ωt')是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si以及上述當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力μ'(si,θt')作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸入時(shí)得到的當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出;θt'為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),ωt'為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ri是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)中某時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值,γ是折扣系數(shù),取值范圍在0和1之間,在本實(shí)施例中折扣系數(shù)γ設(shè)置為0.99。
本步驟中根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
其中ωt為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ωt+1為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);α為評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率,取值范圍在0和1之間,在本實(shí)施例中α取0.05;
所述步驟s51中根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't;
其中ωt'為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ω't+1為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ρ是輔助決策神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)參數(shù)的學(xué)習(xí)率,取值范圍在0和1之間,在本實(shí)施例中ρ取0.01;
s52、根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度,然后根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的決策神經(jīng)網(wǎng)絡(luò),同時(shí)根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助決策神經(jīng)網(wǎng)絡(luò),然后進(jìn)入步驟s6;所述更新后的決策神經(jīng)網(wǎng)絡(luò)和更新后的輔助決策神經(jīng)網(wǎng)絡(luò)供下一時(shí)刻使用;
本步驟中根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度
其中j為決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù),j為:
j=q(si,μ(si,θt)|ωt);
本步驟中根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
其中θt為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);θt+1為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);β為決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率,取值范圍在0和1之間,在本實(shí)施例中β取0.05;
本步驟中根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't;
其中θ't為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);θ't+1為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)。
s6、當(dāng)下一時(shí)刻到來時(shí),即下一時(shí)刻為當(dāng)前時(shí)刻時(shí),判定該時(shí)刻是否到達(dá)時(shí)刻t;若否,則返回步驟s2;若是,則表示決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)均完成一次訓(xùn)練,進(jìn)入步驟s7;在本實(shí)施例中t為200,即時(shí)刻200即為第200個(gè)時(shí)刻。
s7、判斷決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前的訓(xùn)練次數(shù)定值m是否超過定值m;在本實(shí)施例中定值m取100。
若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s2,開始決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的下一次訓(xùn)練;
若是,則計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的m次訓(xùn)練時(shí)通過步驟s2所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,并且判斷其是否小于第一閾值,若是,則決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)結(jié)束;若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s2;
其中本步驟中計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的m次訓(xùn)練時(shí)計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差為:
其中:
其中
在所述應(yīng)用階段:首先獲取水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后由上述學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)根據(jù)水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài)計(jì)算出當(dāng)前時(shí)刻需要輸出至水下機(jī)器人的推進(jìn)力。
在本實(shí)施例中所采用的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)4個(gè)神經(jīng)網(wǎng)絡(luò)具有相同的網(wǎng)絡(luò)結(jié)構(gòu),包括3個(gè)隱藏的全連接層,每一個(gè)隱藏層有100個(gè)神經(jīng)元,隱藏層之間的激活函數(shù)為relu函數(shù),輸出層和隱藏層之間的激活函數(shù)設(shè)置為tanh。
本實(shí)施例中水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)由水下機(jī)器人當(dāng)前時(shí)刻的速度和位置確定,水下機(jī)器人下一時(shí)刻的目標(biāo)狀態(tài)由水下機(jī)器人下一時(shí)刻的目標(biāo)速度和目標(biāo)位置確定。
將本實(shí)施例方法與傳統(tǒng)通過pid控制器控制水下機(jī)器人軌跡的方法相比,其中圖4、6和8所示分別是目標(biāo)軌跡為直線、圓弧曲線和正弦曲線的情況下,這兩種方法的實(shí)際軌跡,圖5、7和9所示分別是目標(biāo)軌跡為直線、圓弧曲線和正弦曲線的情況下,這兩種方法的實(shí)際軌跡的誤差。其中圖4至圖9中,benchmark是對應(yīng)理想的目標(biāo)軌跡,drl是對應(yīng)本實(shí)施例基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法獲取到的實(shí)際軌跡;通過這些圖可以看出本實(shí)施例方法比傳統(tǒng)通過pid控制器控制水下機(jī)器人軌跡的方法具有更好的控制精度。
本實(shí)施例還公開了一種用于實(shí)現(xiàn)上述方法的基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制系統(tǒng),如圖1所示,包括仿真器、第一數(shù)據(jù)采集模塊、第一獎(jiǎng)勵(lì)計(jì)算模塊、第一經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)、第一決策模塊和通訊模塊;
仿真器,用于模擬水下機(jī)器人的運(yùn)作過程,用于接收決策模塊發(fā)送的水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力,并且將該推進(jìn)力實(shí)施至所模擬的正在運(yùn)行的水下機(jī)器人上,然后采用水下機(jī)器人的動(dòng)力學(xué)模型計(jì)算出水下機(jī)器人下一時(shí)刻的狀態(tài);在本實(shí)施例中基于openaigym開發(fā)仿真模塊,水下機(jī)器人的實(shí)驗(yàn)平臺(tái)為openrov;
其中水下機(jī)器人的動(dòng)力學(xué)模型如下所示:
其中,m為質(zhì)量矩陣;c(v)為向心力與科里奧利力矩陣;d(v)為阻尼矩陣;g(η)為重力與浮力矩陣;δ為模型的不確定向量,表示外界環(huán)境的干擾;f為目標(biāo)輸入量,在這里表示水下機(jī)器人的電機(jī)推進(jìn)力,位置變量η與速度變量v分別表示為:
st+1=[v(t+1),η(t+1)]t;
其中:
v(t+1)=m-1f+m-1g(t);
其中:
g(t)=-d(v(t))v(t)-g(η(t))-c(v(t))v(t)-δ;
第一數(shù)據(jù)采集模塊,用于學(xué)習(xí)階段的各時(shí)刻,實(shí)時(shí)采集仿真器所模擬的正在運(yùn)作的水下機(jī)器人在當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài)并且傳送至決策模塊,同時(shí)采集仿真器采用水下機(jī)器人的動(dòng)力學(xué)模型計(jì)算出的水下機(jī)器人下一時(shí)刻的狀態(tài);用于在應(yīng)用階段的各時(shí)刻,通過通訊模塊實(shí)時(shí)采集水下機(jī)器人在當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài);
第一獎(jiǎng)勵(lì)計(jì)算模塊,用于根據(jù)仿真器所模擬的正在運(yùn)行的水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力、下一時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài)計(jì)算出的當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;其中本實(shí)施例中當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值計(jì)算公式如下:
其中ft為當(dāng)前時(shí)刻t需要的推進(jìn)力;st+1為下一個(gè)時(shí)刻t+1的狀態(tài);
第一經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),用于在當(dāng)前時(shí)刻,接收仿真器所模擬的正在運(yùn)行的水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及下一時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn),并進(jìn)行存儲(chǔ);
第一決策模塊:用于在學(xué)習(xí)階段建立決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò);用于在學(xué)習(xí)階段獲取到仿真器所模擬的正在運(yùn)行的水下機(jī)器人在當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的狀態(tài)后,通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)計(jì)算出水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力,然后發(fā)送至仿真器;用于在學(xué)習(xí)階段的各時(shí)刻,當(dāng)?shù)谝唤?jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)存儲(chǔ)進(jìn)仿真器所模擬的正在運(yùn)行的水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及下一時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn)后,判斷第一經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從第一經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),通過這n個(gè)經(jīng)驗(yàn)實(shí)現(xiàn)對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新;用于在決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前訓(xùn)練次數(shù)超過定值m時(shí),計(jì)算出決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的m次訓(xùn)練時(shí)所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,當(dāng)該標(biāo)準(zhǔn)差小于第一閾值時(shí),結(jié)束決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí);
用于在應(yīng)用階段獲取第一數(shù)據(jù)采集模塊所采集的水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后將其輸入至學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò),通過學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)計(jì)算出水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力;
所述通訊模塊,用于實(shí)現(xiàn)第一數(shù)據(jù)采集模塊、第一決策模塊與水下機(jī)器人控制系統(tǒng)之間的通訊;用于將第一決策模塊在應(yīng)用階段得到的水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力發(fā)送至水下機(jī)器人控制系統(tǒng);用于在應(yīng)用階段的各時(shí)刻,將水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài)發(fā)送至第一數(shù)據(jù)采集模塊。
實(shí)施例2
本實(shí)施例公開了一種基于水下機(jī)器人軌跡控制方法,其與實(shí)施例1中公開的基于水下機(jī)器人軌跡控制方法的區(qū)別僅在于,本實(shí)施例中學(xué)習(xí)階段還包括如下步驟:s8、在水下機(jī)器人的運(yùn)行過程中實(shí)時(shí)采集各個(gè)時(shí)刻的數(shù)據(jù),針對于步驟s7中學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò),進(jìn)行以下再學(xué)習(xí),具體為:
s81、首先初始化經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū);將步驟s7中學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)分別作為初始神經(jīng)網(wǎng)絡(luò);然后針對上述初始神經(jīng)網(wǎng)絡(luò),從初始時(shí)刻開始,進(jìn)入步驟s82開始學(xué)習(xí);
s82、判斷當(dāng)前時(shí)刻是否為初始時(shí)刻;
若是,則采集水下機(jī)器人在當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài),然后進(jìn)入步驟s84;
若否,則進(jìn)入步驟s83;
s83、采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài);并且獲取水下機(jī)器人上一時(shí)刻的推進(jìn)力;根據(jù)水下機(jī)器人上一時(shí)刻的推進(jìn)力、當(dāng)前時(shí)刻的狀態(tài)以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)計(jì)算上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;然后將上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)組成一個(gè)經(jīng)驗(yàn)后存儲(chǔ)進(jìn)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū);
s84、判斷經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),然后執(zhí)行步驟s85,否則執(zhí)行步驟s86;
s85、更新當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),具體為:
s851、針對于步驟s84中選取出的n個(gè)經(jīng)驗(yàn)中的每個(gè)經(jīng)驗(yàn)進(jìn)行以下處理:將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;然后將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻的狀態(tài)和上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)獲取輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)輸出的評價(jià)值,利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度;然后根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的評價(jià)神經(jīng)網(wǎng)絡(luò),再根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò);
s852、根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度,然后根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的決策神經(jīng)網(wǎng)絡(luò),同時(shí)根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助決策神經(jīng)網(wǎng)絡(luò),然后進(jìn)入步驟s86;所述更新后的決策神經(jīng)網(wǎng)絡(luò)和更新后的輔助決策神經(jīng)網(wǎng)絡(luò)供下一時(shí)刻使用;
s86、當(dāng)下一時(shí)刻到來時(shí),即下一時(shí)刻作為當(dāng)前時(shí)刻時(shí),判定該時(shí)刻是否到達(dá)時(shí)刻t;若否,則返回步驟s82;若是,則表示決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)均完成一次訓(xùn)練,進(jìn)入步驟s87;
s87、判斷決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)從步驟s82所述的初始神經(jīng)網(wǎng)絡(luò)開始進(jìn)行再學(xué)習(xí)時(shí)至當(dāng)前的訓(xùn)練次數(shù)x是否超過定值x;在本實(shí)施例中定值x為100。
若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s82,開始決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的下一次訓(xùn)練;
若是,則計(jì)算出決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的x次訓(xùn)練時(shí)通過步驟s83所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,并且判斷其是否小于第一閾值,若是,則決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)結(jié)束;若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s82。
本實(shí)施例在應(yīng)用階段:首先獲取水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后輸入步驟s87中最終學(xué)習(xí)到的決策神經(jīng)網(wǎng)絡(luò),通過該決策神經(jīng)網(wǎng)絡(luò)計(jì)算出當(dāng)前時(shí)刻需要輸出至水下機(jī)器人的推進(jìn)力。
本實(shí)施例中步驟s85針對于當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)的更新過程和實(shí)施例1中步驟s5的一樣。
本實(shí)施例中步驟s87中計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的x次訓(xùn)練時(shí)計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差為:
其中:
其中
本實(shí)施例還公開了一種用于實(shí)現(xiàn)本實(shí)施例上述方法的基于水下機(jī)器人軌跡控制系統(tǒng),其與實(shí)施例1中公開的基于水下機(jī)器人軌跡控制系統(tǒng)的區(qū)別僅在于,如圖2所示,本實(shí)施例基于水下機(jī)器人軌跡控制系統(tǒng)還包括:第二數(shù)據(jù)采集模塊、第二獎(jiǎng)勵(lì)計(jì)算模塊、第二經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)、第二決策模塊;其中:
第二數(shù)據(jù)采集模塊,用于在學(xué)習(xí)階段的各時(shí)刻,通過通訊模塊采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài);
第二獎(jiǎng)勵(lì)計(jì)算模塊,用于根據(jù)第二數(shù)據(jù)采集模塊獲取的水下機(jī)器人上一時(shí)刻的推進(jìn)力、當(dāng)前時(shí)刻的狀態(tài)以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)計(jì)算上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;
第二經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),用于在當(dāng)前時(shí)刻,接收水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn),并進(jìn)行存儲(chǔ);
第二決策模塊:
用于在第一決策模塊結(jié)束對決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)之后,將第一決策模塊最終學(xué)習(xí)得到的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)作為初始神經(jīng)網(wǎng)絡(luò),然后進(jìn)行再次學(xué)習(xí);
用于在學(xué)習(xí)階段的各時(shí)刻,當(dāng)?shù)诙?jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)存儲(chǔ)進(jìn)水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn)后,判斷第二經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從第二經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),通過這n個(gè)經(jīng)驗(yàn)實(shí)現(xiàn)對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新;用于在決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前訓(xùn)練次數(shù)超過x時(shí),計(jì)算出決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的x次訓(xùn)練時(shí)所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,當(dāng)該標(biāo)準(zhǔn)差小于第一閾值時(shí),結(jié)束決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí),將得到的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)作為學(xué)習(xí)階段學(xué)習(xí)完成的神經(jīng)網(wǎng)絡(luò),輸入至第一決策模塊,供第一決策模塊在應(yīng)用階段時(shí)使用。
實(shí)施例3
本實(shí)施例公開了一種基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制方法,其特征在于,包括學(xué)習(xí)階段和應(yīng)用階段;在學(xué)習(xí)階段,具體步驟如下:
s1、首先建立四個(gè)神經(jīng)網(wǎng)絡(luò),分別作為決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò),并且針對四個(gè)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行初始化;其中神經(jīng)網(wǎng)絡(luò)的參數(shù)指的是神經(jīng)網(wǎng)絡(luò)中各層神經(jīng)元的連接權(quán)重;同時(shí)建立一個(gè)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),并進(jìn)行初始化;然后針對上述初始化后的四個(gè)神經(jīng)網(wǎng)絡(luò),從初始時(shí)刻開始,進(jìn)入步驟s2開始學(xué)習(xí);
s2、判斷當(dāng)前時(shí)刻是否為初始時(shí)刻;
若是,則采集水下機(jī)器人在當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài),然后進(jìn)入步驟s4;
若否,則進(jìn)入步驟s3;
s3、采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài);并且獲取水下機(jī)器人上一時(shí)刻的推進(jìn)力;根據(jù)水下機(jī)器人上一時(shí)刻的推進(jìn)力、當(dāng)前時(shí)刻的狀態(tài)以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)計(jì)算上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;然后將水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)組成一個(gè)經(jīng)驗(yàn)后存儲(chǔ)進(jìn)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū);
s4、判斷經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),然后執(zhí)行步驟s5,否則執(zhí)行步驟s6;在本實(shí)施例中上述指定閾值去128,n為64。
s5、更新當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),具體為:
s51、針對于步驟s4中選取出的n個(gè)經(jīng)驗(yàn)中的每個(gè)經(jīng)驗(yàn)進(jìn)行以下處理:將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)、某時(shí)刻下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò),通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出某時(shí)刻的推進(jìn)力;然后將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻的狀態(tài)和上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;同時(shí)將每個(gè)經(jīng)驗(yàn)中的某時(shí)刻狀態(tài)和當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)獲取輸出的某時(shí)刻的推進(jìn)力輸入至當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)中,將當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出均作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值;根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)輸出的評價(jià)值,利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度;然后根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的評價(jià)神經(jīng)網(wǎng)絡(luò),再根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò);
本步驟中利用評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算出當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度
yi=ri+γq'(si,μ'(si,θt')|ωt');
其中l(wèi)oss為評價(jià)神經(jīng)網(wǎng)絡(luò)的損失函數(shù),loss為:
其中μ(si,θt)是指選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si和某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前決策神經(jīng)網(wǎng)絡(luò)時(shí)通過當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力;q(si,μ(si,θt)|ωt)是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si以及上述當(dāng)前決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力μ(si,θt)作為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸入時(shí)得到的當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出;θt為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),ωt為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);其中μ'(si,θt')是指選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si和某時(shí)刻的下一時(shí)刻的目標(biāo)狀態(tài)輸入至當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)時(shí)通過當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力;q'(si,μ'(si,θt')|ωt')是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)的某時(shí)刻的狀態(tài)si以及上述當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)輸出的某時(shí)刻的推進(jìn)力μ'(si,θt')作為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸入時(shí)得到的當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的輸出;θt'為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù),ωt'為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ri是選取出的n個(gè)經(jīng)驗(yàn)中第i個(gè)經(jīng)驗(yàn)中某時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值,γ是折扣系數(shù),取值范圍在0和1之間;
本步驟中根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
其中ωt為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ωt+1為當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);α為評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率,取值范圍在0和1之間,在本實(shí)施例中α取0.05;
本步驟中根據(jù)更新后的評價(jià)神經(jīng)網(wǎng)絡(luò)對當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
ω't+1=ρωt+1+(1-ρ)ω't;
其中ωt'為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ω't+1為當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);ρ是輔助決策神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)參數(shù)的學(xué)習(xí)率,取值范圍在0和1之間,在本實(shí)施例中ρ取0.01;
s52、根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度,然后根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的決策神經(jīng)網(wǎng)絡(luò),同時(shí)根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到更新后的輔助決策神經(jīng)網(wǎng)絡(luò),然后進(jìn)入步驟s6;所述更新后的決策神經(jīng)網(wǎng)絡(luò)和更新后的輔助決策神經(jīng)網(wǎng)絡(luò)供下一時(shí)刻使用;
本步驟中根據(jù)當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)的評價(jià)值,利用決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù)計(jì)算當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度
其中j為決策神經(jīng)網(wǎng)絡(luò)的損失函數(shù),j為:
j=q(si,μ(si,θt)|ωt);
本步驟中根據(jù)當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的梯度對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
其中θt為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);θt+1為當(dāng)前決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);β為決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率,取值范圍在0和1之間,在本實(shí)施例中β取0.05;
本步驟中根據(jù)更新后的決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)針對輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行更新,得到:
θ't+1=ρθt+1+(1-ρ)θ't;
其中θ't為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù);θ't+1為當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)更新后的值,對應(yīng)為更新后的輔助決策神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)。
s6、當(dāng)下一時(shí)刻到來時(shí),即下一時(shí)刻作為當(dāng)前時(shí)刻時(shí),判定該時(shí)刻是否到達(dá)時(shí)刻t;若否,則返回步驟s2;若是,則表示決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)均完成一次訓(xùn)練,進(jìn)入步驟s7;
s7、判斷決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前的訓(xùn)練次數(shù)y是否超過定值y;在本實(shí)施例中定值y為100。
若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s2,開始決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的下一次訓(xùn)練;
若是,則計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的y次訓(xùn)練時(shí)計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,并且判斷其是否小于第一閾值,若是,則決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)結(jié)束;若否,則將到來的下一時(shí)刻重設(shè)為初始時(shí)刻,然后返回步驟s2;
本步驟s7中計(jì)算決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的y次訓(xùn)練時(shí)計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差為:
其中:
其中
在所述應(yīng)用階段:首先獲取水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后由上述學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)根據(jù)水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài)計(jì)算出當(dāng)前時(shí)刻需要輸出至水下機(jī)器人的推進(jìn)力。
在本實(shí)施例中所采用的決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)4個(gè)神經(jīng)網(wǎng)絡(luò)具有相同的網(wǎng)絡(luò)結(jié)構(gòu),包括3個(gè)隱藏的全連接層,每一個(gè)隱藏層有100個(gè)神經(jīng)元,隱藏層之間的激活函數(shù)為relu函數(shù),輸出層和隱藏層之間的激活函數(shù)設(shè)置為tanh。
本實(shí)施例還公開了一種用于實(shí)現(xiàn)上述方法的基于深度強(qiáng)化學(xué)習(xí)的水下機(jī)器人軌跡控制系統(tǒng),如圖3所示,包括數(shù)據(jù)采集模塊、獎(jiǎng)勵(lì)計(jì)算模塊、經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)、決策模塊和通訊模塊;
數(shù)據(jù)采集模塊,用于在學(xué)習(xí)階段的各時(shí)刻,通過通訊模塊采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài);用于在應(yīng)用階段的各時(shí)刻,采集水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài);
獎(jiǎng)勵(lì)計(jì)算模塊,用于根據(jù)數(shù)據(jù)采集模塊獲取的水下機(jī)器人上一時(shí)刻的推進(jìn)力、當(dāng)前時(shí)刻的狀態(tài)以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)計(jì)算上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值;其中本實(shí)施例中所采用的上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值的計(jì)算公式如下:
其中ft-1為上一時(shí)刻t-1的推進(jìn)力;st為當(dāng)前時(shí)刻t的狀態(tài);
經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū),用于在當(dāng)前時(shí)刻,接收水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn),并進(jìn)行存儲(chǔ);
所述決策模塊:
用于在學(xué)習(xí)階段建立決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò);
用于在學(xué)習(xí)階段的各時(shí)刻,當(dāng)經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)存儲(chǔ)進(jìn)水下機(jī)器人上一時(shí)刻的狀態(tài)、上一時(shí)刻的獎(jiǎng)勵(lì)信號(hào)值以及當(dāng)前時(shí)刻的目標(biāo)狀態(tài)所組成的經(jīng)驗(yàn)后,判斷經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)當(dāng)前存儲(chǔ)的數(shù)據(jù)量是否大于指定閾值,若是,則從經(jīng)驗(yàn)數(shù)據(jù)緩沖區(qū)中隨機(jī)選取出n個(gè)經(jīng)驗(yàn),通過這n個(gè)經(jīng)驗(yàn)實(shí)現(xiàn)對當(dāng)前決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前輔助決策神經(jīng)網(wǎng)絡(luò)、當(dāng)前評價(jià)神經(jīng)網(wǎng)絡(luò)和當(dāng)前輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的神經(jīng)網(wǎng)絡(luò)參數(shù)的一次更新,當(dāng)?shù)絹淼南乱粫r(shí)刻達(dá)到t時(shí)刻時(shí),完成一次訓(xùn)練;
用于在決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)當(dāng)前訓(xùn)練次數(shù)超過y時(shí),獲取到?jīng)Q策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的y次訓(xùn)練時(shí)獎(jiǎng)勵(lì)計(jì)算模塊所計(jì)算得到的獎(jiǎng)勵(lì)信號(hào)值,從而計(jì)算出決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)完成最近的y次訓(xùn)練時(shí)獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差,當(dāng)該獎(jiǎng)勵(lì)信號(hào)值的標(biāo)準(zhǔn)差小于第一閾值時(shí),結(jié)束決策神經(jīng)網(wǎng)絡(luò)、輔助決策神經(jīng)網(wǎng)絡(luò)、評價(jià)神經(jīng)網(wǎng)絡(luò)和輔助評價(jià)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí);
用于在應(yīng)用階段從數(shù)據(jù)采集模塊中獲取水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)以及下一時(shí)刻的目標(biāo)狀態(tài),然后將其輸入至學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò),通過學(xué)習(xí)階段學(xué)習(xí)完成的決策神經(jīng)網(wǎng)絡(luò)計(jì)算出水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力。
通訊模塊,用于實(shí)現(xiàn)數(shù)據(jù)采集模塊和決策模塊與水下機(jī)器人控制系統(tǒng)之間的通訊,將決策模塊在應(yīng)用階段計(jì)算出的水下機(jī)器人當(dāng)前時(shí)刻需要的推進(jìn)力發(fā)送至水下機(jī)器人控制系統(tǒng);用于將在學(xué)習(xí)階段各時(shí)刻,將水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)、當(dāng)前時(shí)刻的推進(jìn)力以及下一時(shí)刻的目標(biāo)狀態(tài)傳送至數(shù)據(jù)采集模塊;用于在應(yīng)用階段的各時(shí)刻,將水下機(jī)器人當(dāng)前時(shí)刻的狀態(tài)和下一時(shí)刻的目標(biāo)狀態(tài)發(fā)送至數(shù)據(jù)采集模塊。
上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。