- Python強化學習:算法、核心技術與行業(yè)應用
- (美)埃內斯·比爾金
- 2209字
- 2024-04-15 11:57:26
1.4 強化學習問題的元素
到目前為止,我們介紹了可以使用強化學習建模的問題類型。在接下來的章節(jié)中,我們將深入研究可以解決這些問題的最先進的算法。然而,現在我們先要形式化定義強化學習問題中的元素。通過建立我們的詞匯表,這將為更多技術內容奠定基礎。在給出這些定義之后,我們將在井字棋游戲(tic-tac-toe)示例中研究這些概念對應的內容。
1.4.1 強化學習概念
我們從定義強化學習問題中的最基本組件開始:
? 在強化學習問題的中心,存在學習器,用強化學習術語可以稱之為智能體(agent)。我們處理的大多數問題類中都會有一個單智能體。如果有多個智能體,則該問題類稱為多智能體強化學習(Multi-Agent Reinforcement Learning, MARL)。在多智能體強化學習中,智能體之間的關系可以是合作的、競爭的或者兩者兼有。
? 強化學習問題的本質是智能體學習在其所處世界的不同情況下該做什么,即采取何種行動(action)。我們稱這個世界為環(huán)境(environment),它指的是智能體之外的一切。
? 準確而充分地描述環(huán)境狀況的所有信息的集合稱為狀態(tài)(state)。所以,如果環(huán)境在不同的時間點處于相同的狀態(tài),這意味著關于環(huán)境的一切都是完全一樣的,就像“復制-粘貼”一樣。
? 在某些問題中,狀態(tài)的知識對智能體而言是完全可獲取的。而在許多其他問題,尤其是更現實的問題中,智能體無法完全地觀測狀態(tài),而只能觀測到狀態(tài)的一部分(或狀態(tài)的某一部分的派生)。在這種情況下,智能體使用其觀測(observation)來采取行動。針對這種情況,我們說問題是部分可觀測的(partially observable)。除非另有說明,否則我們假設智能體能夠充分觀測環(huán)境所處的狀態(tài),并根據該狀態(tài)采取行動。
信息
狀態(tài)這個術語及其符號S在抽象的討論中更常用,尤其是在假設環(huán)境完全可觀測時,盡管觀測是一個更通用的術語。智能體接收到的始終是觀測,有時只是狀態(tài)本身,有時則是狀態(tài)的某一部分或狀態(tài)的派生,具體取決于環(huán)境。如果你看到它們在某些情況下可以互換使用,請不要感到困惑。
到目前為止,我們還沒有真正定義一個行動是好還是壞。在強化學習中,每次智能體采取行動時,它都會從環(huán)境中獲得獎勵(reward)(盡管有時為零)。獎勵通常可以表示很多東西,但在強化學習術語中,它的含義非常具體:它是一個標量。數越大,獎勵也越高。在強化學習問題的迭代中,智能體觀測環(huán)境所處的(全部或部分)狀態(tài),并根據其觀測采取行動。結果,智能體收到獎勵,環(huán)境轉變到新狀態(tài)。關于該過程的描述如圖1-2所示,你可能很熟悉。

圖1-2 強化學習流程圖
請記住,在強化學習中,智能體對長期有益的操作感興趣。這意味著智能體必須考慮其行動的長期后果。一些行動可能會導致智能體立即獲得高回報,但隨后會獲得非常低的回報。相反也可能成立。因此,智能體的目標是最大化其獲得的累積獎勵。自然的后續(xù)問題是在什么時間范圍內?這個問題的答案取決于我們感興趣的問題是定義在有限范圍內還是無限范圍內:
? 如果是有限范圍,則將問題描述為一個回合任務(episodic task),其中回合(episode)定義為從初始狀態(tài)到終態(tài)(terminal state)的交互序列。在回合任務中,智能體的目標是最大化在一個回合中收集的期望總累積獎勵。
? 如果問題是在無限范圍內定義的,則稱為持續(xù)任務(continuing task)。在這種情況下,智能體將嘗試最大化平均獎勵,因為總獎勵將上升到無窮大。
? 那么,一個智能體要如何實現這一目標呢?該智能體根據對環(huán)境的觀測確定要采取的最優(yōu)行動。換句話說,強化學習問題就是關于找出一個策略(policy)將給定的觀測映射到一個(或多個)行動,繼而最大化期望累積獎勵。
所有這些概念都有具體的數學定義,我們將在后面的章節(jié)中詳細介紹。但是現在,讓我們試著在一個具體的例子中理解這些概念對應的內容。
1.4.2 將井字棋游戲建模為強化學習問題
井字棋是一個簡單的游戲,其中兩個玩家輪流在一個3×3網格中標記空白區(qū)域。我們現在將其轉換為強化學習問題,以將之前提供的定義映射到游戲中的概念。玩家的目標是將他的三個標記放在垂直、水平或對角的一條線的空白處,成為獲勝者。如果在用完網格上的空白區(qū)域之前沒有玩家能夠做到這一點,則游戲以平局結束。井字棋游戲的中局棋盤可能如圖1-3所示。

圖1-3 井字棋游戲中的棋盤配置示例
現在,假設我們有一個強化學習智能體與人類玩家對戰(zhàn):
? 當輪到智能體放置標記時,智能體采取的行動是放置標記(比如,畫一個叉)在棋盤的一個空白處。
? 這里,棋盤是整個環(huán)境,棋盤上標記的位置就是狀態(tài),對智能體來說,這是完全可觀測的。
? 在3×3井字棋游戲中,有765個狀態(tài)(唯一的棋盤位置,不包括旋轉和反射),并且智能體的目標是學習一個策略,該策略將為這些狀態(tài)中的每一個狀態(tài)建議一個行動,以便最大化獲勝的機會。
? 游戲可以定義為一個回合式強化學習任務。為什么?因為游戲最多持續(xù)9回合,環(huán)境便會達到終態(tài)。終態(tài)是三個X或O連成一條線,或者沒有一個標記連成一條線并且棋盤上沒有剩余空間(即平局)。
? 請注意,當玩家在游戲過程中“落子”時,不會得到任何獎勵,除非最后玩家獲勝。因此,如果智能體獲勝,則獲得獎勵為1;如果智能體失敗,則獲得獎勵為-1;如果游戲是平局,則獲得獎勵0。在結束前的所有迭代中,智能體獲得獎勵均為0。
? 我們可以通過用另一個強化學習智能體替換人類玩家來與第一個智能體競爭,從而將其變成一個多智能體強化學習問題。
希望這部分的介紹能讓你對智能體、狀態(tài)、行動、觀測、策略和獎勵的含義有所了解。這只是一個簡單示例,請放心,以后它會變得更加高階。有了上面的基礎知識背景,接下來需要做的是設置我們的計算機環(huán)境,以便能夠運行將在接下來的章節(jié)中介紹的強化學習算法。