模仿學(xué)習(xí) Imitation Learning

如果我們想讓Agent來執(zhí)行的某個動作,簡單的演示給它看通常更加直觀,而不是試錯的方法來學(xué)習(xí)它??紤]我們訓(xùn)練醫(yī)護(hù)兵NPC的示例:我們可以喂給醫(yī)護(hù)兵真實(shí)世界例子的觀察observations 以及 來自于游戲控制器的動作來指導(dǎo)醫(yī)護(hù)兵的行為,而不是通過通過獎勵函數(shù)間接訓(xùn)練醫(yī)生。更具體地,在該模式中,訓(xùn)練期間的Brain type被設(shè)置為Player,并且控制器執(zhí)行的所有動作都將被記錄(除了agent觀察之外)并將其發(fā)送到Python API。然后,模仿學(xué)習(xí)算法將使用來自人類玩家的這些(觀察-動作)對 來學(xué)習(xí)策略。 Youtube視頻鏈接(https://youtu.be/kpb8ZkMBFYs)需翻墻。

使用行為克隆

可以使用各種可能的模仿學(xué)習(xí)算法,其中最簡單的一種是行為克隆。它的工作原理是收集教師的培訓(xùn)數(shù)據(jù),然后簡單地用它來直接學(xué)習(xí)策略,就像監(jiān)督學(xué)習(xí)圖像分類或其他傳統(tǒng)機(jī)器學(xué)習(xí)任務(wù)一樣。

  1. 為了在場景中使用模仿學(xué)習(xí),你需要的第一件事是創(chuàng)建兩個大腦,一個是“老師”,另一個是“學(xué)生”。 我們假設(shè)Brain對象的名稱分別是“Teacher”和“Student”。

  2. 將“Teacher”Brain設(shè)置為Player模式,并正確配置輸入以映射到相應(yīng)的操作。確保在Brain的屬性窗口中選中“Broadcast”。

  3. 設(shè)置“Student”Brain為External 模式。

  4. 把Brain賦值給希望訓(xùn)練的Agents(一個Agent作為老師,至少一個設(shè)置為學(xué)生)。

  5. 在config/trainer_config.yaml中,為“Student”大腦添加一個條目。 將此條目的trainer參數(shù)設(shè)置為imitation,將brain_to_imitate參數(shù)設(shè)置為Teacher大腦的名稱:“Teacher”。 另外,設(shè)置batches_per_epoch,它控制每個時刻的訓(xùn)練量。 如果您希望長時間訓(xùn)練Agent,請?jiān)黾觤ax_steps選項(xiàng)。

  6. 使用mlagents-learn config/trainer_config.yaml --train --slow啟動訓(xùn)練過程,并在屏幕上顯示“通過按Unity Editor中的"Start training by pressing the Play button in the Unity Editor"消息時按Unity中的??按鈕。

  7. 在Unity窗口中,通過提供您希望看到的行為的“教師演示”來控制有Teacher Brain的Agent。

  8. 觀看有Student Brain的Agent開始與演示內(nèi)容表現(xiàn)類似。

  9. 一旦學(xué)生Agent展示了所需的行為,請從命令行使用CTL + C結(jié)束培訓(xùn)過程。

  10. 將生成的* .bytes文件移動到Assets文件夾的TFModels子目錄,并與Internal Brain一起使用。

BC Teacher Helper

我們提供了一個方便的工具——BC Teacher Helper,該組件可以添加到 Teacher Agent。

BC Teacher Helper

該工具讓你使用鍵盤快捷鍵完成以下內(nèi)容:

  1. 開始和停止記錄經(jīng)驗(yàn)。如果您想要與游戲進(jìn)行交互但沒有讓agent從這些交互中學(xué)習(xí),這非常有用。 切換它的默認(rèn)命令是按鍵盤上的R。

2.重置訓(xùn)練緩沖區(qū)。這使您可以指示agent忘記其最近經(jīng)驗(yàn)緩沖區(qū)。 如果您希望讓他們快速學(xué)習(xí)新行為,這非常有用。 重置緩沖區(qū)的默認(rèn)命令是按鍵盤上的C.

原文連接:https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Training-Imitation-Learning.md

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

  • Unity中的強(qiáng)化學(xué)習(xí) Reinforcement Learning in Unity 強(qiáng)化學(xué)習(xí)是一種人工智能技術(shù)...
    浪尖兒閱讀 1,942評論 1 3
  • 0. 預(yù)備知識 雖然名字叫做機(jī)器學(xué)習(xí)ML,但是主要內(nèi)容還是增強(qiáng)學(xué)習(xí)RL(或者叫強(qiáng)化學(xué)習(xí))。其實(shí)并沒有錯,ML中主要...
    浪尖兒閱讀 23,298評論 4 24
  • Agents設(shè)計(jì) 本文翻譯自https://github.com/Unity-Technologies/ml-ag...
    浪尖兒閱讀 6,497評論 0 6
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,564評論 19 139
  • 忽如其來的一場病 像是要為這個世界正名 這里不只有溫暖如昔的春風(fēng) 還有漆黑的地獄與你同行 不知是哪里發(fā)了神經(jīng) 這個...
    日夢白閱讀 189評論 0 1

友情鏈接更多精彩內(nèi)容