強化學(xué)習(xí)——Q-learning

一、什么是Q_learning

Q_learning是強化學(xué)習(xí)中的一個決策算法,如果你還不知道什么是強化學(xué)習(xí),可以參看強化學(xué)習(xí)這篇文章。

二、Q-Learning 決策

假設(shè)我們的行為準則已經(jīng)學(xué)習(xí)好了,現(xiàn)在我們處于狀態(tài) s(tate) 1,有兩個行為 a(ction) 1、a(ction) 2,在這種 s1 狀態(tài)下,a2 帶來的潛在獎勵要比 a1 高(如下表所示),這里的潛在獎勵我們可以用一個有關(guān)于 s 和 a 的 Q 表格代替,在Q表格中,Q(s1, a1) = -2,要小于 Q(s1, a2) = 1,所以我們判斷要選擇 a2 作為下一個行為。(注意,此時Q表里的數(shù)據(jù)是隨機設(shè)置的,稱為估計值,而Q_learning的目的就是更新Q表,使之變成一個準確的Q表。)

Q a1 a2
s1 -2 1
s2 -4 2

當選擇 a2 后,狀態(tài) s1 結(jié)束,我門到達狀態(tài) s2,我們還是有兩個同樣的選擇,重復(fù)上面的過程,在行為準則 Q 表中尋找 Q(s2, a1)、Q(s2, a2) 的值,并比較他們的大小,選取較大的一個。接著根據(jù) a2 我們到達 s3 并在此重復(fù)上面的決策過程。

三、Q-Learning 更新

根據(jù) Q 表的估計,因為在 s1 中, a2 的值比較大,通過之前的決策方法,我們在 s1 采取了 a2,并到達 s2,這時,我們開始更新用于決策的 Q 表,接著我們分別看看兩種行為哪一個的 Q 值大。

比如說 Q(s2, a2) 的值比 Q(s2, a1) 的大,所以我們把大的值乘上一個衰減值 gamma (比如0.9) 并加上到達 s2 時所獲取的獎勵 R(eward),因為會獲取實實在在的獎勵 R,我們將這個作為我現(xiàn)實中 Q(s1, a2) 的值,但是我們之前是根據(jù) Q 表估計 Q(s1, a2) 的值。所以有了現(xiàn)實和估計值,我們就能更新Q(s1, a2),根據(jù)估計與現(xiàn)實的差距,將這個差距乘以一個學(xué)習(xí)效率 alpha 累加上舊的 Q(s1, a2) 的值,變成新的值。

Q 表更新方式

但時刻記住,我們雖然用 maxQ(s2) 估算了一下 s2 狀態(tài),但還沒有在 s2 做出任何的行為,s2 的行為決策要等到更新完了以后再重新另外做。這就是 Off-Policy 的 Q learning 是如何決策和學(xué)習(xí)優(yōu)化決策的過程。

四、Q-Learning 整體算法

Initialize Q arbitrarily // 隨機初始化Q表
Repeat (for each episode): // 每一次從開始到結(jié)束是一個episode
    Initialize S // S為初始位置的狀態(tài)
    Repeat (for each step of episode):
        Choose a from s using policy derived from Q(ε-greedy) //根據(jù)當前Q和位置S,使用一種策略,得到動作A,這個策略可以是ε-greedy等
        Take action a, observe r // 做了動作A,到達新的位置S',并獲得獎勵R,獎勵可以是1,50或者-1000
        Q(S,A) ← Q(S,A) + α*[R + γ*maxQ(S',a))-Q(s,a)] // 在Q中更新S
        S ← S'
    until S is terminal //即到游戲結(jié)束為止

這一段代碼概括了我們之前所有的內(nèi)容。這也是 Q_learning 的算法, 每次更新我們都用到了 Q 現(xiàn)實和 Q 估計,而且 Q learning 的重點就是在 Q(s1, a2) 現(xiàn)實中,也包含了一個 Q(s2) 的最大估計值,將對下一步的衰減的最大估計和當前所得到的獎勵當成這一步的現(xiàn)實。

最后我們來說說這套算法中一些參數(shù)的意義。Epsilon Greedy 是用在決策上的一種策略,比如 epsilon = 0.9 時, 就說明有 90% 的情況我會按照 Q 表的最優(yōu)值選擇行為,10% 的時間使用隨機選行為,這樣做的目的是讓其有機會跳出局部最優(yōu)。alpha是學(xué)習(xí)率,來決定這次的誤差有多少要被學(xué)習(xí)的,alpha是一個小于1 的數(shù)。gamma 是對未來 reward 的衰減值。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Q Learn 也是一個決策過程,,Q表使用: Q表的update運行邏輯(沒有懂細節(jié)) R為到此時獲取到的獎勵值...
    重新出發(fā)_砥礪前行閱讀 705評論 0 1
  • 一、什么是強化學(xué)習(xí) 強化學(xué)習(xí)是一類算法,是讓計算機實現(xiàn)從一開始完全隨機的進行操作,通過不斷地嘗試,從錯誤中學(xué)習(xí),最...
    小道蕭兮閱讀 33,226評論 5 12
  • 一. 增強學(xué)習(xí)簡介 1.1 什么是增強學(xué)習(xí)? 機器學(xué)習(xí)的算法可以分為三類:監(jiān)督學(xué)習(xí),非監(jiān)督學(xué)習(xí)和增強學(xué)習(xí)。 增強學(xué)...
    阿阿阿阿毛閱讀 31,701評論 0 25
  • 以下內(nèi)容來源于一次部門內(nèi)部的分享,主要針對AI初學(xué)者,介紹包括CNN、Deep Q Network以及Tensor...
    yhthu閱讀 31,601評論 36 125
  • 近日看法布爾的《昆蟲記》時,才知道,不單是人,昆蟲和動物被裝在麻袋里旋轉(zhuǎn),轉(zhuǎn)得它們認不出方向,把它們放出來后,依然...
    梅開無聲閱讀 484評論 0 0

友情鏈接更多精彩內(nèi)容