Skip to main content

3 posts tagged with "machine learning"

View All Tags

· 3 min read
Wei Ji

作為一個 Minecraft 玩家,同時也是對人工智慧有興趣的工程屍,最近發現了一個新玩具:Project Malmo。以 Minecraft 這種大眾化的遊戲與近幾年特別熱門的人工智慧而言;這個項目的曝光度和資料未免也太少了吧!?雖然不知道多久之後會棄坑,不過就把手邊掌握的資訊整理一下並分享出來吧!ᕕ ( ᐛ ) ᕗ

發展

源自於微軟內部一個名叫 Project AIX 的項目1,於 2016 年開源釋出;並被命名為 Project Malmo。

微軟分別於 2017 (Project Malmo Collaborative AI Challenge ) 和 2018 (MARLO 2018) 年舉辦的人工智慧競賽就是基於該框架進行的。

Carnegie Mellon 大學的研究團隊利用該框架開發了 MineRL 框架2,這促成了日後在 NeurIPS 2019 舉辦的 MineRL 鑽石挑戰 (MineRL Competition 2019),而該競賽已經於今年 (2021) 進入了第三屆,並已經開始了第一階段的賽事。

架構

稍微瀏覽了 Malmo 的程式碼3,了解到它的架構大致如下:

也就是 server-client 架構,只是在這裡的 server 端才是那個有視窗的一方(笑)。

當運行了 server 端的啟動腳本,它會透過 Gradle 下載一個修改過得 Minecraft 1.11.2,直到遊戲視窗開啟。

乍看之下就像一般的 Minecraft 遊戲,你甚至可以點開單人遊戲開一張生存模式的圖開始遊玩(進入遊戲後你會發現不能用滑鼠操作視角,然而這是可以切換的),但是實際上它已經透過指定的埠口作為 server 端在運作了,並且等待來自 client 端的指令。

接著運行使用 API 的程式,我們會發現遊戲主程式被「遙控」了,開始根據透過 API 提供的資訊建立場景,並且在遊戲開始後,外部程式能夠透過 API 操作遊戲內的人物在 Minecraft 的世界中活動(當然也可以透過 API 獲取遊戲內的資訊)。

Footnotes

  1. Microsoft Project AIX is an open source Minecraft-based artificial intelligence solution. (Brian Fagioli). Retrieved 2021-07-18, from https://betanews.com/2016/03/14/microsoft-project-aix-open-source-minecraft-artificial-intelligence/

  2. Project Malmo competition returns with student organizers and a new mission: To democratize reinforcement learning - Microsoft Research. (Microsoft). Retrieved 2021-07-18, from https://www.microsoft.com/en-us/research/blog/project-malmo-competition-returns-with-student-organizers-and-a-new-mission-to-democratize-reinforcement-learning/

  3. Malmö. (Microsoft). Retrieved 2021-07-18, from https://github.com/microsoft/malmo

· 4 min read
Wei Ji

第一階段:一般規則

在這個階段中,團隊最多可以有六名成員,以下為參賽流程:

  1. 在 AICrowd 競賽網站上註冊並使用下列資料。 或者,可以使用競賽的頁面上找到 "Create Team" 的按鈕組建隊伍(必須登入才能創建隊伍)。
    1. 用於運行競賽任務環境的入門代碼。 另請參閱 AICrowd 上的 "Notebooks" 部分。
    2. 主辦方提供的基本實作
    3. 人類玩家的資料集
    4. 主辦方用來評分參賽隊伍提交模型時使用的 Docker image 和入門模板
    5. 支援主流的付費雲端運算服務,用於測試參賽者提交的樣本效率。
  2. 使用主辦方提供的人類玩家資料集來開發與測試模型的訓練效果,以製作出能達成比賽課題的程式。
  3. 編寫以及訓練參賽隊伍的 agents。
    1. Intro 組,撰寫/訓練他們的模型以達成 MineRLObtainDiamond-v0 環境課題。 當他們對模型感到滿意時,提交他們經過訓練的模型進行評分。
    2. Research 組,在四天內只能使用 8,000,000 個環境樣本訓練他們的模型以達成 MineRLObtainDiamondVectorObf-v0 環境課題。 提交的模板將包含用於訓練和評分 agent 的腳本(在評分的伺服器上也是使用相同的腳本)。
  4. 當參賽隊伍對模型感到滿意時,提交他們經過訓練的模型進行評分。 自動化評分系統會將提交的程式放置在測試用的環境中進行評分,並計算與回報競賽排行榜上的積分。
  5. 重複步驟 2 到步驟 4 直到第一屆階段截止!

當第一階段完成後,主辦方將會:

  • 檢查排行榜上分數最高的提交的程式碼,以確保其符合比賽規則。
  • Research 組
    • 符合比賽規則的最高分提交將自動由比賽編排平台重新訓練。
    • 執行生成的模型數百回合並對其評分,以決定最終排名。
    • Fork 團隊提交的程式碼,並清除任何大於 30MB 的文件,以確保參與者在後續輪次中不使用任何預先訓練的模型。

第二階段:決賽 (僅適用 Research 組)

在這個階段中中,來自 Research 組的前 15 名團隊將繼續開發他們的算法。 他們的作品將會在某種對所有參賽者保密的環境與額外的資料集中進行測試與評分。

參賽者將能夠在第 2 階段期間每兩週提交最多一次程式碼。對於每次提交,自動評分器將在額外的測試數據集和模擬器上訓練他們的程序,評分訓練後的模型,並報告分數和指標返回給參賽者。最終排名將基於每個團隊在第二階段中表現最好的提交 。

原文:https://www.aicrowd.com/challenges/neurips-2021-minerl-diamond-competition#competition-structure

· 8 min read
Wei Ji

以下規則指出了整個比賽的精神,任何被發現違反規則的提交都可能被主辦方註銷參賽資格。

一般規則

以下規則適用於兩種組別(Intro 組和 Research 組)。

  • MineRL Diamond 挑戰的參賽作品必須是「公開的」。 團隊將被期望透露他們方法的大部分細節,包括原始碼(對於等待出版的刊物可能會有特殊的例外)。
  • 對於有資格進入最後階段賽程(Intro 組第一階段,Research 組第二階段)的團隊,每個成員必須滿足以下所有條件:
    • 年滿 18 歲且至少達到居住地的成年年齡
    • 不居住在受美國出口法規約束的任何地區或國家
    • 不是本次比賽主辦方的工作人員,也不是主辦方工作人員的家庭成員。
  • 優勝者者必須參加 NeurIPS 研討會,才能從我們的讚助商那裡獲得獎項。
  • 一個團隊可以同時向兩個組別分別提交作品; 不同組別中的表現將單獨評分。 兩個作品之間不會互相影響。
  • 與環境的交互必須通過 "step" 函式,只能使用提供的 Gym 界面。 不得以任何方式從模擬器中提取附加信息。
  • 官方規則說明將在 AIcrowd 網站上的常見問題解答中進行。
    • FAQ 將會張貼在 AIcrowd 頁面。
    • FAQ 中的答案是官方的正式回應。 任何非正式的回答(例如,通過電子郵件)都將被 FAQ 中的回答所取代。

Research 規則

這些附加規則僅適用於 Research 組。

  • 成品必須在不依賴人類領域知識的情況下訓練機器學習模型。
    • 不可以使用基於人工調適或 hard-coded 的狀態獎勵函數。例如,接近像是樹的物件時給予獎勵是被禁止的;但是根據陌生的新狀態給予獎勵 (curiosity rewards) 則是被允許的。
    • 不可以人工影響 actions/meta-actions/sub-actions/sub-policies。例如,機器學習的多層控制器是被准許的,而 meta-controllers 不能基於人工設定的條件來選擇 policies,像是判斷 agent 的背包中是否有特定物品。此限制包括動作的組合,例如,「持續向前走兩秒」或「敲下原木並放置合成台」。
    • 除幀堆疊 (frame-stacking) 外,狀態處理/預處理不能硬編碼。例如,agent 可以根據最後兩個觀察結果並在每個偶數的幀數做出反應,但是不能使用人工指定的邊緣檢測器在觀察上。另外一個例子,agent 可以對讀觀察歷史或數據集歸一化成 z-score 。
    • 為了確保附加到動作和觀察標籤的語義不被利用,分配給動作和觀察的標籤已被混淆(在數據集和環境中)。 行動和觀察(POV 觀察除外)已被嵌入到不同的空間中。 另外,在第二階段提交期間,將重新嵌入操作。 任何繞過這些混淆的嘗試都將構成對規則的違反。
    • 模型只被訓練用於與 -VectorObf 結尾的 MineRL 環境互動。所有 MineRL 環境都有特定的競賽版本,其中包含動作和觀察空間混淆。 它們都共享相似的觀察和動作空間嵌入,這些嵌入在第二階段時會被調整。
    • 培訓預算有限。 除了提供的數據集之外,還可以與模擬環境互動 8,000,000 次。 如果疊加觀察/重複動作,那麼每個跳過的幀仍然計入此預算。
  • 參與者只能使用提供的數據集; 源文件提交中不得包含其他數據集,也不得在訓練途中下載,但在 6 月 5 日之前就被公開且可用的預訓練模型則是被允許的。
    • 在對提交的程式進行測試時,各個容器將無法訪問任何外部網絡,以避免任何信息洩漏。 添加了相關例外,以確保參與者可以下載和使用流行框架(如 PyTorch 和 TensorFlow)中包含的預訓練模型。 參與者可以請求為任何其他公開可用的預訓練模型添加網絡例外,這些模型將由 AICrowd 逐案驗證。
    • 將清理所有提交的代碼存儲庫以刪除大於 30MB 的文件,以確保參與者不會檢查在已發布的訓練數據集上預訓練的任何模型權重。
    • 不准許使用在 MineRL 訓練得預訓練模型,或是使用和 Minecraft 有關或無關的資料訓練的預訓練模型。該規則的目的是允許參與者使用在 ImageNet 或類似數據集上訓練過的模型。 不要濫用這項規則。
  • 第一階段的比賽程序如下:
    • 在第一階段時,團隊必須提交程式碼在指定平台上來訓練他們的模型。 並且必須在四天內中止訓練。
    • 對於測驗分數最高的團隊,將檢查此程式碼是否符合規則。
    • 對於發現違規的提交,將聯繫違規團隊進行申訴。 除非上訴成功,否則主辦方將從比賽中刪除這些提交的內容,然後測驗其他提交的內容,直到第二階段額滿為止。
    • Research 組的前 15 名團隊將進入第二階段。
  • 第二階段的比賽程序如下:
    • 在第二階段中,團隊最多每兩週提交一次他們的程式碼。
    • 每次提交後,模型將在重新渲染的私有數據集和域上訓練四天,團隊將收到他們模型的最終表現。 數據集和 domain 將包含對動作空間和觀察空間的匹配度。
    • 在回合結束時,最終排名基於每個團隊在第二階段中表現最好的提交。

原文:https://www.aicrowd.com/challenges/neurips-2021-minerl-competition/challenge_rules