遊戲機器人的研究與應用

遊戲機器人的研究與應用

內容來源:2018 年1月5日,深奇智慧聯合創始人高揚在“2018移動技術創新大會”進行《遊戲機器人的研究與應用》演講分享。IT 大咖說作為獨家視頻合作方,經主辦方和講者審閱授權發佈。

閱讀字數:3044 | 8分鐘閱讀

嘉賓演講視頻回放及PPT,請複製鏈接:http://t.cn/RgMfOWF,粘貼至瀏覽器地址欄即可。

遊戲機器人的研究與應用

摘要

伴隨著人工智能的出現,越來越多的公司把它運用到工作生產中,遊戲機器人的研究和應用也受到一些人的關注。本次演講將分享那些在遊戲AI領域所使用的技術,包括CNN和DQN等。

遊戲AI的種類和演變過程

NPC驅動

遊戲中的人工智能主要指的是NPC(無用戶角色)。遊戲的雜兵是低級NPC,都是事先編好行進路線,用事件驅動其出現或生效。單機遊戲群戰中的配合型NPC則是中級NPC,比如仙劍中的隊友,他們由一定事先編好的策略驅動,有一定的事先設定的應變能力,但是一般場景都會比較單一,確定。

遊戲機器人的研究與應用

網遊中的高級團戰英雄相當於高級NPC,有著複雜且變化多樣的場景,動作豐富且評價模式也相對複雜。最後就是特高級NPC,一般都是高級益智玩具類型,比如帶有博弈心態的撲克,帶有套路計算的麻將,帶有長久盤面考慮功能的象棋和圍棋等。

人工智能的差距

我們現在之所以對人工智能感興趣,是因為它能夠應用在很多的領域,比如圖形、音頻、遊戲等,能夠代替大量繁重的人工。現在的人工智能其實和以前所談的人工智能是有著一定差異的,之前人們認為的人工智能其實更多的是自動化。但近兩年隨著計算能力的提升,神經網絡已經可以和自動化進行結合了。

神經網絡之所以受到廣泛關注,其中有一點很重要——處理能力很強。舊式的遊戲AI,在二維的空間中能採取的行動並不多,處理的維度也不夠多,一般幾個或者十幾個維度就能描述客觀空間中的事件。棋牌類AI則相對複雜些,因為處理的維度已經達到了幾十個,比如上世紀誕生的深藍機器人,它所使用的技術其實就是數字搜索。當時採用這種蠻力計算的方式還能夠解決問題,但隨著計算量的逐步增大瓶頸也會隨之出現。所以有人想到從算法層面去解決這方面的困境。

高級人工智能的套路

高級人工智能的套路目前來說比較成熟的有三種:經典統計、神經網絡、強化學習

經典統計有個很典型的應用場景——棋牌類遊戲,比如德州撲克中就可以根據手牌和池子中的牌大概的判斷出獲勝的概率,這裡使用的就是簡單統計的方法。經典統計其實並沒有涉及人工智能,開發者完全可以通過自己寫的程序來實現。

卷積網絡

遊戲機器人的研究與應用

神經網路其實和函數有些相似,函數是對給到的x進行一系列運算然後輸出y。神經網路相當於多層函數的嵌套,輸入的x先經過一層函數運算,然後輸出的值再經由另一層神經網絡或者函數運算,直到經過最後一層運算輸出y。理想情況下如果神經網絡足夠智能,那麼輸出的應該是最優的y。這裡的關鍵在於x應該經過怎樣的計算,例如對於最簡單的y=ax+b函數,如果a、b未知就無法獲得y。

其實可以在神經網絡中先隨機給出係數,這樣每次x輸入後都會有不同的y輸出。通過迭代計算每次都對a、b進行更新,一旦輸出的y符合期望,那麼a、b也就能夠隨之得到確定。這是一個反向解方程的過程,在已知x和y的情況下求a和b。這種方式也被稱為卷積網絡。

監督型學習的卷積網絡有著收斂速度快、泛化能力好、應用場景廣等優點。缺點是需要大量正樣本及人類干預,也就是需要質量較高的樣本,劣質樣本產生的結果會非常不盡人意。它適用於變化相對有限,輸入數據量偏小的遊戲。

卷積網絡實現AI

鬥地主遊戲相信大家都很熟悉,要想在該遊戲中實現機器人,通過手工編寫if else是可行的,但也可以使用卷積網絡來完成。這個神經網絡中的輸入值為掃描到的各輪出牌和手牌,輸出值y為每局獲勝的玩家每輪打出的牌。

遊戲機器人的研究與應用

基本上搭建如上圖所示的三層網絡就能實現想要的結果,30萬局牌大概10分鐘就能夠訓練完成。圖中左邊的向量表示的就是牌面的信息:

  • 第一行:代表玩家現在的手牌狀態;
  • 第二行:代表玩家上輪出牌記錄;
  • 第三行:代表上家上輪出牌記錄;
  • 第四行:代表下家上輪出牌記錄;
  • 第五行:代表玩家的所有出牌記錄;
  • 第六行:代表上家的所有出牌記錄;
  • 第七行:代表下家的所有出牌記錄;

該模型訓練完成之後,和人對戰的時候,地主身份的勝率是50%左右,農民身份的勝率為40%。

DQN實現AI原理

遊戲機器人的研究與應用

接下來我們討論下深度學習和強化學習的結合,首先來看下強化學習。機器人作為主觀體需要認知世界,而一般訓練機器人的時候目標是固定的,要人為的將目標的信息傳遞給機器人,這些信息就叫做獎勵。同時機器人還要能夠獲取和認知環境信息,然後輸出動作到環境中,最後機器人會獲得一個獎勵值。獎勵值是一種超參數,是用來判斷行為的正確性的依據。因此必須要人為設定超參數的值,才能夠對機器人的行為結果進行判斷,以促進機器人的進化。

馬爾可夫決策過程

機器人在這一過程中會不斷和客觀世界發生動作,接收到各種獎勵。這裡輸入的環境就是x,輸出的動作則是y。

遊戲機器人的研究與應用

展開來看就是上圖這樣的形式,隨著時間的推移,當前的狀態、動作、獎勵值都會被統計下來。

遊戲機器人的研究與應用

在獲取到大量的信息數據之後,就能形成如上圖所示的表格,空格中填入的是Reward(獎勵值)。顯而易見這種情況下完全可以根據表格判斷出某個狀態下的最優動作。

動態決策

上面的做法其實是存在缺陷的,它雖然能夠在某一瞬間獲得數值最大的獎勵,但無法預判到該行動對下一瞬間的影響,有可能下一瞬間的獎勵值是最小的。

遊戲機器人的研究與應用

這種情況下就需要採用動態決策,最終形成的是如上圖所示的樹狀結構。先在某個狀態下采取不同的行動形成不同的狀態,然後在這些狀態中再採取不同的行動。圖中標記的那些數值表示的就是獎勵值,通過統計獎勵值就可以獲得最優的路線。

可能有朋友已經發現了,最左邊的兩條路線數值其實是一樣的。要解決這種情況需要用到圖中下方的公式,它主要用於數值的回溯。可以看出State1和State26顯然是被低估的,因為既然能夠獲得5這樣的數據,那就證明State1還有很大的價值空間沒有被發現。這時候就要將數值5回溯給State1,然後再重新進行評估。

這裡對這兩種執行器進行了比較。real-time的優勢主要在於響應時間小。task-tracker則是支持數據重分佈,SQL支持也比real-time略好,同時併發數,資源消耗可控。

神經網絡

遊戲機器人的研究與應用

其實通過神經網絡也可以解決馬爾可夫決策過程中遇到的問題。神經網絡的學習能力很強,在輸入的X很複雜的情況下,輸出的y也能很複雜,它完成了高維到高維的映射。這種方式下樣本的獲取成本會更低,通過機器人之間的對戰能夠不停的生成新的樣本。

目前從訓練結果來看DQN的勝率遠超CNN,它的落地也意味著未來用它去做其它人工智能連續決策方面的事情有了保障。

強化學習延伸

在應用DQN的過程中我們也一直都在學習相關的新技術,下面會對這些技術做一個簡要介紹。

由於值的回溯是需要時間的,這個過程中狀態還是可能會被錯誤的低估或高估,Double DQN所要解決的就是這種情況。Dueling DQN則是分別對狀態和動作進行估值。另外對於連續輸出DQN是無法進行訓練的,需要用到DDPG。A3C解決的是並行訓練的問題,也就是並行收集樣本。

以上為今天的全部分享內容,謝謝大家!


分享到:


相關文章: