深度強化學習課程文件

Unity ML-Agents 如何工作?

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

Unity ML-Agents 如何工作?

在訓練我們的智慧體之前,我們需要了解 ML-Agents 是什麼以及它是如何工作的

什麼是 Unity ML-Agents?

Unity ML-Agents 是遊戲引擎 Unity 的一個工具包,它允許我們使用 Unity 建立環境或使用預設環境來訓練我們的智慧體

它由 Unity Technologies 開發,Unity Technologies 是 Unity 的開發者,Unity 是《看火人》、《茶杯頭》和《城市:天際線》的創作者所使用的最著名的遊戲引擎之一。

Firewatch
《看火人》是使用 Unity 製作的。

六個組成部分

Unity ML-Agents 有六個基本組成部分

MLAgents
來源:Unity ML-Agents 文件
  • 第一個是 學習環境,它包含 Unity 場景(環境)和環境元素(遊戲角色)。
  • 第二個是 Python 低階 API,它包含 用於與環境互動和操縱環境的低階 Python 介面。它是我們用來啟動訓練的 API。
  • 然後,我們有 外部通訊器,它 連線學習環境(用 C# 製作)和低階 Python API(Python)
  • Python 訓練器用 PyTorch 製作的強化學習演算法(PPO、SAC 等)
  • Gym 封裝器:將 RL 環境封裝在 gym 封裝器中。
  • PettingZoo 封裝器:PettingZoo 是 gym 封裝器的多智慧體版本。

學習元件內部

在學習元件內部,我們有 兩個重要元素

  • 第一個是 智慧體元件,場景中的參與者。我們將 透過最佳化其策略來訓練智慧體(這將告訴我們在每個狀態下采取什麼行動)。該策略被稱為 大腦
  • 最後是 學院。該元件 協調智慧體及其決策過程。將此學院視為處理 Python API 請求的老師。

為了更好地理解其作用,讓我們回顧一下強化學習過程。這可以建模為一個迴圈,其工作方式如下

The RL process
強化學習過程:狀態、動作、獎勵和下一個狀態的迴圈
來源:《強化學習:導論》,Richard Sutton 和 Andrew G. Barto

現在,讓我們想象一個智慧體學習翫平臺遊戲。強化學習過程如下所示

The RL process
  • 我們的智慧體從 環境 中接收 狀態 S0S_0 — 我們接收到遊戲的第一幀(環境)。
  • 根據該 狀態 S0S_0 智慧體採取 行動 A0A_0 — 我們的智慧體將向右移動。
  • 環境進入一個 狀態 S1S_1 — 新幀。
  • 環境給智慧體一些 獎勵 R1R_1 — 我們沒有死 (正獎勵 +1)

這個強化學習迴圈輸出一個 狀態、行動、獎勵和下一個狀態 的序列。智慧體的目標是 最大化預期累積獎勵

學院將是 向我們的智慧體傳送指令並確保智慧體同步 的機構

  • 收集觀察
  • 使用你的策略選擇你的行動
  • 採取行動
  • 如果達到最大步數或完成,則重置。
The MLAgents Academy

現在我們瞭解了 ML-Agents 的工作原理,我們已經準備好訓練我們的智慧體了。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.