強化學習RL學習筆記2 概述(2)

2021-10-11 01:45:09 字數 3778 閱讀 8598

types of rl agents(rl agents的型別)

learning and planning

exploration and exploitation

強化學習(reinforcement learning, rl),又稱再勵學習、評價學習或增強學習,是機器學習的正規化和方**之一,用於描述和解決智慧型體(agent)在與環境的互動過程中通過學習策略以達成回報最大化或實現特定目標的問題 。

本文是筆者對強化學習的一點學習記錄,成文於筆者剛開始接觸強化學習期間,主要內容參考leedeeprl-notes,學習期間很多概念和理論框架還很不成熟,若文中存在錯誤歡迎批評指正,也歡迎廣大學習者溝通交流、共同進步。

value function:用此對當前狀態進行估價,即進入當前狀態,可以對收益帶來多大影響。價值函式大說明進入這個狀態有利。

model:表示了 agent 對這個環境的狀態進行理解。

policy 決定了 agent 的行為,是乙個輸入狀態輸出行為的函式。這裡有兩種 policy:

從 atari 遊戲來看的話,policy function 的輸入就是遊戲的一幀,它的輸出決定你是往左走或者是往右走。

通常情況下,強化學習一般使用隨機性策略。隨機性策略有很多優點:

價值函式是未來獎勵的**,用來評估狀態的好壞。

價值函式裡面有乙個discount factor,我們希望盡可能在短的時間裡面得到盡可能多的獎勵。如果說十天過後,我給你 100 塊錢,跟我現在給你 100 塊錢,你肯定更希望我現在就給你 100 塊錢,因為你可以把這 100 塊錢存在銀行裡面,你就會有一些利息。所以我們就通過把這個 discount factor 放到價值函式的定義裡面,價值函式的定義其實是乙個期望。有期望 e

π\mathbb_

eπ​ ,這裡有個小角標是 π 函式, π 函式就是說在已知某乙個 policy function 的時候,到底可以得到多少獎勵。

有一種價值函式:q 函式。q 函式包含兩個變數:狀態和動作。所以未來可以獲得多少獎勵,它的期望取決於當前的狀態行為。進入某一種狀態,它最優的行為就可以通過這個 q 函式來得到。

當有了這三個成分過後,就形成了乙個markov decision process(馬爾可夫決策過程)。這個決策過程視覺化了狀態之間的轉移以及採取的行為。

看乙個走迷宮的例子:

我們可以用不同的強化學習演算法來解這個環境:

決策方式是智慧型體在給定狀態下從動作集合中選擇乙個動作的依據,它是靜態的,不隨狀態變化而變化。

不同決策方式下,agents可以分為以下三種情況:

可以用馬爾可夫決策過程來定義強化學習任務,並表示為四元組 ,即狀態集合、動作集合、狀態轉移函式和獎勵函式。如果這四元組中所有元素均已知,且狀態集合和動作集合在有限步數內是有限集,則機器可以對真實環境進行建模,構建乙個虛擬世界來模擬真實環境的狀態和互動反應。

具體來說,當智慧型體知道狀態轉移函式 p(s

t+1​

∣st,

at)p(s_​∣s_t ,a_t)

p(st+1

​​∣s

t​,a

t​) 和獎勵函式 r(s

t,at

)r(s_t,a_t)

r(st​,

at​)

後,它就能知道在某一狀態下執行某一動作後能帶來的獎勵和環境的下一狀態,這樣智慧型體就不需要在真實環境中採取動作,直接在虛擬世界中學習和規劃策略即可。這種學習方法稱為有模型學習。

有模型強化學習的流程圖如下圖所示:

然而在實際應用中,智慧型體並不是容易知曉 mdp 中的所有元素。通常情況下,狀態轉移函式和獎勵函式很難估計,甚至連環境中的狀態都可能是未知的,這時就需要採用免模型學習。免模型學習沒有對真實環境進行建模,智慧型體只能在真實環境中通過一定的策略來執行動作,等待獎勵和狀態遷移,然後根據這些反饋資訊來更新行為策略,這樣反覆迭代直到學習到最優策略。

model-based和model-free的區別:

免模型學習的泛化性要優於有模型學習,原因是免模型學習相比有模型學習還引入了對虛擬環境中的學習,泛化能力更強。

reinforcement learning 中環境初始時是未知的,agent 不知道環境如何工作,agent 通過不斷地與環境互動,逐漸改進策略。

plannning 中環境是已知的,我們被告知了整個環境的運作規則的詳細資訊。agent 能夠計算出乙個完美的模型,並且在不需要與環境進行任何互動的時候進行計算。agent 不需要實時地與環境互動就能知道未來環境,只需要知道當前的狀態,就能夠開始思考,來尋找最優解。

在這個遊戲中,規則是制定的,我們知道選擇 left 之後環境將會產生什麼變化。我們完全可以通過已知的變化規則,來在內部進行模擬整個決策過程,無需與環境互動

乙個常用的強化學習問題解決思路是,先學習環境如何工作,也就是了解環境工作的方式,即學習得到乙個模型,然後利用這個模型進行規劃。

exploration 和 exploitation 是強化學習兩個很核心的問題:

exploitation 往往可以帶來更好的短期 reward ,而 exploration 犧牲短期 reward 又可以獲得長期對行為的理解。所以就面臨乙個 trade-off,怎麼通過犧牲一些短期的 reward 來獲得行為的理解。

以選擇餐館為例:

與監督學習不同,強化學習任務存在延遲獎勵,這裡不妨先考慮比較簡單的情形:最大化單步獎賞,即僅考慮一步操作。需注意的是,即便在這樣的簡化情形下,強化學習仍與監督學習有顯著不同,因為機器需通過嘗試來發現各個動作產生的結果,而沒有訓練資料告訴機器應當做哪個動作

單步強化學習任務對應了乙個理論模型,即k-臂賭博機(k-armed bandit)。k-臂賭博機也被稱為多臂賭博機(multi-armed bandit)。如上圖所示,k-搖臂賭博機有 k 個搖臂,賭徒在投入乙個硬幣後可選擇按下其中乙個搖臂,每個搖臂以一定的概率吐出硬幣,但這個概率賭徒並不知道。賭徒的目標是通過一定的策略最大化自己的獎賞,即獲得最多的硬幣。

顯然,僅探索法能很好地估計每個搖臂的獎賞,卻會失去很多選擇最優搖臂的機會;僅利用法則相反,它沒有很好地估計搖臂期望獎賞,很可能經常選不到最優搖臂。因此,這兩種方法都難以使最終的累積獎賞最大化。

事實上,探索(即估計搖臂的優劣)和利用(即選擇當前最優搖臂)這兩者是矛盾的,因為嘗試次數(即總投幣數)有限,加強了一方則會自然削弱另一方,這就是強化學習所面臨的探索-利用窘境(exploration-exploitation dilemma)。顯然,想要累積獎賞最大,則必須在探索與利用之間達成較好的折中(trade-off)。

一 強化學習 RL 基礎

1.初探強化學習 1.什麼是強化學習?2.強化學習可以解決什麼問題?強化學習如何解決這些問題?2.強化學習 監督學習和非監督學習1.監督學習解決的是什麼問題?監督學習如何解決這些問題?2.強化學習與監督學習的差異 3.強化學習與非監督學習的差異 3.強化學習基礎理論 3.1.強化學習模型 ta t ...

強化學習筆記(1) 概述

強化學習的兩大主體 agent和environment 強化學習討論的問題是乙個智慧型體 agent 怎麼在乙個複雜不確定的環境 environment 裡面去極大化它能獲得的獎勵。當前的 agent 去跟環境互動,你就會得到一堆觀測。你可以把每乙個觀測看成乙個軌跡 trajectory 一場遊戲叫...

強化學習RL實戰篇

執行一維一級倒立擺環境 import gym env gym.make cartpole v0 env.reset for in range 1000 env.render env.step env.action space.sample 乙個典型的agent environment loop 的實...