化學(xué)習(xí)中技能演化與推理的協(xié)同進(jìn)化)
1. 從“打工人”到“管理者”為什么我們需要ARISE最近在跟幾個(gè)做強(qiáng)化學(xué)習(xí)的朋友聊天大家普遍有個(gè)感覺(jué)現(xiàn)在的智能體Agent越來(lái)越像“996的打工人”。你給它一個(gè)任務(wù)比如“把箱子推到指定位置”它吭哧吭哧學(xué)半天最后確實(shí)能推過(guò)去。但問(wèn)題是它只會(huì)推這個(gè)箱子換個(gè)形狀的箱子、或者把目標(biāo)位置挪一下它可能就懵了又得從頭開始學(xué)。這種“一個(gè)任務(wù)一個(gè)模型”的模式效率低、成本高而且智能體學(xué)到的知識(shí)非?!按嗳酢比狈εe一反三的能力。這背后反映的其實(shí)是傳統(tǒng)強(qiáng)化學(xué)習(xí)的一個(gè)核心瓶頸技能復(fù)用與組合能力差。智能體在單一任務(wù)中學(xué)到的策略很難遷移到新任務(wù)上。這就好比一個(gè)只會(huì)擰螺絲的工人你讓他去組裝一臺(tái)機(jī)器他完全無(wú)從下手。為了解決這個(gè)問(wèn)題學(xué)術(shù)界和工業(yè)界把目光投向了分層強(qiáng)化學(xué)習(xí)。它的核心思想很直觀把復(fù)雜的任務(wù)分解成多個(gè)簡(jiǎn)單的子任務(wù)讓智能體先學(xué)會(huì)一些基礎(chǔ)的“技能”比如“移動(dòng)”、“抓取”、“旋轉(zhuǎn)”然后再學(xué)習(xí)如何將這些技能組合起來(lái)完成更高級(jí)的目標(biāo)。這就像培養(yǎng)一個(gè)管理者先讓他精通各個(gè)業(yè)務(wù)模塊技能再學(xué)習(xí)如何協(xié)調(diào)這些模塊高層策略來(lái)完成公司戰(zhàn)略。然而理想很豐滿現(xiàn)實(shí)很骨感?,F(xiàn)有的分層強(qiáng)化學(xué)習(xí)方法尤其是基于內(nèi)在技能演化的路徑面臨兩大“攔路虎”技能“死記硬背”智能體學(xué)到的技能往往是針對(duì)訓(xùn)練環(huán)境“定制”的換個(gè)環(huán)境就失效了。技能本身缺乏泛化性和魯棒性。高層“瞎指揮”高層策略管理者在選擇使用哪個(gè)技能時(shí)往往基于短期的、局部的獎(jiǎng)勵(lì)缺乏對(duì)任務(wù)整體的“理解”和“規(guī)劃”容易做出短視的決策。而ARISE這個(gè)框架全稱是“Agent Reasoning with Intrinsic Skill Evolution in Hierarchical Reinforcement Learning”直譯過(guò)來(lái)就是“基于內(nèi)在技能演化的智能體推理分層強(qiáng)化學(xué)習(xí)”。它瞄準(zhǔn)的正是上述兩個(gè)痛點(diǎn)。ARISE試圖賦予智能體兩樣?xùn)|西一是能自我進(jìn)化、適應(yīng)新環(huán)境的“基本功”技能二是能像人類一樣進(jìn)行“思考”和“規(guī)劃”從而合理調(diào)度這些基本功的“大腦”高層推理。簡(jiǎn)單說(shuō)ARISE的目標(biāo)是培養(yǎng)一個(gè)不僅“手藝”好而且“腦子”活能應(yīng)對(duì)各種未知挑戰(zhàn)的“全能型智能體”。這對(duì)于需要高適應(yīng)性、高自主性的場(chǎng)景如家庭服務(wù)機(jī)器人、復(fù)雜游戲AI、工業(yè)柔性自動(dòng)化等有著巨大的價(jià)值。接下來(lái)我們就深入拆解ARISE是如何一步步實(shí)現(xiàn)這個(gè)目標(biāo)的。2. ARISE的核心架構(gòu)三層設(shè)計(jì)如何實(shí)現(xiàn)“思考”與“進(jìn)化”要理解ARISE我們不能把它看成一個(gè)黑箱而是要從它的架構(gòu)設(shè)計(jì)入手。ARISE的整體框架是一個(gè)經(jīng)典的三層結(jié)構(gòu)但它在每一層都做了關(guān)鍵的創(chuàng)新使得“推理”和“進(jìn)化”得以貫穿始終。2.1 底層技能執(zhí)行層——從“固定招式”到“可進(jìn)化技能庫(kù)”在傳統(tǒng)的分層強(qiáng)化學(xué)習(xí)中底層通常是一組預(yù)定義或?qū)W得的固定技能。比如在機(jī)器人領(lǐng)域技能可能是“向前移動(dòng)0.5米”、“順時(shí)針旋轉(zhuǎn)30度”等原子動(dòng)作的序列。這些技能一旦學(xué)成在測(cè)試階段就是不變的。ARISE的底層則是一個(gè)可進(jìn)化的技能庫(kù)。它不僅僅存儲(chǔ)技能更重要的是為每個(gè)技能賦予了一個(gè)“進(jìn)化潛力”。具體是如何實(shí)現(xiàn)的呢核心機(jī)制技能參數(shù)化與內(nèi)在獎(jiǎng)勵(lì)驅(qū)動(dòng)每個(gè)技能不再是一個(gè)固定的動(dòng)作序列而是一個(gè)由參數(shù)控制的策略子模塊。例如一個(gè)“抓取”技能其參數(shù)可能包括抓取力度、手爪張開角度、接近速度等。在訓(xùn)練初期這些技能是粗糙和通用的。ARISE為技能學(xué)習(xí)引入了一個(gè)關(guān)鍵的內(nèi)在獎(jiǎng)勵(lì)。這個(gè)獎(jiǎng)勵(lì)不是環(huán)境給予的如“抓到物體10分”而是技能自己“覺(jué)得”有沒(méi)有進(jìn)步。比如新穎性探索獎(jiǎng)勵(lì)鼓勵(lì)技能去嘗試它之前很少執(zhí)行的動(dòng)作參數(shù)組合。技能覆蓋度獎(jiǎng)勵(lì)鼓勵(lì)技能庫(kù)中的不同技能能夠覆蓋盡可能多樣化的狀態(tài)-動(dòng)作空間避免技能同質(zhì)化。學(xué)習(xí)進(jìn)度獎(jiǎng)勵(lì)如果某個(gè)技能在近期通過(guò)微調(diào)其參數(shù)顯著提升了完成某個(gè)子目標(biāo)的成功率那么它就會(huì)獲得獎(jiǎng)勵(lì)。注意這里的內(nèi)在獎(jiǎng)勵(lì)設(shè)計(jì)是ARISE的一個(gè)精髓。它讓技能的學(xué)習(xí)不再完全依賴于外部任務(wù)的成敗而是有了“自我提升”的內(nèi)在驅(qū)動(dòng)力。這就好比一個(gè)工匠不僅為了完成訂單外部獎(jiǎng)勵(lì)而工作也會(huì)為了提升自己的手藝內(nèi)在獎(jiǎng)勵(lì)去主動(dòng)練習(xí)新的技法。通過(guò)這種內(nèi)在獎(jiǎng)勵(lì)的驅(qū)動(dòng)底層技能會(huì)在與環(huán)境的交互中不斷微調(diào)自己的參數(shù)逐漸從“粗糙通用”進(jìn)化到“精細(xì)適配”甚至能針對(duì)新環(huán)境的特點(diǎn)進(jìn)行快速調(diào)整。這就是“技能演化”的體現(xiàn)。2.2 中層技能推理與選擇層——從“條件反射”到“基于模型的規(guī)劃”這是ARISE最具創(chuàng)新性的一層也是“Reasoning”一詞的集中體現(xiàn)。傳統(tǒng)方法中高層策略往往是一個(gè)簡(jiǎn)單的策略網(wǎng)絡(luò)輸入當(dāng)前狀態(tài)輸出應(yīng)該激活哪個(gè)技能。這更像是一種“條件反射”看到某種情況就下意識(shí)地選用某個(gè)技能。ARISE在這一層引入了一個(gè)輕量級(jí)的世界模型和規(guī)劃器。工作流程解析狀態(tài)編碼與技能效果預(yù)測(cè)智能體首先將當(dāng)前的環(huán)境狀態(tài)如機(jī)器人攝像頭圖像、關(guān)節(jié)角度編碼成一個(gè)抽象的表示。然后對(duì)于技能庫(kù)中的每一個(gè)候選技能智能體利用其內(nèi)置的世界模型快速“想象”一下如果我現(xiàn)在執(zhí)行這個(gè)技能接下來(lái)幾秒鐘環(huán)境可能會(huì)變成什么樣子這個(gè)預(yù)測(cè)的狀態(tài)我們稱之為該技能的“預(yù)期效果”。基于價(jià)值的技能評(píng)估智能體有一個(gè)高層價(jià)值函數(shù)用于評(píng)估某個(gè)狀態(tài)對(duì)于完成最終任務(wù)的“好壞”程度。它用這個(gè)價(jià)值函數(shù)去評(píng)估每個(gè)技能產(chǎn)生的“預(yù)期效果”狀態(tài)的價(jià)值。規(guī)劃與選擇智能體不會(huì)只看一步。它會(huì)進(jìn)行一個(gè)淺層的搜索例如向前看3-5步模擬連續(xù)使用不同技能組合后可能到達(dá)的狀態(tài)并計(jì)算這些狀態(tài)序列的累積價(jià)值。最終它選擇那個(gè)能引導(dǎo)至最高價(jià)值狀態(tài)的技能或技能序列作為當(dāng)前決策。舉個(gè)例子假設(shè)一個(gè)倉(cāng)儲(chǔ)機(jī)器人智能體的任務(wù)是把A區(qū)的貨箱搬到B區(qū)。它當(dāng)前在A區(qū)面前有貨箱狀態(tài)。傳統(tǒng)方法策略網(wǎng)絡(luò)直接輸出“執(zhí)行抓取技能”。ARISE方法推理層會(huì)“思考”我現(xiàn)在有“移動(dòng)”、“抓取”、“抬起”等技能。它用世界模型預(yù)測(cè)如果執(zhí)行“抓取”我能抓住箱子但位置沒(méi)變。它評(píng)估抓住箱子后的狀態(tài)距離“貨箱在B區(qū)”這個(gè)目標(biāo)還有距離價(jià)值不高。它進(jìn)一步規(guī)劃也許先“移動(dòng)”到箱子側(cè)面再“抓取”這樣抓取后更容易轉(zhuǎn)向“移動(dòng)”去B區(qū)。經(jīng)過(guò)模擬這個(gè)“移動(dòng)-抓取”的序列被認(rèn)為能更快接近高價(jià)值狀態(tài)。最終決策先執(zhí)行“移動(dòng)”技能調(diào)整位姿。這個(gè)過(guò)程模擬了人類的“在心中預(yù)演”能力使得技能的選擇不再是盲目的而是有目的的、前瞻性的。2.3 高層任務(wù)目標(biāo)與元認(rèn)知層——監(jiān)督與協(xié)調(diào)最高層負(fù)責(zé)接收最終的任務(wù)目標(biāo)如“把紅色方塊放到藍(lán)色區(qū)域”并將其分解成一系列子目標(biāo)傳遞給中層的推理層。同時(shí)這一層還扮演著“元認(rèn)知”的角色即對(duì)自身學(xué)習(xí)過(guò)程的監(jiān)控和調(diào)整。子目標(biāo)生成根據(jù)最終任務(wù)和當(dāng)前環(huán)境動(dòng)態(tài)生成合適的子目標(biāo)。例如任務(wù)初期子目標(biāo)可能是“接近紅色方塊”中期是“抓取紅色方塊”后期是“將紅色方塊移動(dòng)到藍(lán)色區(qū)域上方”。技能庫(kù)管理監(jiān)控底層技能的學(xué)習(xí)效率和使用頻率。如果發(fā)現(xiàn)某個(gè)技能長(zhǎng)期表現(xiàn)不佳或從未被使用高層可以發(fā)出指令要求底層調(diào)整該技能的內(nèi)在獎(jiǎng)勵(lì)權(quán)重甚至將其“回爐重造”。推理層調(diào)整如果中層的規(guī)劃頻繁失敗預(yù)測(cè)與現(xiàn)實(shí)嚴(yán)重不符高層可以判斷是世界模型不準(zhǔn)還是規(guī)劃深度不夠并觸發(fā)相應(yīng)的模型更新或參數(shù)調(diào)整機(jī)制。這三層結(jié)構(gòu)形成了一個(gè)完整的閉環(huán)底層技能通過(guò)內(nèi)在獎(jiǎng)勵(lì)不斷進(jìn)化變得更強(qiáng)、更通用中層利用世界模型和規(guī)劃智能地選擇和組合技能高層則統(tǒng)籌全局確保整個(gè)系統(tǒng)朝著最終目標(biāo)高效前進(jìn)。接下來(lái)我們看看這套架構(gòu)是如何被訓(xùn)練出來(lái)的。3. ARISE的訓(xùn)練機(jī)制如何讓“推理”和“進(jìn)化”協(xié)同工作訓(xùn)練一個(gè)分層系統(tǒng)遠(yuǎn)比訓(xùn)練單一策略復(fù)雜因?yàn)槟阈枰瑫r(shí)優(yōu)化多個(gè)相互關(guān)聯(lián)的模塊。ARISE采用了一種交替優(yōu)化、分層遞進(jìn)的訓(xùn)練策略其核心是解耦不同層次的學(xué)習(xí)目標(biāo)并讓它們通過(guò)特定的信號(hào)進(jìn)行協(xié)同。3.1 底層技能的訓(xùn)練內(nèi)在獎(jiǎng)勵(lì)與環(huán)境獎(jiǎng)勵(lì)的平衡底層技能的策略網(wǎng)絡(luò)其目標(biāo)是最大化一個(gè)混合獎(jiǎng)勵(lì)總獎(jiǎng)勵(lì) 環(huán)境獎(jiǎng)勵(lì) β * 內(nèi)在獎(jiǎng)勵(lì)其中β是一個(gè)超參數(shù)用于調(diào)節(jié)內(nèi)在獎(jiǎng)勵(lì)的權(quán)重。環(huán)境獎(jiǎng)勵(lì)當(dāng)技能執(zhí)行后如果有助于完成高層下達(dá)的當(dāng)前子目標(biāo)如“抓取到物體”就會(huì)獲得正的環(huán)境獎(jiǎng)勵(lì)。這確保了技能的學(xué)習(xí)不會(huì)脫離實(shí)際任務(wù)避免演化出一些“花哨但無(wú)用”的動(dòng)作。內(nèi)在獎(jiǎng)勵(lì)如前所述包括新穎性、覆蓋度、學(xué)習(xí)進(jìn)度等。這部分獎(jiǎng)勵(lì)驅(qū)動(dòng)技能去探索和提升自身。訓(xùn)練時(shí)每個(gè)技能都有自己獨(dú)立的策略網(wǎng)絡(luò)和批評(píng)家網(wǎng)絡(luò)。數(shù)據(jù)來(lái)源于智能體與環(huán)境的所有交互。但這里有個(gè)關(guān)鍵需要為每條交互數(shù)據(jù)打上“技能標(biāo)簽”即這條數(shù)據(jù)是由哪個(gè)技能生成的。這通常通過(guò)在高層的技能選擇指令中附帶技能ID來(lái)實(shí)現(xiàn)。一個(gè)實(shí)操中的難點(diǎn)是技能間數(shù)據(jù)分配不平衡。某些技能如“移動(dòng)”可能被頻繁調(diào)用產(chǎn)生大量數(shù)據(jù)而另一些技能如“精細(xì)操作”數(shù)據(jù)很少。ARISE通常采用經(jīng)驗(yàn)回放緩沖區(qū)優(yōu)先級(jí)采樣來(lái)解決對(duì)于數(shù)據(jù)量少的技能其產(chǎn)生的數(shù)據(jù)會(huì)被賦予更高的采樣優(yōu)先級(jí)確保其策略網(wǎng)絡(luò)也能獲得足夠的訓(xùn)練。3.2 中層推理層的訓(xùn)練世界模型與規(guī)劃器的學(xué)習(xí)中層的學(xué)習(xí)是整個(gè)框架中最具挑戰(zhàn)性的部分因?yàn)樗蕾囉谝粋€(gè)能夠準(zhǔn)確預(yù)測(cè)技能執(zhí)行效果的世界模型。世界模型的訓(xùn)練 世界模型通常是一個(gè)循環(huán)神經(jīng)網(wǎng)絡(luò)或Transformer輸入是當(dāng)前狀態(tài)和要執(zhí)行的技能ID輸出是預(yù)測(cè)的下一個(gè)狀態(tài)以及可能的環(huán)境獎(jiǎng)勵(lì)。它的訓(xùn)練數(shù)據(jù)直接來(lái)源于智能體與環(huán)境的真實(shí)交互記錄狀態(tài) 技能 下一狀態(tài)。訓(xùn)練目標(biāo)是最小化預(yù)測(cè)狀態(tài)與真實(shí)狀態(tài)之間的誤差如均方誤差。注意世界模型的準(zhǔn)確性至關(guān)重要。如果預(yù)測(cè)誤差太大中層的規(guī)劃就成了“瞎規(guī)劃”。在實(shí)踐中我們通常會(huì)在訓(xùn)練初期用一段時(shí)間的隨機(jī)探索數(shù)據(jù)先預(yù)訓(xùn)練一個(gè)基礎(chǔ)的世界模型然后再與整個(gè)系統(tǒng)一起進(jìn)行微調(diào)。同時(shí)需要定期用最新的交互數(shù)據(jù)來(lái)更新世界模型以適應(yīng)環(huán)境或技能本身的變化。高層價(jià)值函數(shù)的訓(xùn)練 高層價(jià)值函數(shù)用于評(píng)估狀態(tài)的好壞。它的訓(xùn)練基于時(shí)序差分誤差。具體來(lái)說(shuō)當(dāng)智能體執(zhí)行一個(gè)技能序列并到達(dá)一個(gè)新狀態(tài)后它會(huì)根據(jù)環(huán)境反饋和后續(xù)狀態(tài)的預(yù)測(cè)價(jià)值來(lái)計(jì)算當(dāng)前狀態(tài)的價(jià)值目標(biāo)然后通過(guò)梯度下降來(lái)更新價(jià)值網(wǎng)絡(luò)使其預(yù)測(cè)更準(zhǔn)確。規(guī)劃器的“訓(xùn)練” 規(guī)劃器本身如蒙特卡洛樹搜索的 rollout 策略通常不涉及神經(jīng)網(wǎng)絡(luò)的訓(xùn)練其“性能”完全依賴于世界模型和高層價(jià)值函數(shù)的準(zhǔn)確性。因此對(duì)規(guī)劃器的優(yōu)化主要體現(xiàn)在搜索深度、寬度和計(jì)算效率的權(quán)衡上。在訓(xùn)練初期由于模型不準(zhǔn)確可能采用較淺的搜索隨著模型越來(lái)越準(zhǔn)可以逐步增加搜索深度以獲得更優(yōu)的規(guī)劃。3.3 高層元認(rèn)知層的訓(xùn)練基于長(zhǎng)期效用的策略高層策略子目標(biāo)生成和技能庫(kù)管理的訓(xùn)練周期通常更長(zhǎng)因?yàn)樗u(píng)估的是更長(zhǎng)期的效用。其獎(jiǎng)勵(lì)信號(hào)主要來(lái)自于任務(wù)的最終完成情況以及整體學(xué)習(xí)效率如平均完成時(shí)間、技能使用均衡度等。這部分訓(xùn)練往往采用策略梯度類方法。由于決策頻率低每完成一個(gè)子目標(biāo)或每隔一段時(shí)間才決策一次需要收集大量完整的任務(wù)軌跡來(lái)進(jìn)行訓(xùn)練。在實(shí)踐中為了穩(wěn)定訓(xùn)練常會(huì)使用近端策略優(yōu)化等算法。三層訓(xùn)練的協(xié)同 ARISE的訓(xùn)練不是孤立的。它通常以“輪”為單位進(jìn)行收集數(shù)據(jù)輪固定當(dāng)前所有網(wǎng)絡(luò)參數(shù)讓智能體在環(huán)境中運(yùn)行一段時(shí)間收集大量的交互數(shù)據(jù)并存儲(chǔ)到對(duì)應(yīng)的經(jīng)驗(yàn)回放緩沖區(qū)中。技能更新輪用收集到的數(shù)據(jù)更新底層各個(gè)技能的策略網(wǎng)絡(luò)和批評(píng)家網(wǎng)絡(luò)。模型更新輪用數(shù)據(jù)更新中層的世界模型和高層價(jià)值函數(shù)。高層更新輪每隔多個(gè)輪次用長(zhǎng)期累積的任務(wù)完成數(shù)據(jù)更新高層策略。評(píng)估與調(diào)整輪在測(cè)試環(huán)境中評(píng)估性能根據(jù)結(jié)果調(diào)整內(nèi)在獎(jiǎng)勵(lì)權(quán)重β、規(guī)劃深度等超參數(shù)。這種交替訓(xùn)練的方式使得三層模塊能夠逐步對(duì)齊共同優(yōu)化。下面我們通過(guò)一個(gè)具體案例來(lái)看看ARISE的實(shí)際表現(xiàn)。4. 實(shí)戰(zhàn)剖析ARISE在機(jī)器人復(fù)雜操作任務(wù)中的表現(xiàn)為了直觀理解ARISE的優(yōu)勢(shì)我們以一個(gè)經(jīng)典的機(jī)器人模擬任務(wù)“Pick-Place with Obstacles”有障礙物的抓取放置為例對(duì)比ARISE與兩種主流基線方法HIRO一種經(jīng)典的分層強(qiáng)化學(xué)習(xí)算法和SAC一種優(yōu)秀的非分層強(qiáng)化學(xué)習(xí)算法。任務(wù)描述一個(gè)機(jī)械臂需要從桌面上抓取一個(gè)積木塊并將其放入一個(gè)指定顏色的盒子里。桌面上會(huì)有其他顏色、形狀的障礙物。任務(wù)難點(diǎn)在于1需要精確的抓取和放置2需要規(guī)劃移動(dòng)路徑以避開障礙物3目標(biāo)盒子的位置每次試驗(yàn)都可能變化。4.1 實(shí)驗(yàn)設(shè)置與基線對(duì)比ARISE我們?yōu)槠湓O(shè)計(jì)了一個(gè)包含5個(gè)底層技能的技能庫(kù)Approach接近物體、Grasp抓取、Lift抬起、Move水平移動(dòng)、Place放置。內(nèi)在獎(jiǎng)勵(lì)結(jié)合了技能覆蓋度和學(xué)習(xí)進(jìn)度。HIRO同樣使用分層結(jié)構(gòu)但其底層技能是固定目標(biāo)如移動(dòng)到某個(gè)坐標(biāo)的策略高層通過(guò)設(shè)定坐標(biāo)目標(biāo)來(lái)指導(dǎo)底層。技能本身不會(huì)演化。SAC一個(gè)扁平的、非分層的強(qiáng)化學(xué)習(xí)算法直接學(xué)習(xí)從狀態(tài)到關(guān)節(jié)扭矩的映射。我們?cè)赑yBullet仿真環(huán)境中進(jìn)行訓(xùn)練評(píng)估指標(biāo)是任務(wù)成功率和平均完成步數(shù)。4.2 性能結(jié)果與分析經(jīng)過(guò)相同環(huán)境交互步數(shù)的訓(xùn)練后我們得到以下結(jié)果方法任務(wù)成功率平均完成步數(shù)技能泛化能力新障礙物SAC (扁平)45%350極差 (10%)HIRO (分層固定技能)78%220一般 (~40%)ARISE (分層技能演化推理)92%180良好 (~75%)結(jié)果解讀SAC表現(xiàn)最差這印證了扁平策略在處理復(fù)雜、長(zhǎng)周期任務(wù)時(shí)的無(wú)力。它很難直接學(xué)會(huì)“抓取-移動(dòng)-放置”這一系列動(dòng)作的協(xié)調(diào)經(jīng)常在抓取后碰撞障礙物或者放置不準(zhǔn)。HIRO優(yōu)于SAC分層結(jié)構(gòu)帶來(lái)了顯著提升。HIRO的高層學(xué)會(huì)了先設(shè)定“接近物體”的目標(biāo)再設(shè)定“抓取”的目標(biāo)等等。但由于其底層技能是固定的“移動(dòng)到某點(diǎn)”當(dāng)遇到新的障礙物時(shí)它設(shè)定的坐標(biāo)點(diǎn)可能正好在障礙物上導(dǎo)致底層無(wú)法完成從而失敗。其技能缺乏適應(yīng)性。ARISE全面領(lǐng)先更高的成功率與效率ARISE的成功率最高且用時(shí)最短。這是因?yàn)槠渫评韺幽軌蛱崆耙?guī)劃避開障礙物的路徑例如選擇Move技能繞行而不是像HIRO那樣可能給出一個(gè)會(huì)導(dǎo)致碰撞的中間坐標(biāo)。強(qiáng)大的泛化能力當(dāng)我們?cè)跍y(cè)試中引入訓(xùn)練時(shí)未見過(guò)的障礙物形狀時(shí)ARISE的表現(xiàn)下降最少。其底層技能特別是Move和Approach在內(nèi)在獎(jiǎng)勵(lì)驅(qū)動(dòng)下已經(jīng)演化出一定的避障和適應(yīng)能力。同時(shí)推理層基于世界模型的規(guī)劃能夠快速評(píng)估新障礙物對(duì)技能執(zhí)行的影響并調(diào)整技能選擇和組合方式。4.3 關(guān)鍵過(guò)程可視化ARISE的“思考”過(guò)程通過(guò)記錄ARISE在單次任務(wù)中的內(nèi)部狀態(tài)我們可以清晰地看到其推理過(guò)程初始狀態(tài)機(jī)械臂在初始位置目標(biāo)積木在前方中間有一個(gè)新形狀的障礙物。高層下達(dá)子目標(biāo)“抓取目標(biāo)積木”。中層推理候選技能Approach,Grasp直接抓取距離不夠被價(jià)值網(wǎng)絡(luò)否決。世界模型模擬如果直接Approach預(yù)測(cè)路徑會(huì)碰撞障礙物導(dǎo)致失敗。規(guī)劃搜索模擬Move向左 -Approach-Grasp的序列。預(yù)測(cè)顯示這個(gè)序列能安全接近并抓取。決策執(zhí)行Move向左技能。底層執(zhí)行Move技能根據(jù)當(dāng)前障礙物情況自動(dòng)演化出了略微上抬的軌跡安全繞過(guò)。后續(xù)步驟成功抓取后高層下達(dá)新子目標(biāo)“放置到藍(lán)色盒子”中層同理規(guī)劃出避開障礙物的放置路徑。這個(gè)案例生動(dòng)展示了ARISE如何將“技能演化”帶來(lái)的底層適應(yīng)力與“基于模型的推理”帶來(lái)的高層規(guī)劃力相結(jié)合從而解決復(fù)雜、動(dòng)態(tài)的任務(wù)。5. 實(shí)現(xiàn)ARISE關(guān)鍵模塊的代碼級(jí)解析與避坑指南理解了原理我們來(lái)看看如何動(dòng)手實(shí)現(xiàn)一個(gè)ARISE的簡(jiǎn)化版本。這里我們使用PyTorch框架并聚焦于最核心的三個(gè)模塊可進(jìn)化技能、世界模型和規(guī)劃器。請(qǐng)注意這是一個(gè)高度簡(jiǎn)化的示意代碼旨在闡明核心邏輯。5.1 可進(jìn)化技能模塊的實(shí)現(xiàn)每個(gè)技能本質(zhì)上是一個(gè)策略網(wǎng)絡(luò)但它的輸入除了狀態(tài)還有技能自身的“演化參數(shù)”θ。import torch import torch.nn as nn import torch.optim as optim class EvolvableSkill(nn.Module): def __init__(self, state_dim, action_dim, skill_id): super(EvolvableSkill, self).__init__() self.skill_id skill_id # 策略網(wǎng)絡(luò) self.policy_net nn.Sequential( nn.Linear(state_dim, 128), nn.ReLU(), nn.Linear(128, 128), nn.ReLU(), nn.Linear(128, action_dim), nn.Tanh() # 假設(shè)動(dòng)作范圍在[-1,1] ) # 價(jià)值網(wǎng)絡(luò)用于計(jì)算優(yōu)勢(shì)函數(shù) self.value_net nn.Sequential( nn.Linear(state_dim, 128), nn.ReLU(), nn.Linear(128, 128), nn.ReLU(), nn.Linear(128, 1) ) # 技能特有的演化參數(shù)可被內(nèi)在獎(jiǎng)勵(lì)優(yōu)化 self.intrinsic_params nn.Parameter(torch.randn(1, requires_gradTrue)) def forward(self, state): # 策略網(wǎng)絡(luò)生成動(dòng)作均值可加入?yún)?shù)化噪聲探索 action_mean self.policy_net(state) return action_mean def compute_intrinsic_reward(self, state, action, next_state): 計(jì)算內(nèi)在獎(jiǎng)勵(lì)。這里以‘技能特異性’為例 鼓勵(lì)技能訪問(wèn)與其他技能不同的狀態(tài)-動(dòng)作區(qū)域。 需要維護(hù)一個(gè)技能級(jí)別的經(jīng)驗(yàn)緩沖區(qū)來(lái)計(jì)算。 # 簡(jiǎn)化示例使用技能參數(shù)作為獎(jiǎng)勵(lì)的一部分 # 實(shí)際中會(huì)更復(fù)雜可能涉及基于計(jì)數(shù)的新穎性或預(yù)測(cè)誤差 intrinsic_r self.intrinsic_params.item() * 0.1 # 只是一個(gè)示意 return intrinsic_r def update(self, states, actions, advantages, extrinsic_rewards, intrinsic_weights): 更新技能策略。使用PPO等策略梯度算法。 intrinsic_weights 用于平衡外在和內(nèi)在獎(jiǎng)勵(lì)。 # 計(jì)算總獎(jiǎng)勵(lì) total_rewards extrinsic_rewards intrinsic_weights * self.compute_intrinsic_reward(...) # 需要實(shí)際狀態(tài)數(shù)據(jù) # ... 這里是PPO的損失計(jì)算和更新步驟 (省略細(xì)節(jié)) # 同時(shí)也會(huì)更新 self.intrinsic_params pass避坑指南1技能間干擾與數(shù)據(jù)歸屬最大的坑在于經(jīng)驗(yàn)數(shù)據(jù)的歸屬。必須確保每條(s, a, s, r)經(jīng)驗(yàn)數(shù)據(jù)被準(zhǔn)確地標(biāo)記是由哪個(gè)技能產(chǎn)生的。一個(gè)常見的做法是在中層調(diào)用技能時(shí)除了執(zhí)行動(dòng)作還返回一個(gè)skill_id標(biāo)簽并隨經(jīng)驗(yàn)一起存儲(chǔ)。更新技能時(shí)只使用該技能自己的數(shù)據(jù)。如果數(shù)據(jù)標(biāo)記錯(cuò)誤會(huì)導(dǎo)致技能學(xué)習(xí)目標(biāo)混亂互相干擾。5.2 世界模型模塊的實(shí)現(xiàn)世界模型負(fù)責(zé)預(yù)測(cè)給定狀態(tài)和技能下的下一個(gè)狀態(tài)。class WorldModel(nn.Module): def __init__(self, state_dim, skill_embedding_dim): super(WorldModel, self).__init__() # 技能ID通過(guò)嵌入層轉(zhuǎn)化為向量 self.skill_embedding nn.Embedding(num_skills, skill_embedding_dim) self.transition_net nn.Sequential( nn.Linear(state_dim skill_embedding_dim, 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, state_dim) # 預(yù)測(cè)狀態(tài)差值 Δs 通常更穩(wěn)定 ) def forward(self, state, skill_id): skill_emb self.skill_embedding(skill_id) combined_input torch.cat([state, skill_emb], dim-1) delta_state_pred self.transition_net(combined_input) next_state_pred state delta_state_pred # 預(yù)測(cè)下一狀態(tài) return next_state_pred def train_step(self, state_batch, skill_id_batch, next_state_batch): pred_next_state self.forward(state_batch, skill_id_batch) loss nn.MSELoss()(pred_next_state, next_state_batch) return loss避坑指南2世界模型的過(guò)擬合與滯后世界模型很容易在訓(xùn)練初期過(guò)擬合到有限的早期數(shù)據(jù)上導(dǎo)致其預(yù)測(cè)在后期失去準(zhǔn)確性。務(wù)必使用一個(gè)足夠大的、先進(jìn)先出的經(jīng)驗(yàn)回放緩沖區(qū)并定期用最新的數(shù)據(jù)對(duì)其進(jìn)行微調(diào)。另一個(gè)常見問(wèn)題是模型滯后當(dāng)技能自身在快速演化時(shí)世界模型基于舊技能數(shù)據(jù)做出的預(yù)測(cè)會(huì)不準(zhǔn)。可以考慮使用一個(gè)“目標(biāo)世界模型”其參數(shù)定期從訓(xùn)練中的世界模型同步以穩(wěn)定規(guī)劃過(guò)程。5.3 規(guī)劃器模塊的實(shí)現(xiàn)規(guī)劃器使用世界模型進(jìn)行前向搜索。class Planner: def __init__(self, world_model, value_net, skill_list): self.world_model world_model self.value_net value_net # 高層價(jià)值網(wǎng)絡(luò) self.skill_list skill_list self.planning_depth 3 self.num_candidates 5 # 每層擴(kuò)展的候選技能數(shù) def plan(self, current_state, goal_info): best_skill_seq None best_value -float(inf) # 簡(jiǎn)單的蒙特卡洛樹搜索MCTS思路的簡(jiǎn)化版深度優(yōu)先搜索 def dfs(state, depth, skill_seq, current_value): nonlocal best_value, best_skill_seq if depth self.planning_depth: if current_value best_value: best_value current_value best_skill_seq skill_seq.copy() return # 評(píng)估當(dāng)前狀態(tài)的價(jià)值 state_val self.value_net(state).item() # 啟發(fā)式優(yōu)先考慮價(jià)值高的技能簡(jiǎn)化實(shí)際可能基于模型預(yù)測(cè) # 這里隨機(jī)選幾個(gè)技能進(jìn)行模擬 candidate_skills random.sample(self.skill_list, min(self.num_candidates, len(self.skill_list))) for skill in candidate_skills: # 使用世界模型預(yù)測(cè)執(zhí)行該技能后的狀態(tài) with torch.no_grad(): next_state_pred self.world_model(state.unsqueeze(0), torch.tensor([skill.id])).squeeze(0) # 遞歸搜索 dfs(next_state_pred, depth1, skill_seq [skill], current_value state_val) dfs(current_state, 0, [], 0) # 返回最優(yōu)序列的第一個(gè)技能 return best_skill_seq[0] if best_skill_seq else random.choice(self.skill_list)避坑指南3規(guī)劃的計(jì)算開銷在線的深度規(guī)劃即使是3-5步計(jì)算成本也很高尤其是當(dāng)技能數(shù)量多、狀態(tài)維度高時(shí)。在實(shí)際應(yīng)用中有幾種優(yōu)化策略分層規(guī)劃高層先規(guī)劃子目標(biāo)序列中層再為每個(gè)子目標(biāo)規(guī)劃技能序列。模型蒸餾訓(xùn)練一個(gè)輕量級(jí)的“策略網(wǎng)絡(luò)”來(lái)模仿規(guī)劃器的輸出在線時(shí)直接使用策略網(wǎng)絡(luò)離線時(shí)再用規(guī)劃器生成數(shù)據(jù)來(lái)訓(xùn)練它。限制搜索空間不是評(píng)估所有技能而是用價(jià)值網(wǎng)絡(luò)或另一個(gè)“技能篩選網(wǎng)絡(luò)”預(yù)先篩選出幾個(gè)最有可能的候選技能。6. 超越仿真ARISE面臨的現(xiàn)實(shí)挑戰(zhàn)與未來(lái)方向盡管ARISE在仿真環(huán)境中展現(xiàn)出了巨大潛力但要將其應(yīng)用到真實(shí)的物理系統(tǒng)如機(jī)器人、自動(dòng)駕駛中還面臨著諸多嚴(yán)峻挑戰(zhàn)。6.1 從仿真到現(xiàn)實(shí)的“現(xiàn)實(shí)差距”這是所有基于學(xué)習(xí)的機(jī)器人方法的核心挑戰(zhàn)。仿真器中的物理引擎如PyBullet, MuJoCo與真實(shí)世界存在差異包括摩擦系數(shù)、物體形變、傳感器噪聲、延遲等。對(duì)ARISE的影響ARISE嚴(yán)重依賴準(zhǔn)確的世界模型進(jìn)行規(guī)劃。在仿真中訓(xùn)練的世界模型其預(yù)測(cè)規(guī)律與真實(shí)世界不符導(dǎo)致規(guī)劃失效。技能在仿真中演化出的特性如特定的抓取力度在現(xiàn)實(shí)中可能完全無(wú)效。應(yīng)對(duì)思路域隨機(jī)化在仿真訓(xùn)練時(shí)廣泛隨機(jī)化物理參數(shù)質(zhì)量、摩擦、視覺(jué)外觀等讓技能和世界模型學(xué)習(xí)到一個(gè)更“寬泛”的動(dòng)力學(xué)模型提高泛化能力。系統(tǒng)辨識(shí)與模型適配在真實(shí)機(jī)器人上收集少量數(shù)據(jù)用于快速微調(diào)世界模型的關(guān)鍵參數(shù)使其貼近真實(shí)動(dòng)力學(xué)。在線適應(yīng)讓ARISE系統(tǒng)具備在線學(xué)習(xí)能力。在真實(shí)環(huán)境中執(zhí)行時(shí)持續(xù)用真實(shí)數(shù)據(jù)更新世界模型和技能策略。但這需要極其高效和安全的學(xué)習(xí)算法。6.2 技能演化的安全性與穩(wěn)定性在仿真中智能體可以隨意“折騰”探索各種奇怪的動(dòng)作。在現(xiàn)實(shí)中一個(gè)錯(cuò)誤的動(dòng)作可能導(dǎo)致機(jī)械臂撞毀或傷及人類。對(duì)ARISE的影響內(nèi)在獎(jiǎng)勵(lì)驅(qū)動(dòng)的探索可能引導(dǎo)技能演化出危險(xiǎn)的動(dòng)作。例如為了獲得“新穎性”技能可能嘗試以極高速度運(yùn)動(dòng)。應(yīng)對(duì)思路安全約束注入在技能策略網(wǎng)絡(luò)的輸出層加入硬約束如關(guān)節(jié)角度限位、速度上限或軟約束在獎(jiǎng)勵(lì)函數(shù)中加入對(duì)危險(xiǎn)狀態(tài)的巨大懲罰。模擬先行安全驗(yàn)證所有新演化出的技能參數(shù)必須在高保真仿真中經(jīng)過(guò)嚴(yán)格的安全性和穩(wěn)定性測(cè)試后才能部署到真實(shí)系統(tǒng)。人類在環(huán)引入人類監(jiān)督當(dāng)智能體試圖探索可能不安全的區(qū)域時(shí)需要人工批準(zhǔn)或提供示范。6.3 長(zhǎng)期規(guī)劃與信用分配ARISE的中層規(guī)劃目前還是短視的通常只看幾步。對(duì)于需要數(shù)十甚至上百步才能完成的超長(zhǎng)程任務(wù)如“整理整個(gè)房間”如何有效規(guī)劃是一個(gè)難題。挑戰(zhàn)規(guī)劃深度增加會(huì)帶來(lái)計(jì)算量的指數(shù)級(jí)增長(zhǎng)。更關(guān)鍵的是如何將最終任務(wù)成功的獎(jiǎng)勵(lì)合理地分配給早期一個(gè)看似無(wú)關(guān)的技能選擇信用分配問(wèn)題。未來(lái)方向抽象化與分層加深在現(xiàn)有三層之上引入更多抽象層次。例如底層是肌肉控制技能中層是物體操作技能高層是任務(wù)規(guī)劃技能如“取飲料-倒水-清洗杯子”?;谡Z(yǔ)言的子目標(biāo)生成結(jié)合大語(yǔ)言模型將高層任務(wù)的自然語(yǔ)言描述如“請(qǐng)幫我準(zhǔn)備早餐”自動(dòng)分解為一系列邏輯子目標(biāo)和約束然后由ARISE系統(tǒng)執(zhí)行。課程學(xué)習(xí)設(shè)計(jì)從易到難的任務(wù)課程讓智能體先學(xué)會(huì)簡(jiǎn)單的技能和規(guī)劃再逐步挑戰(zhàn)復(fù)雜任務(wù)緩解長(zhǎng)期信用分配的壓力。ARISE代表了一條通向更通用、更智能的自主智能體的重要路徑。它將分層強(qiáng)化學(xué)習(xí)的結(jié)構(gòu)優(yōu)勢(shì)、內(nèi)在動(dòng)機(jī)的探索能力以及基于模型的推理能力相結(jié)合為解決復(fù)雜決策問(wèn)題提供了強(qiáng)大的框架。雖然前路仍有諸多挑戰(zhàn)但它在仿真中展現(xiàn)出的強(qiáng)大學(xué)習(xí)和泛化能力讓我們有理由相信隨著仿真技術(shù)、安全學(xué)習(xí)和計(jì)算能力的進(jìn)步ARISE所代表的“會(huì)思考、能進(jìn)化”的智能體終將從虛擬世界走進(jìn)現(xiàn)實(shí)成為我們得力的助手。