強化學習導論 第一章
這是最近讀sutton的“reinforcement learning - An introduction”的讀書筆記,其實大多數更像是按照自己理解寫的中文翻譯,可能語言有時沒有那麼嚴謹,主觀因素多一點,更像是一種和自己的對話。希望各位看官多多包涵,如果想真正理解一些,最好對照著英文原本看,也許能看出自己的想法。
這次第一篇就寫第一章。第一章是概述,更多的是從巨集觀上講強化學習的一些概念和思想,雖然概括性較強,但也還是有很多值得細讀的點,在下文一一道來。
1、強化學習中的基本元素:
policy --相當與環境和動作之間的一個對映,某種環境下最應該做什麼動作呢?這個是由policy決定的。policy的所有可能組成一個policy空間,強化學習的目的,就是在這個巨大的空間中,學習到某一種最優的policy。
reward function -- 也可以看成是一個對映,關於當前的動作,或者當前環境和當前動作的pair的好不好的一個評價。屬於立即評價,只考慮當前這一步的好壞。
value function -- 和上面的reward function對比著看,這一步考慮的是當前環境狀態的長遠優勢,也就是以當前狀態為起點,以後的多個時間點之後的各個狀態的reward之和。如何更好的估計這個值,是幾乎所有增強學習問題的解決重點和難點。這個也是如何評定一個policy好壞的標準。也是把增加學習和evoluation method (例如遺傳演算法)區別開的地方。
model of environment -- 對環境的建模。這個模型有點預測環境的走向的意思。比如,假如我有了這個模型,我可以知道在當下的環境下,下一步的環境狀態和reward是什麼。這樣,我就不必去真實的走這一步,就已經知道結果了,也就是不用非得試錯了。這是個新的發展方向。
關於evolution method 要多說點:它和強化學習的區別在於,它不利用任何你的過程資訊,只使用結果。比如我採用某一個policy,我就用這固定的policy和環境進行多次實驗,看看最後的結果概率分佈,然後知道這個policy有多大概率贏。然後換下一個,繼續大量實驗。最後在policy空間裡找到一個最優的。它的缺點是忽略了大量的實驗過程資訊,也即根本沒有考慮到value function。
2、tik-tok-toc遊戲中的例項
關於value function的更新規則,"temporal difference learning method"
if the step-size parameter is reduced properly over time, this method converges, for any fixed opponent, to the true probabilities of winning from each state given optimal play by our player
從這個遊戲中,可以引申出幾個點的思考:
(1)先驗知識的運用,可能改善學習效果
(2)強化學習的動作,除了像這個遊戲這種離散的,也可能是連續的,reward函式也可能是連續函式。
(3)強化學習的狀態集可能比這個遊戲所有的大的多,如何保證在大的狀態集上表現良好(具備很強的泛化能力),監督學習是一個好途徑。
(4)如果能獲得或者學習到一個環境模型,那麼會更好的改善學習效果。