日本在线看黄a美女久草|日本动漫亚洲在线一区|日韩人妻无码免费视频|A√有码中文字幕|日韩一级片视频热久久久|一区二区三区四区精品无码在线|亚洲AV成人无码一二三app|亚洲综合图片绯色|91极品人妻在线网站|国产成人精品一区二三区四区五区

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

0

微軟主辦,首屆世界文本挑戰(zhàn)賽獲勝方案筆記來啦

本文作者: skura 2019-11-04 16:46
導(dǎo)語:冠軍親述

微軟主辦,首屆世界文本挑戰(zhàn)賽獲勝方案筆記來啦

在文本世界中玩游戲

第一個文本世界( textworld)挑戰(zhàn)賽是由微軟研究組織的機器學(xué)習(xí)比賽,比賽于 2019 年 1 月至 7 月進行,目標(biāo)是建立一個能夠玩基于文本的游戲的代理。代理不能是硬編碼規(guī)則的集合,他們必須從提供的大量集合中學(xué)習(xí)玩游戲。

我的解決方案在游戲隱藏測試集中以 91.9%(70.8% 的殘障)的原始分數(shù)贏得了比賽。

在文本游戲中,典型的流程是讓游戲引擎只返回初始介紹文本,然后根據(jù)玩家輸入的命令返回反饋文本。在這個文本世界的競賽中,我們有可能從游戲引擎獲得更多的信息,使代理決策更容易。附加信息列表包括游戲中使用的動詞列表、命令模板列表、實體列表、食譜或給定游戲狀態(tài)的可接受命令列表。通過選擇獲得這些額外的信息,我們的分數(shù)(殘差)會降低一個百分比。我的第一個方法是忽略分數(shù),使用所有可能的信息,試圖建立一個解決更多游戲的代理。我的初始代理使用的是可接受的命令,因此對于每個位置,代理都有一個可能的命令列表,只需要從列表中選擇要使用的最佳命令。

例如,在此場景中:

地點: Kitchen =- Ah, the kitchen。這是一種廚房,對這個地方來說說很普通,處于一種美妙的氛圍中…

庫存:你帶的是:一個桔子甜椒,一個生的紫色土豆,…

食譜:食譜 1 收集以下所有配料,按照說明準(zhǔn)備這頓美味的飯菜…

可接受的命令:關(guān)上門,用烤箱煮桔子甜椒,放下紫薯,往南走,…

我將游戲狀態(tài)定義為位置、庫存和食譜描述。此外,我在清單中添加了元素的數(shù)量,因為在某些游戲中,清單中的項目限制為 3 個,代理可能需要在獲取新項目之前刪除一些清單。在文本中顯式地使用數(shù)字可以使模型更容易地學(xué)習(xí)這種關(guān)系。

<number of items sin inventory><inventory text><recipe text><location text>

利用博弈狀態(tài)和可接受命令列表,我訓(xùn)練了一個二進制模型,該模型預(yù)測給定命令成為博弈狀態(tài)的正確命令的概率。在運行所有命令之后,它使用概率對命令進行排序。對于這個模型,我使用了一個預(yù)先訓(xùn)練的 bert 模型(12 層無基礎(chǔ)模型)和一個用于二分類的頭部。模型輸入是一對句子,第一句是游戲狀態(tài),第二句是命令。這與問答模型的公式相同。

文本世界在訓(xùn)練模式下提供的另一個附加信息是解決游戲的正確命令序列。為了訓(xùn)練模型,我生成了一個數(shù)據(jù)集,其中包含游戲狀態(tài)和正確的命令(正樣本)、相同的游戲狀態(tài)以及從允許的命令列表中采樣的其他命令(負樣本)。我為每個游戲狀態(tài)采樣了最多 8 個錯誤命令。為了測試和驗證,使用了 200 個游戲,其余的用于訓(xùn)練模型。

模型共訓(xùn)練 5 個階段,學(xué)習(xí)速率為 2e-5。批處理大小為 14,最大序列長度為 342(選擇的參數(shù)符合所用 8GB GPU 的內(nèi)存限制)。模型是使用 pytorch 和 transformers 實現(xiàn)的。

通過這個模型,代理能夠得到每個可接受的命令是正確命令的概率。為了決定使用什么命令,我應(yīng)用了一個類似 ucb1 的公式,基于在給定狀態(tài)下嘗試命令的次數(shù),增加代理探索較少嘗試命令的概率。在游戲過程中,增加在每個狀態(tài)下每個命令執(zhí)行次數(shù)的計數(shù)器。

在執(zhí)行過程中,由于每個游戲都玩了 10 次,我添加了一個簡單的規(guī)則來捕獲使游戲過早結(jié)束(當(dāng)玩家死亡時)的命令,并且在下一次運行游戲時,此命令將對模型分數(shù)有很大的懲罰,因此代理永遠不會重復(fù)它。

當(dāng)代理從位置 A 向北到達位置 B 時,在 B 位置將有一個南出口。當(dāng)A 到達新位置時,該模型很好地預(yù)測在該位置上是否有一些動作,或者它是否應(yīng)該繼續(xù)導(dǎo)航。

UCB1 調(diào)整的模型概率和兩個簡單的規(guī)則是代理解決游戲驗證集所需要的全部內(nèi)容。

接下來,我讓代理搜索菜單,并閱讀菜單中的食譜,而不是在附加信息中使用菜單(以減少分數(shù)上的障礙)。為此,我不得不重新編寫解決游戲問題的命令序列,首先導(dǎo)航到菜單并閱讀食譜,然后執(zhí)行操作。這產(chǎn)生了一個不同的數(shù)據(jù)集,用于訓(xùn)練新版本的模型。在游戲狀態(tài)下,當(dāng)代理不知道食譜時,該部分文本設(shè)置為「缺少食譜」。這就足以讓模型學(xué)會不同的行為,當(dāng)食譜丟失時,模型會預(yù)測更高的導(dǎo)航概率,直到找到食譜,在這之后,它才會預(yù)測食物的元素。

在一個較低級別中,我們有一個完整的列表,上面有所有游戲可能的命令模板。命令模板顯示了要由實體填充的動詞、介詞等,下面的列表顯示了一些示例。總共有 31 個模板。

drop {o} go west cook {f } with {stove} chop {f } with {o}

命令模板中的插槽表示可以在命令中使用的實體組。通過分析游戲引擎提供的可接受命令,可以推斷出這些組的含義,例如 kao4oym 是打開或關(guān)閉的門或容器,{f} 是食物, {o} 是可以獲取的對象?;谶@一分析,游戲?qū)嶓w被分為 5 類:門、容器(冰箱、工具箱等)、結(jié)構(gòu)體(桌子、工作臺等)、食物(香蕉、歐芹等)、活動物(刀、食譜等)和基點(南、西等)。使用這些標(biāo)簽構(gòu)建了一個數(shù)據(jù)集,用于命名實體識別(ner)。游戲位置和庫存描述用已知游戲?qū)嶓w的列表進行注釋,以構(gòu)建 ner 數(shù)據(jù)集。使用相同的文本增強了數(shù)據(jù)集,但是使用了游戲中不存在的其他實體,以改進模型泛化(例如金屬門、剪刀、南瓜)。

針對命名實體識別任務(wù),訓(xùn)練了具有 token 分類頭的 bert 模型。利用 bert 12 層無基礎(chǔ)模型對 ner 模型進行了 3 個時期的訓(xùn)練。

在代理的最終版本中使用的命令是通過在命令模板中填充,由 ner 模型為位置和庫存文本標(biāo)識的實體來生成的。命令模板被簡化為只考慮一個插槽(第一個),當(dāng)然,相應(yīng)實體的烤箱、烤面包機和烤爐不在此范圍內(nèi)。可能的命令列表對應(yīng)于命令模板與具有適合模板槽類型的實體的組合。

使用通過使用命令模板生成的命令重新訓(xùn)練決策模型。

總之,代理使用的邏輯是從游戲引擎中讀取位置描述和庫存(這相當(dāng)于從「look」和「inventory」命令中獲得的反饋),然后構(gòu)建游戲狀態(tài),使用 ner 模型預(yù)測實體,使用游戲引擎中的命令模板,從實體和命令模板生成可能的命令列表,使用決策模型對命令列表進行排序,應(yīng)用 UCB1 公式并以最高的概率執(zhí)行命令。

使用所描述的模型和算法的代理能夠解決驗證集中的游戲(最大可能有 95%)。

文本游戲很有趣,這使得文本世界成為自然語言研究的一個偉大工具。

via:

雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

微軟主辦,首屆世界文本挑戰(zhàn)賽獲勝方案筆記來啦

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