Re: [問題] 為何不研發LOL的AlphaGo?

作者: exeex (執行檔EX)   2017-05-26 14:47:00
各位鄉民午安
我來分析一下到底AlphaGo的技術到底要怎麼整合到目前的電腦AI
AlphaGO所使用的技術為卷積神經網路(以下簡稱CNN)並搭配蒙地卡羅搜尋樹,
去模擬人類理解盤面的過程,並找出最佳的落子點
※我們先來介紹一下CNN
http://imgur.com/qtYoiW3
CNN可以透過區域的特徵比對,去分析圖像的邊緣
其強大之處在於,可以透過多層神經網路的堆疊,去理解深層的概念
而這是傳統Rule-based模型非常難做到的(詳見上一篇)
http://imgur.com/aFC4Ywl
那麼,甚麼叫做理解深層的概念呢?
舉例來說,第一層的神經元會學到如何辨識邊緣
第二層的神經元便可以根據第一層的結果,去組合不同的邊緣特徵,
而辨識出這是甚麼東西的輪廓(ex.人臉/汽車/大象/椅子)
那麼,再堆疊下去到更深層,有甚麼用呢?
辨識出人臉後,再深一層可以辨識出男生、女生的臉部輪廓特徵
再深下,甚至有辦法推估年齡、表情等資訊
表情辨識:
http://imgur.com/GQMRDCz
年齡推算:
http://imgur.com/WgZQfKN
(我不太確定兩個範例是不是用CNN做的,但應該87不離19)
※AlphaGo的技術
講到這裡,你可能會想,做圖像辨識的技術,怎麼會和圍棋有關係呢?
首先,這是一張圍棋棋盤:
http://imgur.com/20aJ2aj
共有19*19=361個落點,每個點會只會有三種狀態:沒有子、黑子、白子
於是乎,我們可以很輕易的把棋局的狀態轉成一張19*19的3色點陣圖
把這張狀態圖丟到AlphaGo的捲積神經網路(CNN)中
經過大量的訓練後,便可以分析出下一步的最佳落點
AlphaGo的分析是使用13層的神經網路,能夠從區域局勢理解到整個大局
而做出與圍棋高手相同水準的預測
詳見
https://www.bnext.com.tw/article/38923/BN-2016-03-14-120814-178
※CNN要怎麼用在LOL上,以及用在LOL的限制
那麼,要怎麼將這樣的技術應用到LOL的AI呢?
聰明的你,可能會想到:
我們可以用相同的手法將角色、小兵、塔、龍等物件用相同手法
將遊戲的狀態轉換為一張點陣圖丟進去分析
譬如這是上一篇提到Google DeepMind AI打星海,AI看到的樣子
http://imgur.com/CwJT6dF
然而,考慮到解析度問題,一場圍棋是19*19*3(色)*361(步)的維度
那麼,LOL的局面,究竟該用多少的維度來描述呢?
假設我們用200*100的圖來描述一個玩家的畫面(你的螢幕應該有1920*1080)
只區分英雄、小兵、塔、野怪、牆壁、草這6種物件
假設遊戲時間30分鐘,每0.2秒更新一次(人的反應速度~0.2秒)
那麼你會需要200*100*6(種物件)*9000(每0.2秒一張圖)的維度去描述一個玩家在一場遊
戲中的行為
如要模擬五個玩家,那還得在乘上5倍!
這麼大量的運算,辦比賽跟人對打還可以。
但要實作在Server上,同時服務數萬名玩家、卻是非常的不切實際
經過簡單的估算,CNN要做到模擬人在LOL上的細微操作,會耗費非常大量的資源
因此,從"模擬個人操作"及"Server效能"的角度來看,CNN不是一個好的模型
我認為強化傳統的rule-based model才是正解
※大局觀
話雖如此,但AlphaGo的CNN技術也並非無用武之地
中國棋聖聶衛平在AlphaGo與李世石對決後下了這麼一個評論:
「AlphaGo的大局觀遠勝人類」
由此可知,CNN的強項在於大局觀,也就局勢評估。
那對LOL來說,有哪些行為是需要有大局觀才做得好的呢?
會call龍的打野
預測對方眼位gank的打野
會插眼&會掃眼的sup
草叢蹲人
依照局勢帶線推塔、主動開戰的CARRY
這些都是現在AI沒有,但CNN能夠做得很好的特性
那麼CNN最麻煩的解析度問題呢?
看大局可以觀察小地圖就好,粗估縮到64*64的解析度
都還能夠分辨小地圖上塔、英雄、小兵位置的關係
時間上,我們也不需要去模擬人類反射速度,大概2秒算一次就可以了
64*64*6(種物件)*900(每2秒一張圖)
這樣的規模放上伺服器運算,我認為現在是可以做到的
那Riot有沒有在做呢?我認為是有的
請見今年愚人節新聞:
https://lol.garena.tw/news/3520
文中提到"於是我們開始著手建立一套類似於卷積神經網絡的深度學習系統。"
雖然這整篇通篇唬爛,但我認為他們是有打算引入CNN來強化AI
結論:
要用CNN模擬玩家操作,運算量會很大,不適合建在給大量玩家用的server上
用CNN可以做出較好的打野AI
CNN擅長分析大局,可以補足目前AI缺乏大局觀的問題
用CNN分析大局+目前方法處理個人操作=上面兩點
Riot應該有在做
以上是小弟我的淺見
作者: special30708 (smallLEO)   2017-05-26 15:16:00
其實你講的我不太懂 哈 但我還是推個

Links booklink

Contact Us: admin [ a t ] ucptt.com