來源:DeepHub IMBA
強化學習的基礎知識和概念簡介(無模型、在線學習、離線強化學習等)
機器學習(ML)分為三個分支:監督學習、無監督學習和強化學習。
通俗地說,強化學習類似于嬰兒學習和發現世界,如果有獎勵(正強化),嬰兒可能會執行一個行動,如果有懲罰(負強化),嬰兒就不太可能執行這個行動。這也是來自監督學習和非監督學習的強化學習之間的主要區別,后者從靜態數據集學習,而前者從探索中學習。本文將涉及強化學習的術語和基本組成部分,以及不同類型的強化學習(無模型、基于模型、在線學習和離線學習)。本文最后用算法來說明不同類型的強化學習。
本文的公式基于Stuart J. Russell和Peter Norvig的教科書《Artificial Intelligence: A Modern Approach》(第四版),為了保持數學方程格式的一致性所以略有改動。
強化學習
在深入研究不同類型的強化學習和算法之前,我們應該熟悉強化學習的組成部分。
- Agent:從環境中接收感知并執行操作的程序,被翻譯成為智能體,但是我個人感覺代理更加恰當,因為它就是作為我們人在強化學習環境下的操作者,所以稱為代理或者代理人更恰當
- Environment:代理所在的真實或虛擬環境
- State (S):代理當前在環境中所處的狀態
- Action (A):代理在給定狀態下可以采取的動作
- Reward (R):采取行動的獎勵(依賴于行動),處于狀態的獎勵(依賴于狀態),或在給定狀態下采取行動的獎勵(依賴于行動和狀態)
在一個嬰兒探索世界的例子中,嬰兒(代理)在現實世界(環境)中,能夠感到高興或饑餓(狀態)。因此,寶寶可以選擇哭泣,吃或睡(動作),如果寶寶餓的時候吃了東西(獎勵),寶寶就滿足了(正獎勵)。強化學習涉及探索,強化學習的輸出是一個最優策略。策略描述了在每個狀態下要采取的行動;類似于說明書。比如,政策可以是寶寶餓了就吃,否則,寶寶就該睡覺。這也與監督學習形成了對比,監督學習的輸出只是一個單一的決策或預測,比策略更簡單。
強化學習的目標是通過優化所采取的行動來最大化總累積獎勵。和嬰兒一樣,我們不都想從生活中獲得最大的累積利益嗎?
馬爾可夫決策過程(MDP)
由于強化學習涉及一系列最優行為,因此它被認為是一個連續的決策問題,可以使用馬爾可夫決策過程建模。這里的狀態(用S表示)被建模為圓圈,動作(用A表示)允許代理在狀態之間轉換。在上圖2中,還有一個轉換概率(用T表示),T(S11, A1, S12)是在狀態S11采取A1動作后轉換到狀態S12的概率。我們可以認為動作A1是向右的動作A2是向下的。為了簡單起見,我們假設轉移概率為1,這樣采取行動A1將確保向右移動,而采取行動A2將確保向下移動。參照圖2,設目標為從狀態S11開始,結束于狀態S23,黃色狀態為好(獎勵+1),紅色狀態為壞(獎勵-1),紫色為目標狀態(獎勵+100)。我們希望智能體了解到最佳的行動或路線是通過采取行動A2-A1-A1來走向下-右-右,并獲得+1+1+1+100的總獎勵。再進一步,利用金錢的時間價值,我們在獎勵上應用折扣因子gamma,因為現在的獎勵比以后的獎勵更好。綜上所述,從狀態S11開始執行動作A2-A1-A1,預期效用的數學公式如下:
上面的例子是一個簡單的例子,一般情況下都會有一些變化,比如,
- 轉移概率不可能是1,因為需要在行動中考慮不確定性因素,例如采取某些行動可能并不總是保證成功地向右或向下移動。因此,我們需要在這個不確定性上取一個期望值
- 最優動作可能還不知道,因此一般的表示方式是將動作表示為來自狀態的策略,用π(S)表示。
- 獎勵可能不是基于黃色/紅色/紫色狀態,而是基于前一個狀態、行動和下一個狀態的組合,用R(S1, π(S1), S2)表示。
- 問題可能不需要4步就能解決,它可能需要無限多的步驟才能達到目標狀態
考慮到這些變化,確定給定狀態下策略π的期望效用U(s)的更一般的方程是這樣的:
用上圖4的話來說,狀態的預期效用是折現獎勵的預期總和。所以一個狀態的效用與其相鄰狀態的效用相關;假設選擇了最優行動,狀態的效用是轉移的預期獎勵加上下一個狀態的折扣效用。這就是遞歸。在數學上使用下面的方程表示
上圖5是著名的Bellman方程,它求解最大效用并推導出最優策略。最優策略是在考慮轉移概率的情況下,對所有可能的下一個狀態進行求和,使當前狀態的最大效用加上下一個狀態的折現效用。回到MDP問題中,圖2的最優策略是,如果代理處于狀態S11, S12或S13,代理應該通過采取動作A2向下移動,如果代理處于狀態S21或S22,則代理應該通過采取動作A1向右移動。這里的最優策略是通過求解Bellman方程來執行獲得最大當前和折現未來獎勵的行動。
MDP一般用(S, A, T, R)表示,它們分別表示一組狀態,動作,轉移函數和獎勵函數。MDP假設環境是完全可觀察的,如果代理不知道它當前處于什么狀態,我們將使用部分可觀察的MDP (POMDP) 圖5中的Bellman方程,可以使用值迭代或策略迭代來求解最優策略,這是一種將效用值從未來狀態傳遞到當前狀態的迭代方法。
強化學習類似于求解MDP,但現在轉移概率和獎勵函數是未知的,代理必須在訓練期間執行動作來學習
無模型與基于模型的強化學習
上面提到的MDP示例是基于模型的強化學習。基于模型的強化學習具有轉移概率T(s1, a, s2)和獎勵函數R(s1, a, s2),它們是未知的,他們表示要解決的問題。基于模型的方法對仿真很有用。基于模型的強化學習的例子包括值迭代和策略迭代,因為它使用具有轉移概率和獎勵函數的MDP。無模型方法不需要知道或學習轉移概率來解決問題。我們的代理直接學習策略。
無模型方法對于解決現實問題很有用。無模型強化學習的例子包括Q-learning 和策略搜索,因為它直接學習策略。
離線學習vs.在線學習
離線學習和在線學習又稱為被動學習和主動學習。離線學習在離線(被動)學習中,通過學習效用函數來解決該問題。給定一個具有未知轉移和獎勵函數的固定策略,代理試圖通過使用該策略執行一系列試驗來學習效用函數。例如,在一輛自動駕駛汽車中,給定一張地圖和一個要遵循的大致方向(固定策略),但控制出錯(未知的轉移概率-向前移動可能導致汽車稍微左轉或右轉)和未知的行駛時間(獎勵函數未知-假設更快到達目的地會帶來更多獎勵),汽車可以重復運行以了解平均總行駛時間是多少(效用函數)。離線強化學習的例子包括值迭代和策略迭代,因為它使用使用效用函數的Bellman方程(圖5)。其他的一些例子包括直接效用估計、自適應動態規劃(Adaptive Dynamic Programming, ADP)和時間差分學習(Temporal-Difference Learning, TD),這些將在后面詳細闡述。在線學習在線(主動)學習中,通過學習規劃或決策來解決問題。對于基于模型的在線強化學習,有探索和使用的階段。在使用階段,代理的行為類似于離線學習,采用固定的策略并學習效用函數。在探索階段,代理執行值迭代或策略迭代以更新策略。如果使用值迭代更新策略,則使用最大化效用/值的一步前瞻提取最佳行動。如果使用策略迭代更新策略,則可獲得最優策略,并可按照建議執行操作。以自動駕駛汽車為例,在探索階段,汽車可能會了解到在高速公路上行駛所花費的總時間更快,并選擇向高速公路行駛,而不是簡單地沿著大方向行駛(策略迭代)。在使用階段,汽車按照更新的策略以更少的平均總時間(更高的效用)行駛。在線強化學習的例子包括Exploration、Q-Learning和SARSA,這些將在后面幾節中詳細闡述。當狀態和動作太多以至于轉換概率太多時,在線學習是首選。在線學習中探索和“邊學邊用”比在離線學習中一次學習所有內容更容易。但是由于探索中的試錯法,在線學習也可能很耗時。需要說明的是:在線學習和基于策略的學習(以及基于策略的離線學習)是有區別的,前者指的是學習(策略可以更改或固定),后者指的是策略(一系列試驗來自一個策略還是多個策略)。在本文的最后兩部分中,我們將使用算法來解釋策略啟動和策略關閉。
在理解了不同類型的強化學習之后,讓我們深入研究一下算法!
1、直接效用估計 Direct Utility Estimation
無模型的離線學習在直接效用估計中,代理使用固定策略執行一系列試驗,并且狀態的效用是從該狀態開始的預期總獎勵或預期獎勵。以一輛自動駕駛汽車為例,如果汽車在一次試驗中從網格 (1, 1) 開始時,未來的總獎勵為 +100。在同一次試驗中,汽車重新訪問該網格,從該點開始的未來總獎勵是+300。在另一項試驗中,汽車從該網格開始,未來的總獎勵為 +200。該網格的預期獎勵將是所有試驗和對該網格的所有訪問的平均獎勵,在本例中為 (100 + 300 + 200) / 3。優點:給定無限次試驗,獎勵的樣本平均值將收斂到真實的預期獎勵。
缺點:預期的獎勵在每次試驗結束時更新,這意味著代理在試驗結束前什么都沒有學到,導致直接效用估計收斂非常慢。
2、自適應動態規劃 (ADP)
基于模型的離線學習在自適應動態規劃 (ADP) 中,代理嘗試通過經驗學習轉換和獎勵函數。轉換函數是通過計算從當前狀態轉換到下一個狀態的次數來學習的,而獎勵函數是在進入該狀態時學習的。給定學習到的轉換和獎勵函數,我們可以解決MDP。以自動駕駛汽車為例,在給定狀態下嘗試向前移動 10 次,如果汽車最終向前移動 8 次并向左移動 2 次,我們了解到轉換概率為 T(當前狀態, 向前,前狀態)= 0.8 和 T(當前狀態,向前,左狀態)= 0.2。優點:由于環境是完全可觀察的,因此很容易通過簡單的計數來學習轉換模型。
缺點:性能受到代理學習轉換模型的能力的限制。這將導致這個問題對于大狀態空間來說是很麻煩的,因為學習轉換模型需要太多的試驗,并且在 MDP 中有太多的方程和未知數需要求解。
3、時間差分學習(TD Learning)
無模型的離線學習在時間差分學習中,代理學習效用函數并在每次轉換后以學習率更新該函數。這里的時間差分(temporal difference)是指連續狀態之間的效用差異,并根據此誤差信號更新效用函數,由學習率縮放,如上圖6所示。學習率可以是一個固定的參數,也可以是對一個狀態訪問量增加的遞減函數,這有助于效用函數的收斂。與直接效用估計在每次嘗試后進行學習相比,TD學習在每次轉換后進行學習,具有更高的效率。與ADP相比,TD學習不需要學習轉換函數和獎勵函數,使其計算效率更高,但也需要更長的收斂時間。ADP和TD學習是離線強化學習算法,但在線強化學習算法中也存在主動ADP和主動TD學習!
4、Exploration
基于模型的在線學習,主動ADPExploration 算法是一種主動ADP算法。與被動ADP算法類似,代理試圖通過經驗學習轉換和獎勵函數,但主動ADP算法將學習所有動作的結果,而不僅僅是固定的策略。它還有一個額外的函數,確定代理在現有策略之外采取行動的“好奇程度”。這個函數隨著效用的增加而增加,隨著經驗的減少而減少。如果狀態具有高效用,則探索函數傾向于更頻繁地訪問該狀態。探索功能隨著效用的增加而增加。如果狀態之前沒有被訪問過或訪問過足夠多次,探索函數傾向于選擇現有策略之外的動作。如果多次訪問狀態,則探索函數就不那么“好奇”了。由于好奇程度的降低,探索功能隨著經驗的增加而降低。優點:探索策略會快速收斂到零策略損失(最優策略)。
缺點:效用估計的收斂速度不如策略估計的快,因為代理不會頻繁地出現低效用狀態,因此不知道這些狀態的確切效用。
5、Q-Learning
無模型的在線學習,主動TD學習Q-Learning 是一種主動的 TD 學習算法。圖 6 中的更新規則保持不變,但現在狀態的效用表示為使用 Q 函數的狀態-動作對的效用,因此得名 Q-Learning。被動 TD 學習與主動 TD 學習的更新規則差異如下圖 7 所示。
這種差異是由于被動RL都是用固定的策略,因此每個狀態只會執行固定的操作,效用僅取決于狀態。而在主動RL 中,策略會被更新并且效用現在取決于狀態-動作對,因為每個狀態可能會根據不同的策略執行不同的動作。Q-Learning 是 Off-Policy(無既定策略),這意味著目標或下一個狀態的效用是使Q函數最大化(而不是下一個狀態中可能的操作),我們就不需要下一個狀態下的實際動作。優點:可以應用于復雜領域,因為它是無模型的,代理不需要學習或應用轉換模型。
缺點:它不看到未來的情況,所以當獎勵稀少時可能會遇到困難。與 ADP 相比,它學習策略的速度較慢,因為本地更新不能確保 Q 值的一致性。
6、SARSA
無模型的在線學習,主動TD學習SARSA是一種主動TD學習算法。算法名稱SARSA源自算法的組件,即狀態S、動作A、獎勵R、(下一個)狀態S和(下一個)動作A。這意味著SARSA算法在更新Q函數之前,要等待下一個狀態下執行下一個動作。相比之下,Q-Learning是一種“SARS”算法,因為它不考慮下一個狀態的動作。SARSA 算法知道在下一個狀態下采取的動作,并且不需要在下一個狀態下的所有可能動作上最大化 Q 函數。Q-Learning與SARSA的更新規則差異顯示在下面的圖8中。SARSA 以“策略”或者當前正在運行的策略的下一個狀態的效用的q函數為目標,這樣就能夠獲得下一個狀態下的實際動作。也就是說如果Q-Learning不探索其他操作并在下一個狀態下遵循當前策略,則它與SARSA相同。優點:如果整個策略由另一個代理或程序控制,則適合使用策略,這樣代理就不會脫離策略并嘗試其他操作。
缺點:SARSA不如Q-Learning靈活,因為它不會脫離策略來進行探索。與 ADP 相比,它學習策略的速度較慢,因為本地更新無法確保與 Q 值的一致性。
總結
在本文中我們介紹了強化學習的基本概念,并且討論了6種算法,并將其分為不同類型的強化學習。這6種算法是幫助形成對強化學習的基本理解的基本算法。還有更有效的強化學習算法,如深度Q網絡(Deep Q Network, DQN)、深度確定性策略梯度(Deep Deterministic Policy Gradient, DDPG)等算法,具有更實際的應用。
我一直覺得強化學習很有趣,因為它闡明了人類如何學習以及我們如何將這些知識傳授給機器人(當然也包括其他應用,如自動駕駛汽車、國際象棋和Alpha Go等)。希望本文能夠讓你對強化學習有了更多的了解,并且知道了強化學習的不同類型,以及說明每種類型的強化學習的算法。
-
機器學習
+關注
關注
66文章
8406瀏覽量
132561
發布評論請先 登錄
相關推薦
評論