landing_image landing_image landing_image landing_image landing_image landing_image landing_image
portrait

YX.S

成為一個厲害的普通人

post-image

這是個很有名的強化學習問題:

今天你有一千個硬幣可以去一間店玩拉霸機

假設你已經玩到500次了,那麼接下來,你該如何選擇動作?

玩新的拉霸機?還是玩之前獲得過高分的拉霸機?

 


在我們過去的經驗當中,獲得的獎勵最大的那次動作
我們會稱之為:

貪婪行為(greedy action)

如果在下次的動作,選擇了貪婪行為,稱之為

exploiting(利用)

如果不是貪婪行為,則稱為

exploring(探索)

exploiting以及exploring是非常衝突的

透過exploiting:我們可以保證這一次的動作獎勵是最大的

但長遠來看,我們可以會因為沒有探索而失去得到更好獎勵的機會

 

因此代理在訓練的過程中,我們必須要決定出一個機率,讓他決定何時該exploiting,何時該exploring

 

在一般的情況下,我們總是選擇目前已知會得到最大回報的貪婪行為

但每隔一段時間,就會選擇該去進行其他未知的動作

我們用 ε 來表示機率,稱之為:ε-greedy

ε 越大,就表示進行exploring的次數可能越多

我們現在來定義一下

Rt表示為: 第 t 個時間步驟得到的獎勵

Q(a)表示為:動作 a 所產生的實際價值

Qt(a)表示為:經過 t 個時間步驟後的實際價值

Nt(a)表示為:第 t 個時間步驟所選擇的動作

則Qt(a)可以表示成:

但要Qt(a)計算Qt(a)好像有點麻煩

也需要花額外的記憶體來記錄

所以我們用

Qk表示: 第 k-1 個步驟的估計獎勵,可以表示為:

對於所有的k都成立,Q2=R1….

這樣的表示就只要更新k就好

而且這樣可以更簡單地表示出:

而StepSize這個參數,我們之後會用 α 代替 1/k

而在現實問題當中,環境通常不是穩定的

白話一點說,如果玩拉霸機1000次了

最近獲得的500次一定會比最一開始的500次分數還有效

所以 α 不會是平均數,而是一個定義出來的機率

 

今天介紹了簡單的強化學習問題

在訓練中代理該exploiting還是該exploring

會大大的影響未來的狀態及最終的獎勵

下次再介紹該怎麼決定動作價值囉

 

 

參考:Reinforcement Learning: An Introduction(Richard S. Sutton and Andrew G. Barto)第2節