1. 回顧q learning
還是同樣的例子,紅色機械人在4x4的迷宮中尋找黃色的寶藏。找到寶藏,將會的到+1的獎勵,如果掉進黑色陷阱就回的到-1的獎勵(懲罰)。
首先回顧一下q表如下
q table (states\actions)
left (a1)
right (a2)
up (a3)
down (a4)
s0-13-1
2s112
-11......
......
.. q(s0,a2) = q(s0,a2) + α[r(s1) + γ*maxa q(s1,a)-q(s0,a2)]
在q learning 演算法中,當機械人處於s0的狀態時,它的目標q值是:
r(s1) + γ*maxa q(s1,a)。此時他還在s0的位置上,但是已經在計算s1上的最大q值了。但是此時它並沒有行動,也不一定會在s1採取q值最大q(s1, a2)的行動。因為我們提到,它還有10%的概率隨機選擇其他的行動 (ε貪婪方法(ε -greedy method))。
2. sarsa 行動派
在sarsa演算法中,機械人的目標是
r(s1) + γ*q(s1,a)
至於a是多少,完全取決於機械人實際上選擇的哪乙個action。機械人有90%的概率會選擇q值最大的action(a2),還有10%的概率會隨機選擇乙個action。
所以,sarsa的演算法是這樣的。
除了其目標q值與q learning 有所不同之外,其他的都是一模一樣的。
q learning 通過max的函式,總是在尋找能最快獲得寶藏的道路,所以他比較勇敢。而sarsa 卻相對謹慎。
3. sarsa-lambda
q learning 和 sarsa都是單步更新的演算法。單步跟新的演算法缺點就是在沒有找到寶藏之前,機械人在原地打轉的那些行動也被記錄在案,並更新了q表,即便那些行動都是沒有意義的。
lambda(λ)這個衰減係數的引入,就是為了解決這個問題的。與γ用來衰減未來預期q的值一樣,λ是當機械人獲得寶藏之後,在更新q表的時候,給機械人乙個回頭看之前走過的路程的機會。相當於,機械人每走一步就會在地上插一桿旗子,然後機械人每走一步旗子就會變小一點。
sarsa-lambda 的完整演算法在這裡:
注意,該演算法與sarsa 演算法不同的地方就是多乘了乙個e(s, a) (eligibility trace"不可或缺性值"),而這個e(s, a)又同時受γ和λ調控。並且在更新q表的時候,不僅僅是更新乙個q(s,a),而是整個q表所有的q值都被更新了。
Q Learning 和SARSA演算法
q更新公式 greedy策略 在q learning的更新過程中,每一步都要根據當前的state以及q函式確定乙個合適的行動action。這裡有乙個如何平衡 經驗 和 探索 的問題。如果完全按照經驗行動,即每次都在q state,中選擇對應值最大的action,那麼很有可能一直侷限在已有經驗中,難以...
強化學習Sarsa
演算法如下 相比q learning而言,sarsa會比較膽小,不希望自己掉進陷阱裡,從而做出的決策都比較謹慎 而q learning會選擇一條雖然比較危險但是可以成功的道路 off policy class qlearningtable rl def init self,actions,learn...
AI學習筆記
拖入進來選擇嵌入,防止拖拽的圖層消失 一 常用的快捷鍵 後續慢慢新增 crtl d 快捷鍵使用 crtl shift f10透明度面板 crtl r 鎖定圖層 shift p 網格透視工具 二 路徑查詢器 crtl shift f9 選擇兩個不同的圖形合併或者減去頂層 三 透視 現實中平行的先在遠方...