上次講了馬爾科夫決策過程瓦糟,今天讓我們來看看要如何求解這個過程筒愚?
求解方法不止有一個,
有一種思路是菩浙,我們有一個 policy巢掺,即有了行為和狀態(tài)的概率分布。
對其進行初始化劲蜻,可以是隨機的陆淀,也可以根據(jù)具體問題用一些先驗知識初始化。
然后想要改進這個 policy斋竞,可以通過獲得數(shù)據(jù)倔约,玩幾次游戲,不斷重復坝初,policy 會隨著這個過程調(diào)整變得越來越好浸剩。
符合這個思想的有一個算法叫做: crossentropy 方法。
還是以學自行車為例鳄袍,開始的時候是等可能地踩腳踏板绢要,向各個方向轉(zhuǎn)輪子,有時候可能會馬上就摔倒拗小,有時候可能會騎一段距離重罪。
摔倒再起來重新騎,比如這樣騎了一百次哀九,然后有些時候會做的比較好了剿配,不會立刻摔倒了。
那么我們就想更頻繁地采取一下這樣的行動阅束,
例如我們觀察到呼胚,如果將輪子轉(zhuǎn)到摔倒的那個方向的對立面,就會騎得更長一些息裸,然后我們就會覺得蝇更,如果增加這樣做的概率,我們就可能騎得更久一些呼盆。
重復這樣一整個過程年扩,我們騎自行車就會更順手,更不容易犯錯访圃。
這樣的方式學習騎車100次厨幻,從中選擇幾次最有效率的過程,開始的時候可能會選擇不摔倒,現(xiàn)在可能是在一米之內(nèi)不要摔倒况脆。
然后用一個非常簡單的算法去迭代平绩,來不斷的調(diào)整這個 policy,最后就到達了一個最優(yōu)的 policy漠另,這時候就能夠非常熟練地騎自行車了。
再來看這個公式跃赚,它的意思就和上面的例子是一樣的笆搓,也是一個很符合直覺的思想:嘗試了 N 次,選擇其中最好的 m 次纬傲,稱為 elite满败,然后調(diào)整 policy 來增加在 elite 里面的 action 的概率。
最簡單的情況是這個 policy 只是一個表格叹括,它可以記憶所有的概率算墨。
例如騎自行車有十種情況,可能倒向左邊汁雷,倒向右邊净嘀,保持在中間,騎得快侠讯,騎得慢等等挖藏。
對每種情況都有轉(zhuǎn)向左邊,轉(zhuǎn)向右邊厢漩,或者加速減速的概率膜眠。
那么首先初始化這些概率,例如用 uniform 隨機分布溜嗜,它可以保證等可能的嘗試所有的行為宵膨。
再從這個概率分布中取樣來選擇行為。
然后開始騎車炸宵,例如嘗試騎自行車連續(xù)100次辟躏。
從這100次嘗試中,選擇了25個最好的焙压,作為 elite鸿脓。
然后建立了一個新的 metrics:
我們?nèi)?shù)這些 elite 過程中的狀態(tài)和行為:
對每個 state 我們都數(shù)一下出現(xiàn)了多少次,也數(shù)一下處于這個狀態(tài)中涯曲,多少次采取了什么樣的 action野哭。
然后做除法來得到這個概率分布,
再不斷重復這個過程幻件,這個概率分布就會不斷地更新拨黔,不斷地優(yōu)化,騎車也就可以變得越來越好绰沥。
學習資料:
Practical Reinforcement Learning
推薦閱讀 歷史技術博文鏈接匯總
http://www.reibang.com/p/28f02bb59fe5
也許可以找到你想要的:
[入門問題][TensorFlow][深度學習][強化學習][神經(jīng)網(wǎng)絡][機器學習][自然語言處理][聊天機器人]
Hello World 篱蝇!
This is 不會停的蝸牛 Alice 贺待!
?? 要開始連載強化學習系列啦!
今天開始我們一起來每天 2 分鐘零截,get 強化學習的一個小知識吧麸塞!