[英]Q Learning Applied To a Two Player Game
我正在嘗試實施 Q Learning 代理來學習在 Tic Tac Toe 游戲中與隨機代理對戰的最佳策略。
我制定了一個我相信會奏效的計划。 只有一部分我無法理解。 這是因為環境中有兩個參與者。
現在,Q Learning agent 應該根據當前狀態s
、給定某個策略采取的行動a
、給定該行動的后續狀態s'
以及從該后續狀態收到的任何獎勵r
采取行動。
讓我們把它放到一個元組(s, a, r, s')
現在通常情況下,代理會根據給定的操作發現自己遇到的每個狀態,並使用 Q 學習方程來更新先前狀態的值。
然而,由於 Tic Tac Toe 有兩個玩家,我們可以將狀態集分成兩個。 一組狀態可以是學習代理轉向行動的狀態。 另一組狀態可以是對手輪到采取行動的地方。
那么,我們需要將狀態一分為二嗎? 或者學習代理是否需要更新游戲中訪問的每個狀態?
我覺得好像應該是后者,因為這可能會影響對手贏得比賽時更新 Q 值。
任何對此的幫助都會很棒,因為網上似乎沒有任何東西可以幫助我解決困境。
一般來說,如果假設對手也可以學習,直接將 Q-learning 應用於兩人游戲(或其他類型的多智能體環境)不太可能產生很好的結果。 但是,你特別提到
與隨機代理人對戰
這意味着它實際上可以工作,因為這意味着對手沒有學習/改變它的行為,所以你可以可靠地將對手視為“環境的一部分” 。
完全做到這一點也可能是您可以采取的最佳方法。 將對手(和他的行為)視為環境的一部分意味着您基本上應該完全忽略對手移動的所有狀態。 每當你的智能體采取行動時,你也應該立即為對手產生一個行動,然后才將結果狀態作為下一個狀態。
因此,在元組(s, a, r, s')
中,我們有:
s
= 你的代理人要移動的狀態a
= 您的代理執行的操作r
= 一步獎勵s'
=您的代理將再次移動的下一個狀態對方要動的狀態,做出的動作,完全沒有出現。 它們應該被簡單地視為環境中不可觀察的、不確定的部分。 從您的算法的角度來看, s
和s'
之間沒有其他狀態,其中有一個對手可以采取行動。 從您的算法的角度來看,環境只是不確定的,這意味着在狀態s
中采取行動a
有時會隨機導致s'
,但有時也可能隨機導致不同的狀態s''
。
請注意,這只會准確地起作用,因為您寫道對手是隨機代理(或者更重要的是,具有固定策略的非學習代理)。 一旦對手也獲得了學習能力,這將完全崩潰,您必須繼續使用適當的強化學習算法的多代理版本。
Q-Learning是來自MDP(Markov Decision Process)領域的一種算法,即MDP和Learning在實際面對一個正在行動的世界。 每個動作都會改變代理的狀態(有一定的概率)
該算法的基礎是,對於任何動作,世界都會給出反饋(反應)。
當任何行動都有某種即時且可衡量的反應時,Q-Learning 效果最佳
此外,這種方法從一個代理人的角度看待世界
我的建議是將代理實施為世界的一部分。 就像一個使用各種策略的 be bot,例如隨機、最佳動作、固定布局,甚至是一個工具,它的邏輯就像 q-learning
為了向前看 n 步並運行所有狀態(以便稍后您可以選擇最好的狀態)如果空間大小太大,您可以使用蒙特卡洛樹搜索(就像使用 GO 一樣)
Tic-Tac-Toe游戲已經解決了,如果玩家遵循最優策略,則可以獲勝或平局,並且2個最優玩家將平局,完整的游戲樹很容易構建
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.