從零開始-Machine Learning學習筆記(32)-強化學習
文章目錄
下圖是強化學習的一個簡單的示意圖。強化學習任務通常用馬爾可夫決策過程(Markov Decision Process, MDP)來描述:機器處於環境E中,狀態空間為X,其中每個狀態 是機器感知到的環境的描述;機器能採取的動作構成了動作空間A,若某個動作 作用在當前狀態x上,則潛在的轉移函式P將使得環境從當前狀態按某種概率轉移到另個狀態,在轉移的同時,環境會根據潛在的“獎賞”函式R反饋給機器一個獎賞。所以強化學習任務對應了四元組:
X
:狀態空間
A
:動作空間
P
:轉移概率
R
:獎賞函式
在上面的這個圖中,狀態空間一共有四種情況X={缺水,健康,溢水,凋亡},當處於“缺水”的狀態的時候;如果執行動作“澆水”,則有p=0.5的概率狀態會轉移到“缺水”,還有p=0.5的概率狀態會轉移到“健康”;當狀態從“缺水”轉移到“缺水”的時候,給出的獎賞是-1,當狀態從“缺水”轉移到“健康”的時候,給出的獎賞為1。同理,如果執行的動作是“不澆水”,則有p=0.4的概率狀態會轉移到“缺水”,還有p=0.6的概率狀態會轉移到“凋亡”;當狀態從“缺水”轉移到“缺水”的時候,給出的獎賞是-1,當狀態從“缺水”轉移到“凋亡”的時候,給出的獎賞-100。
機器要做的是通過在環境中不斷地嘗試而學得一個"策略"(policy) ,根據這個策略,在狀態z 下就能得知要執行的動作 ,例如看到瓜苗狀態是缺水時,能返回動作"澆水"。於是使用 表示狀態為x下選擇動作為a的概率,這裡有 。
策略的優劣取決於長期執行這一策略後得到的累積獎賞;所以強化學習就是要學習出一種策略,使得最後的累計獎賞最高。
1. K-搖臂賭博機
強化學習任務的最終獎賞是在多步動作之後才能觀察到,這裡我們不妨先考慮比較簡單的情形:最大化單步獎賞,即僅考慮一步操作。最大化單步獎賞需要考慮兩個方面:(1)每個動作的獎賞;(2)要執行獎賞最大的動作。
如果每個動作的獎賞是一個確定的值,那麼遍歷所有的獎賞就能找到最大的動作;但是更多的時候,一個動作的獎賞值往往來自於一個概率分佈,所以,一次嘗試並不能確切地獲得平均獎賞值。
1.1 探索與利用
單步強化學習任務就對應了一個理論模型-“K-搖臂賭博機”。所謂的K-搖臂賭博機是有k個搖臂,投入一個硬幣後可以按下一個搖臂,每個搖臂以一定的概率吐出硬幣,但是這個概率是多少並不知道。於是賭徒需要通過一定的策略使得自己獲得最多的硬幣,即最大化獎賞!於是就有以下的兩種策略:
僅探索(exploration-only):將所有機會平均分配給每個搖臂,最後用每個搖臂各自的平均吐幣概率作為作為其獎賞期望的近似估計;
僅利用(exploitation-only):選擇到目前為止平均獎賞最大的搖臂,若有幾個搖臂的平均獎賞一樣的大,則隨機選擇一個。
僅探索可以很好的估計每個搖臂的獎賞,但是卻失去了很多選擇最大獎賞的機會;僅利用則沒有估計每個搖臂的獎賞,很可能選不到獎賞最大的搖臂。這兩種情況的感覺就好像是:
僅探索說我知道那個給的獎賞多,但我沒有多少選擇的機會了,我大部分的機會都是用於試出獎賞最大的搖臂;而僅利用說我不知道哪個搖臂給的獎賞最多,我就一直選我當前所知道的給的獎賞最多的那個搖臂,要是我提前知道那個最多,我就一直選擇那個最大,這樣我的獎賞就是最大的!
所以這兩種情況是矛盾的,欲使累積的獎賞最大,就需要在“僅探索”和“僅利用”之間達到一個平衡!
1.2 -貪心
貪心法是用一個概率來將探索和利用進行了一個折中。每次嘗試時,以
的概率進行探索,即以均勻概率隨機選取一個搖臂;以
的概率進行利用,即選擇當前平均獎賞最高的搖臂(若有多個,則隨機選取一個)。
令Q(k)來記錄搖臂k的平均獎賞,假設搖臂k被嘗試了n次,每次的獎賞為
,於是有:
於是每次只需要記錄已嘗試的次數n和最近的平均獎賞
即可計算當前的平均獎賞,其演算法描述如下所示:
1.3 Softmax
Softmax演算法基於當前已知的搖臂平均獎賞來對探索和利用進行折中。若各搖臂的平均獎賞相當,則選取各搖臂的概率也相當;若某些搖臂的平均獎賞
明顯高於其他搖臂,則它們被選取的概率也明顯更高。所以區別於
-貪心,Softmax通過控制搖臂k被選中的概率,來對探索和利用進行折中,Softmax使用了一個Boltzmann分佈:
其中
稱為溫度,其值越小,則平均累計獎賞高的搖臂被選取的概率越高。
趨近於0,Softmax則趨近於僅利用,因為每次取出的都是當前平均累計獎賞最高的樣本;
趨近與無窮大,Softmax趨近於僅探索,因為P(k)接近於1/K,是一個均勻分佈,選擇哪一個搖臂的概率都一樣。
2. 有模型學習
上一小節的K-搖臂賭博機是一種單步強化學習任務。如果我們要考慮多步強化學習任務,暫且先假定任務對應的馬爾可夫決策過程四元組 均為己知,這樣的情形稱為"模型己知",即機器已對環境進行了建模,能在機器內部模擬出與環境相同或近似的狀況。在己知模型的環境中學習稱為"有模型學習"(model-based learning)。
2.1 策略評估
在模型己知時,對任意策略
能估計出該策略帶來的期望累積獎賞。下面做幾個約定:
:表示從狀態x出發,使用策略
所帶來的累計獎賞;
:表示從狀態x出發,執行動作a後再使用策略所帶來的累計獎賞;
:被稱為狀態值函式(state value function)
,表示在指定狀態上的累積獎賞;
:被稱為狀態-動作值函式(state-action value function)
,表示指定在狀態-動作上的累積獎賞。根據累計函式的定義,我們可以寫出狀態值函式和狀態動作值函式:
需要注意的是,上式中的