ML-Agents 是一個開源項目,使游戲和模擬場景能夠作為訓練智能代理的環境。它提供最先進算法的實現(基于 PyTorch),使游戲開發者和愛好者能夠輕松訓練 2D、3D 和 VR/AR 游戲的智能代理。研究人員還可以使用提供的簡單易用的 Python API 來使用強化學習、模仿學習、神經進化或任何其他方法來訓練代理。
機器學習系列:
ML-Agents學習筆記一:環境搭建
ML-Agents學習筆記二:UNITY實例工程簡介
ML-Agents學習筆記三:Pyramids demo 詳解
ML-Agents學習筆記四:使用強化學習訓練模型
ML-Agents學習筆記五:使用TensorBoard 觀察訓練
……
AI小白系列:
AI小白篇一:Anaconda+Pycharm搭建深度學習環境
AI小白篇二:使用anaconda搭建TensorFlow環境
AI小白篇三:Tensorflow首項
AI小白篇四:Tensorflow的開源案例實踐1
AI小白篇五:Tensorflow的開源案例實踐2
AI小白篇六:Tensorflow的開源案例實踐3
……
上文已經介紹了,如何搭建一個ML-Agents的開發環境,接下來,我們進入主題,開始利用demo來學習,如何利用ML-Agents進強化學習訓練。
1、ML-Agents工具包目錄
在我們下載的工具包中,包含一個 Unity Project 的目錄,
如果你熟悉Unity工程的話,很明顯能看出來這是個unity的工程,上文也提到,這個是ml-agents 的unity demo,
包含幾個若干個示例,突出顯示工具包的各種特性,這里將挑選其中一個,訓練一個代理,并將訓練好的模型嵌入到Unity環境中的端到端過程。
2、用Unity加載Demo
運行 Unity Hub
在項目對話框中, 點擊添加
- 在項目窗口中,進入工具包的project目錄,打開即可
- 打開工程后,我們選擇 pyramids 這個demo
- 雙擊 pyramids場景,點擊播放,就能看到一個方形頭在追著一個一個的彩色目標進行撞擊
你會發現,它很少走冤枉路,這個就利用ML-Agents預先訓練好的模型(.onnx
文件,存放在TFModels目錄下),應用到實際場景的推理。
.onnx 是 Open Neural Network Exchange (ONNX) 格式的文件擴展名。ONNX 是一個開放的格式,用于深度學習模型的跨平臺互操作。它由微軟和 Facebook 于 2017 年共同開發,旨在為不同的深度學習框架提供一個統一的模型表示形式,使得模型可以在不同的框架之間進行轉換和共享。
3、Unity環境簡介
這里介紹一下ML—Agents 的Unity環境,它包含一個或多個Agent對象的場景,包括Agent與之交互的其他實體。
在打開pyramids場景后,您可能會注意到的第一件事是,它包含了多個Agent訓練迷宮AreaPB,而不是一個。
打開每個AreaPB, 你會發現他們都具有相同的GameObject及掛載相同的腳本, 其實他就是AreaPB的一個拷貝。
所以,場景中的每個Agent訓練迷宮都包含一個獨立的agent,它們都有相同的行為,這樣16個Agent同時開工,并行進行訓練的,加速訓練。