官术网_书友最值得收藏!

4.2.2 逆強化學習

什么是逆強化學習?為了回答這個問題,我們首先回顧一下強化學習的重要知識。在強化學習中,首先要根據特定游戲設計獎勵函數,比如在跑酷類游戲中,角色在每一局游戲跑的距離就可以看作游戲的獎勵,強化學習算法會收集當前游戲的狀態、角色移動的距離和執行的動作,根據新收集的數據更新模型參數,如果當前執行的動作獲得正向獎勵,則下次遇到同樣游戲狀況時,增加該動作的概率。這看上去很容易,但在實際操作中,設計獎勵函數對研究者有一定難度,需要考慮游戲角色多種狀態下應該給予多大的獎勵,而強化學習訓練出來的AI效果對獎勵函數非常敏感,往往需要長時間的嘗試才能設計出比較理想的獎勵函數,且在復雜游戲中,很難設計高效的獎勵函數。為了解決這個問題,研究者提出了逆強化學習算法,其能根據專家錄制的樣本推導潛在的獎勵函數,避免人工設計,降低了研究者的使用門檻。

逆強化學習假設專家在執行特定任務時,其決策是接近最優的,所以我們需要找到一個獎勵函數,使專家策略累積的獎勵期望大于其余策略產生的獎勵期望。確定獎勵函數之后,再使用強化學習訓練模型,即強化學習使用的獎勵函數是根據專家示例推導學習得到的。

逆強化學習步驟如下:第一步,隨機初始化模型參數;第二步,使用該模型與游戲環境進行交互,輸入當前游戲狀態,輸出要執行的動作,將收集的樣本與專家錄制的樣本進行對比,根據專家樣本得到獎勵期望最大的獎勵函數;第三步,通過獎勵函數進行強化學習,提升模型的游戲水平。如果AI策略和專家策略差異較小,則停止訓練,否則回到第二步,繼續學習獎勵函數。可以看出逆強化學習需要不斷迭代更新獎勵函數,每更新一次獎勵需要采用強化學習推導新的游戲策略,這也說明逆強化學習比一般的強化學習算法更耗時。

為了減少逆強化學習的訓練時間,研究者提出了生成對抗模仿學習算法,其采用生成器和判別器的思路,要求生成器生成的游戲樣本要盡可能接近專家錄制的游戲樣本,而判別器用于區分專家樣本的精度。這樣避免了逆強化學習中反復用強化學習訓練模型,有助于模型的快速訓練。

與行為克隆相比,逆強化學習由于與游戲環境交互,能擴充大量樣本,從而提升了模型的策略,但正因為其必須與環境交互,所以訓練時間遠高于行為克隆所需時間。如果需要AI有很好的表現且對訓練時長不太敏感,則可以嘗試逆強化學習的方法。

主站蜘蛛池模板: 乌苏市| 三明市| 威信县| 邛崃市| 信丰县| 蓝山县| 酒泉市| 霍邱县| 梧州市| 长武县| 白水县| 岳普湖县| 沽源县| 安新县| 禹城市| 兴国县| 大余县| 西畴县| 金溪县| 沙田区| 云霄县| 延吉市| 全南县| 南通市| 繁昌县| 繁昌县| 隆林| 延安市| 哈尔滨市| 红桥区| 尼玛县| 长汀县| 建德市| 西乌| 宜州市| 塔河县| 罗平县| 德安县| 泾川县| 界首市| 苍溪县|