丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網賬號安全和更好的產品體驗,強烈建議使用更快更安全的瀏覽器
此為臨時鏈接,僅用于文章預覽,將在時失效
人工智能 正文
發(fā)私信給WBLUE
發(fā)送

0

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

本文作者: WBLUE 編輯:楊曉凡 2018-09-27 13:59
導語:嵌入只能用于自然語言處理?不!它還可以用來教OpenAI的機器人打Dota2,真正的人機大戰(zhàn)從嵌入開始。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

雷鋒網 AI 科技評論按:OpenAI 的 DOTA2 5v5 AI 「OpenAI Five」是人工智能界今年的一大亮點。作為「有挑戰(zhàn)性的多智能體連續(xù)控制任務」、DOTA2 玩家們的課外娛樂活動,以及 OpenAI 自己的重要技術展示和宣傳機會,OpenAI 不僅有數人的團隊專門負責這個 AI 的研發(fā)調試,投入了 256 個 V100 GPU、128000 個 CPU、長達幾個月的訓練時間(高昂的成本),也前前后后請了許多 DOTA 愛好者及(前)職業(yè)選手參與測試和調試。

成果自然是可圈可點的。從比賽結果來看,OpenAI Five 不僅多次戰(zhàn)勝了業(yè)余人類玩家和前職業(yè)選手團隊,即便對戰(zhàn)現(xiàn)役職業(yè)選手以及中國老職業(yè)選手們的比賽輸了,也仍有積極主動、有一些還十分亮眼的表現(xiàn);技術方面,OpenAI 不僅發(fā)現(xiàn)用相對簡單的網絡結構配合大規(guī)模分布式的先進算法就已經可以有不錯的表現(xiàn),也在訓練過程設計、超參數選擇、人類目標如何量化等方面有了許多心得。(參見往期文章 DOTA 5v5 AI 的亮點不是如何「學」的,而是如何「教」的)甚至后來 OpenAI 的 CTO Greg Brockman 都發(fā)推表示,他們根據比賽中的表現(xiàn)對模型又做一些更新,AI 的表現(xiàn)也來到了新的高峰。

如果深入探究的話,雖然 OpenAI 自己沒有給出詳細的模型設計解釋,但是也有熱心研究人員在查找資料,試圖找到更多解釋這個 AI 能有如此表現(xiàn)的原因。比如塔爾圖大學計算機學院計算神經科學實驗室的 Tambet Matiisen,他找到的其中一個重要原因,就是模型對嵌入的妙用。雷鋒網 AI 科技評論把他的解析文章全文翻譯如下。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

雖然關于 OpenAI 的 AI 的舉止以及關于這些比賽對于整個 AI 界的意義的討論已經不少了,但關于這些 AI 的訓練方法和網絡架構的技術分析異常地少。到目前為止,技術分析主要都源于最初 OpenAI Five  的博客文章。在某種程度上他們確實說得挺合理,他們使用標準 PPO 算法(幾年前他們自己發(fā)明的)和經過驗證確實有效的自我訓練方案(也在他們的一篇論文中記錄)是合理的。但博客文章中有一個容易錯過的細節(jié),那就是指向他們的網絡架構圖的一個超鏈接。

在這篇博文中,我想集中討論他們網絡架構的一個方面,即他們創(chuàng)造性地使用嵌入來處理數量巨大并且可變的策略輸入和輸出。雖然嵌入以及注意力機制的點乘積的應用是自然語言處理中的標準技術,但它們并未廣泛用于強化學習中。

更新:在撰寫此博客文章后,我了解到后來的一篇 OpenAI 博客文章中有一個較新版本的網絡架構圖。由于嵌入的使用沒有太多差異,我決定不重新更新這篇文章的圖像了,新網絡的分析可以作為大家的作業(yè)。

什么是嵌入?

在數學中,嵌入指的是從空間 X 到 Y 的映射,同時保留對象的一些結構(例如它們的距離)。然而,在神經網絡的上下文中使用嵌入通常意味著將分類(離散)變量(例如,單詞索引)轉換為連續(xù)向量。直接將單詞索引作為輸入傳遞給網絡將使其工作變得非常困難,因為它需要為每個索引值都提供一個二進制特征(假設它們是不相關的)。于是,我們通過一個網絡將分類值轉換為 one-hot (獨熱)矢量。如果將獨熱矢量與權重矩陣相乘,這就相當于從權重矩陣中選擇一個給定的行。在各類神經網絡開發(fā)庫中,通常會跳過轉換為獨熱矢量并乘以權重矩陣的步驟,而是直接使用索引從權重矩陣中選擇一行,并將其視為查找表。其中最重要的方面是,嵌入向量是通過學習得到的,就像使用獨熱向量學習權重矩陣一樣。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

自然語言處理是嵌入應用最有名的領域,其中單詞索引被轉換為詞向量(或嵌入)。已經有充足的例子表明,當訓練網絡從字向量預測其周圍單詞的向量時,詞向量就能學習到一些語義信息,并且它們之間可以進行算術運算。例如「woman - man + king」產生接近「queen」的矢量。你可以看作是「woman - man」產生性別轉移向量,添加「king」將其轉換為女性統(tǒng)治者。另一種理解方式是,你構造了「king - man + woman」,那么「king - man」產生「ruler」(統(tǒng)治者)的矢量,并添加「woman」產生「queen」。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

圖片來自 https://www.aclweb.org/anthology/N13-1090 

OpenAI Five 網絡

在我們深入研究具體細節(jié)之前,先簡單介紹一下 OpenAI Five 的總體網絡架構。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

OpenAI Five 的五個 AI 玩家每一個都有自己單獨網絡,有自己的輸入和動作。(不確定五個網絡的參數是否共享。)五個 AI 之間唯一的聯(lián)系是通過游戲,我個人開始想象他們會不會采用類似于「蜜蜂舞」的行為將敵人的位置傳達給彼此,但我不認為他們真的會這樣做,甚至不需要這樣做。更新:在較新版本的網絡中,AI 之間有一個共享的最大池化層,可以將其視為單向廣播通信信道。

圖中網絡的上半部分處理觀察結果。它將來自各種來源的數據連接起來,并將所有內容傳遞到一個 LSTM單元格中。該 LSTM 單元的輸出由網絡的下半部分用于產生動作。簡而言之,就是觀察過程,將它們提供給 LSTM 并產生動作的一個簡單過程。當然,細節(jié)決定一切,這將是我們在下一節(jié)中討論的內容。

觀察的嵌入

OpenAI Five 的 AI 使用 Dota 2 的 API 來「看到」周圍的單位和建筑物。這會產生可變長度的單位列表(英雄,小兵,塔等)及其屬性。OpenAI 在他們的博客文章中對觀測空間和動作空間可視化做的很好,我建議大家去原博客里感受一下 https://blog.openai.com/openai-five/#dota-diagram  。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

下圖總結了對于列表中的某一個單位的處理過程。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

在左上方我們可以看到每個單位被編碼成一個嵌入,這是完全可行的,因為 Dota2 中的 116 個英雄可以根據不同方式進行分類:

  • 主要屬性:力量,靈活性,智力。

  • 攻擊類型:遠程或近戰(zhàn)。

  • 作用:核心,控制,對線輔助,先手,打野,輔助,耐久,爆發(fā),推進,逃生。

其中的每一個特性都可能在嵌入向量中形成一個維度,并且網絡可以自動學習每個英雄中的核心、輔助或打野的成分是多少。 相同的嵌入也適用于小兵和建筑物,例如塔也有遠程攻擊。這樣就形成了一種通用的方式,在網絡內表示各種不同的單位。嵌入向量與其他單位屬性(如血量,英雄距離等)聯(lián)系在一起。

嵌入不僅僅可以用于單位的類型,它們也用于天賦、技能和物品。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

同樣它也是有理可依的——雖然所有英雄的技能都不同,但它們肯定有一些共性,例如:他們的技能是主動施放還是被動,如果他們需要目標,那么這個目標是另一個單位還是一個區(qū)域等。對于物品的話,有用于治療的血瓶,有增加魔法值的,有立即消耗的,還有用于升級的物品。嵌入是一種自然的方式,用來表示具有許多不同特性但可能有交叉特性的東西,以及表示那些在不同程度上可能具有相似效果的東西。

請注意,雖然天賦、技能和物品的數量是可變的,但最大池化層會覆蓋到每個列表。這意味著只有所有這些維度中的最高值才能被輸出。乍一看這樣似乎不太合理,因為以人的思路來考慮的話,你擁有的能力是所有現(xiàn)有能力的組合,例如:遠程+被動治療。但它似乎對 AI 來說很有用。

以上處理是針對每個相鄰的單位獨立完成的,一般屬性、英雄天賦、技能和物品的結果都會連接在一起。然后應用不同的后處理,根據它是敵方非英雄(如敵方塔)、友方非英雄(己方塔)、中立(野怪)、友方英雄或者敵方英雄。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

最后,后處理的結果在該類型的所有單元上取最大值。同樣,乍一看這似乎是有問題的,因為鄰近單元的不同特性會被組合,例如,如果其中一個維度代表一個單位的健康狀況(血量),那么網絡只會看到相同類型單位的最大健康狀況。 但是,再一次,從模型的表現(xiàn)看來并不是不行。

最大池化將每種單元類型的最大結果連接起來,然后輸入給 LSTM。輸出的前半部分也有分片,不過下面我們講到動作目標的時候再接著說這件事。

動作的嵌入

Dota 2 中大概有 170,000 個不同的動作,包括正常的動作,如移動和攻擊,還包括技能施放、物品使用、狀態(tài)升級等。在每個時間點上并非所有操作都可以使用——比如可能還沒有學這個技能,或者背包里沒有這個裝備。但你仍然可以使用大約 1000 種不同的操作。此外,許多動作都有參數,例如你想要移動到什么區(qū)域或你想要攻擊哪個敵人。OpenAI在博文中也展示了很好的動作空間的可視化。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

這其實給強化學習帶來了一個巨大的探索問題,因為智能體最初是通過嘗試隨機動作開始學習的。最直白的方法是計算所有 170,000 個動作的分數,并將 softmax 限制為 1000 個當前可以進行動作。但 OpenAI 通過嵌入和可變長度的 softmax 層巧妙地解決了這個難題。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

正如這張圖最上方顯示的,每個動作都有一個嵌入,例如,無論是遠程攻擊還是使用物品進行治療或傳送到某個目的地。動作嵌入和 LSTM 輸出結果的點乘積用于產生不同動作的分數。這些分數會經過 softmax層,結果的概率分布用于選擇一個可用的動作。

旁注:兩個向量之間的點乘積會把向量中的元素分別相乘,并對相乘后的結果求和。有時它也被稱為標量積,因為它產生單個標量值。它與余弦相似性有著密切的關系——當向量指向相同方向時,它傾向于產生高值,而當指向相反方向時,它往往產生低值。它通常用作兩個向量相似性的快速評分方法。實際上,這正是卷積運算所做的——它產生了濾波器和輸入之間相似性的特征圖。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

我猜測,選擇一個行動的過程實際上是讓 LSTM 產生的一個原則上可以被稱為「意圖向量」的東西。例如,如果你處于困境并且血量非常低,那么意圖就是「離開這里」。將此意圖與可用操作匹配,如果與其中一個操作相一致,則會產生高分。例如,「移動」和「TP」兩個動作可能與「離開這里」的意圖很好地對齊。TP 可能稍微對齊的更好些,因為你不會被敵人追到,因此它在 softmax 之后產生更高的分數和更高的概率。但是如果目前 TP 不可用,那么這種嵌入就不匹配了,「移動」可能是得分和概率最高的。

某些操作具有參數,如目的地或目標。所有這些都使用 softmax 層以簡單直接的方式建模。例如,X 和 Y 坐標被離散化為范圍,而不是使用連續(xù)輸出和高斯分布。我猜測 softmax 可以更好地處理多模態(tài)分布。這里我們發(fā)現(xiàn)了一個重要的點是,動作輸出似乎并不能對動作以及動作目標之間的聯(lián)合分布建模。我認為這不是問題,因為所有動作輸出都以 LSTM 輸出為條件。因此,LSTM 輸出已經編碼了「意圖」,而那些全連接層只是解碼了這個「意圖」的不同方面——動作及其目標。

我最喜歡的部分是 OpenAI Five 如何處理目標。還記得那些來自單位觀測輸出的奇怪切片嗎?這些在圖上用藍色表示,這意味著它們是對每個單位都有一個單獨的切片。這些向量稱為「單元注意鍵」,并與 LSTM「意圖」匹配,以產生對于每個單位的分數。這些分數通過 softmax 并確定攻擊單位。選取被觀察到的單位時再次使用了 softmax,從可用的動作的中選取動作的時候也是一樣。

我猜測模型是這樣工作的:根據觀察的結果,網絡確定某個單位的血量確實很低,AI 有機會去搶這個人頭。LSTM 產生意圖「嘗試最后一擊」,與「攻擊」行動很好地對齊。此次「嘗試最后一擊」意圖與觀察處理的每單位輸出相匹配,并與血量低的單位很好地對齊。Bang——你完成最后一擊并獲得額外的賞金。

更新:在更新版本的網絡中,他們先用動作嵌入來調制 LSTM 輸出,再使用單位注意鍵產生點乘積前,我猜如果不做這個更改的話,不同的動作(例如攻擊和治療)就會鎖定到一個單位上去。

總結

在分析 OpenAI Five 網絡之后,很明顯網絡的大多數部分都在處理感知(觀察預處理)和運動控制(解碼動作)任務。而所有戰(zhàn)略和策略必須由同一個地方產生——即1024個單位的LSTM。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

我認為這樣一個相對簡單的數學結構就可以產生如此復雜的行為是令人驚奇的?;蛘撸也皇呛艽_定,但是其實這表明 Dota 2游戲的復雜性也不過如此?短期策略與快速反應時間的結合已經可以擊敗長期策略了嗎?這還有待我們繼續(xù)研究和討論。

感謝 Jaan Aru,TanelP?rnamaa,Roman Ring 和 Daniel Majoral 的提出的精彩見解和討論。

via neuro.cs.ut.ee,雷鋒網 AI 科技評論編譯

雷峰網原創(chuàng)文章,未經授權禁止轉載。詳情見轉載須知。

論嵌入在 OpenAI 的 5v5 DOTA2 AI 中的妙用

分享:
相關文章

知情人士

當月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個人簡介
為了您的賬戶安全,請驗證郵箱
您的郵箱還未驗證,完成可獲20積分喲!
請驗證您的郵箱
立即驗證
完善賬號信息
您的賬號已經綁定,現(xiàn)在您可以設置密碼以方便用郵箱登錄
立即設置 以后再說