2

我想爲一個簡單的四連勝的遊戲構建一個AI對手。但是,我不是簡單地想要創造一個完美的球員,這對人類來說會很無聊。相反,我希望有一個實際上從零開始的AI,並隨着時間的推移學習遊戲。作爲遊戲中的對手,學習AI是否有意義?

我知道的唯一方法是人造神經元網絡。但是,這似乎通常需要監督學習。例如,this document指出,人工智能只會在大約20萬場比賽後成爲一名完美的球員 - 這對人類來說太過分了。

因此我想知道:是否有可能在簡單的遊戲中合理使用學習AI?是否有任何合適的替代方案或擴展到神經元網絡來完成這項工作?

+0

這可能是一個比http://gamedev.stackexchange.com更好的問題。 –

+0

爲了克服20k遊戲的限制,一個選項可能是讓程序對自己發揮作用,從而學習更好的策略。 – Howard

+2

玩分數或贏得和失敗的遊戲*是*監督學習。 另外,我認爲在遊戲中提供部分訓練的網絡會更聰明,而不是完全空白的網絡。 – Junuxx

回答

5

我不知道有什麼算法或技術可以讓我們的計算機學習一種與人類相同時間尺度的遊戲。但是當我們談論時間尺度時,我們必須小心。

例如,Fogel和Chellapilla開發了一種技術,該技術通過隨機生成一組互相反向的神經網絡,然後使用遺傳算法基於結果創建新的更好的神經網絡。這最初是用跳棋完成的,但適用於很多遊戲。這種技術至少消除了人類訓練的負擔 - 網絡正在對抗自己。

但是學習速度有多快? Fogel和Chellapilla在僅250人左右的跳棋中獲得了高質量的成績(A級成績僅低於評級專家)......但是每一代的比賽都包含大約150場獨立比賽,總共約有37萬場比賽。如果你每天玩一款遊戲,那麼玩這麼多遊戲需要100年的時間。也許在這個級別上玩的人每天玩10場比賽10年,但這似乎不太可能。所以從這個意義上講,比人類慢。另一方面,一臺好的筆記本電腦可能會在一週內播放那麼多遊戲,這是人類無法做到的。

所以,如果你正在尋找一個培訓例程,人們將能夠在合理的範圍內訓練和感知性能的提高......我今天什麼也做不了。 (這說明了理由 - 我們最好的超級計算機仍然沒有人腦的原始處理能力,並且我們沒有設計利用那麼多能量的算法)。

如果你只是尋找一個不完美的人工智能,但是,你可以嘗試像Fogel和Chellapilla's這樣的技術,而不是採用最終的,近乎專家的評分結果,而是從中途走過一些東西,或者從上一代開始,但不是最好的結果。

+0

感謝您的回覆! Fogel和Chellapilla確實聽起來有趣 - 我會試試看:-) – eWolf

0

您可能想要查看名爲「一般遊戲玩法」的字段。重點在於學習玩電腦以前從未見過的遊戲。該算法以明確的格式交付遊戲規則,並且必須學會從頭開始玩。

最先進的技術幾乎總是包含某種蒙特卡羅模擬,其中系統在模擬中對自身進行數以千計的遊戲,因爲它同時對人類或其它正在測量的程序進行「真實」遊戲上。