學界 | OpenAI競爭性自我對抗訓練:簡單環境下獲得複雜的智能體

 2017-10-12 14:47:00.0

原標題:學界 | OpenAI競爭性自我對抗訓練:簡單環境下獲得複雜的智能體

選自:OpenAI

參與:蔣思源、劉曉坤

OpenAI 近日表示通過自我對抗訓練的競爭性多智能體可以產生比環境本身複雜得多的行爲。該研究基於 Dota2 的自我對抗訓練成果進一步研究了該機制的特點與優勢。此外,OpenAI 表明自我對抗訓練有助於實現遷移學習,將會成爲 AI 系統的核心部分。

GitHub 項目地址:https://github.com/openai/multiagent-competition

我們發現自我對抗(self-play)可以在沒有具體預先設計這些技能的環境中,讓模擬 AI 自主發現並學習身體技能如扭、閃避、僞裝、踢、抓以及魚躍撲球。自我對抗能確保環境對 AI 保持適當的難度以幫助其提升技能。加上我們 DOTA2 自我對抗成果的證明,我們越加相信自我對抗將會成爲未來強大 AI 系統的核心部分。

我們在很多基本的遊戲中爲多個模擬 3D 機器人設置了競爭因素,爲每一個智能體設置簡單的目標從而得到訓練(比如將對手推出相撲圈外;到達另一邊;同時阻止對手做同樣的事情。把球踢入網中,並阻止對手做同樣的事情,等等),然後分析它們在訓練期間使用的各種策略。

智能體起初通過能幫助探索的行爲(如站立和前進)能收到密集的獎勵,當需要決定輸贏的時候,這些獎勵就會退化爲零,因爲系統只會對競爭結果進行獎勵。儘管獎勵設置很簡單,但是智能體也能學到機智的行爲如扭、閃避、僞裝、踢、抓以及魚躍撲球等。每一個智能體的神經網絡策略都獨立使用近端策略優化(Proximal Policy Optimization)進行訓練。

爲了理解簡單目標和競爭壓力的組合是如何產生複雜行爲的,我們來分析相撲摔跤運動任務。在這裏我們採用之前研究(https://arxiv.org/abs/1506.02438)中定義的密集獎勵訓練仿真行走機器人,我們刪除速度因素,添加距離相撲圈中心的負 L2 範數距離,並把它作爲相撲智能體的密集探索獎勵。起初,智能體使用這種獎勵機制在圈內探索,然後我們逐漸緩慢地將其退化爲零,從而智能體開始學會優化競爭獎勵,即在餘下的訓練迭代中,努力把對手推到圈外。

雖然設計需要所有這些技巧的任務和環境是可能的,但這對人類設計師而言,這需要精力和獨創力,而智能體的行爲會因爲人類設計師的侷限性而導致的問題複雜度的限制。通過讓智能體迭代數千次競爭而不斷髮展出更好的版本,我們成功地創造出能自主引導(bootstrap)行爲的 AI 系統。在我們的 Dota2 項目中,也發現了類似的現象,我們通過自我對抗創造了在電子競技中可以打敗頂尖人類玩家的強化學習智能體。

遷移學習

智能體在相撲數據集中訓練,然後遷移到在風中站穩的任務

這些智能體還展示了遷移學習的潛力,即智能體將從一個環境中學到的技能應用到以前未曾見過的情況。在案例中,我們先實現了智能體在相撲任務中的自我對抗訓練,然後令其完成受風力干擾的站立任務。智能體儘管沒有見過模擬風力的環境或觀察到風力,但它仍然能保持直立,而使用經典強化學習算法在行走任務下訓練的智能體,在新環境中很快就摔倒了。

智能體在使用經典強化學習訓練行走任務後,遷移到風中站穩的任務

過擬合

我們的智能體使用合作學習策略(co-learning policies)會出現過擬合情況。因爲這些策略正好是針對具體的對手,所以面對有不同特徵的新智能體時,我們的智能體會出現誤差。我們通過將每個智能體與不同的幾個而不是一個對手進行訓練以解決這種過擬合現象,這些可能的對手來自於在早期訓練過程中並行訓練策略的集成。鑑於對手的多樣性,智能體需要學習一般策略,而不僅僅是針對特定對手的策略。

論文:Emergent Complexity via Multi-Agent Competition

論文地址:https://arxiv.org/abs/1710.03748

摘要:強化學習算法可以訓練智能體以在複雜和真實的環境中解決問題。通常,經訓練的智能體所擁有的複雜度和訓練環境的複雜度密切相關。這表明強大的智能體一般需要在複雜的環境中訓練。在本論文中,我們表明通過自我對抗(self-play)訓練的競爭性多智能體環境可以產生比環境本身複雜得多的行爲。我們同樣表明這樣的環境帶有自然而成的課程(natural curriculum),因爲對於任何技能水平,充滿該階段智能體的環境將會有適當的難度而訓練更好的智能體。該項研究工作還介紹了幾項競爭性多智能體環境(competitive multi-agent environments),其中智能體在 3D 物理模擬世界中進行競爭。即使環境比較簡單,訓練過的智能體也學習到了各種複雜而有趣的技能。例如奔跑、攔截、躲避、搶斷(tackling)、愚弄對手等技能。更多學習的技能請查看:https://goo.gl/eR7fbX。

原文鏈接:https://blog.openai.com/competitive-self-play/

本文爲機器之心編譯,轉載請聯繫本公衆號獲得授權。

責任編輯:

文章來源:機器之心