日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【强化学习】Sarsa 和 Sarsa(λ)

發布時間:2025/4/5 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【强化学习】Sarsa 和 Sarsa(λ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • Sarsa算法(on-policy)
        • 概述
            • on-poilcy:
        • 算法流程
    • Sarsa(λ)算法(on-policy)
        • 概述
            • 狀態價值迭代公式:
            • 動作價值迭代公式:
        • 算法流程
    • Sarsa小結

強化學習筆記,內容來自 劉建平老師的博客

Sarsa算法(on-policy)

概述

? 給定強化學習的5個要素:狀態集S, 動作集A, 即時獎勵R,衰減因子γ, 探索率?, 求解最優的動作價值函數q?和最優策略π?

? 關鍵詞:時序差分、model-free、on-policy、?-greedy、價值迭代

? Sarsa = s + a + r + s’ + a‘,首先基于??greedy算法在當前狀態S選擇一個動作A,這樣系統會轉到一個新的狀態S′,同時給一個即時獎勵R,在新的狀態S′下基于??greedy算法在狀態S‘ 選擇一個動作A′,但是注意這時候并不執行這個動作A′,只是用來更新價值函數:
?
? 其中,γ是衰減因子,α是迭代步長。這里和蒙特卡羅法求解在線控制問題的迭代公式的區別主要是,收獲Gt的表達式不同,對于時序差分,收獲Gt的表達式是R+γQ(S′,A′)。除了收獲Gt的表達式不同,Sarsa算法和蒙特卡羅在線控制算法基本類似。

on-poilcy:

? 價值函數的更新和新動作的選擇使用同一個策略policy,因此在動作的選擇上保持一致。

?

算法流程

輸入:迭代輪數T、狀態集S、動作集A、步長α、衰減因子γ、探索率?

輸出:所有的狀態和動作對應的價值Q

? 1. 隨機初始化所有狀態和動作對應的價值Q,終止狀態的Q初始化為0

? 2. for i in [ 1, T ]:

? a)初始化S為當前狀態序列的第一個狀態,依據??greedy算法對當前狀態S 選出動作A

? b)執行動作A,由環境得到新狀態S‘ 和獎勵R

? c)依據??greedy算法對狀態S‘ 選出動作A’

? d)對當前狀態S和動作A,按公式更新價值函數Q(S,A)

? e)前進一步:S = S’,A = A‘

? f)if S’是終止狀態,break;else 跳回步驟b

? (注意:步長α一般需要隨著迭代逐漸變小,這樣才能保證動作價值函數Q可以收斂。當QQ收斂時,策略??greedy算法也就收斂了)

?
?
?

Sarsa(λ)算法(on-policy)

概述

? 多步時序差分在線控制算法。TD(λ)有前向和后向兩種價值函數迭代方式,它們是等價的。在控制問題的求解時,基于反向認識的 SARSA(λ)算法將可以有效地在線學習,數據學習完即可丟棄。因此SARSA(λ)算法默認都是基于反向來進行價值函數迭代。

狀態價值迭代公式:

?

動作價值迭代公式:

?

?

算法流程

輸入:迭代輪數T、狀態集S、動作集A、步長α、衰減因子γ、探索率?、多步參數λ

輸出:所有的狀態和動作對應的價值Q

? 1. 隨機初始化所有狀態和動作對應的價值Q,終止狀態的Q初始化為0

? 2. for i in [ 1, T ]:

? a)初始化S為當前狀態序列的第一個狀態,依據??greedy算法對當前狀態S 選出動作A,初始化所有狀態動作的效用跡E為0

? b)執行動作A,由環境得到新狀態S‘ 和獎勵R

? c)依據??greedy算法對狀態S‘ 選出動作A’

? d)更新效用跡函數E(S, A) 和 誤差 δ:
?
? e)對當前序列中所有狀態S和對應動作A,更新價值函數Q(S, A)和效用跡函數E(S, A) :
?

? f)前進一步:S = S’,A = A‘

? g)if S’是終止狀態,break;else 跳回步驟b

? (注意:對于步長α,和Sarsa一樣,一般也需要隨著迭代的進行逐漸變小才能保證動作價值函數Q收斂)

?

Sarsa小結

? SARSA算法和動態規劃法比起來,不需要環境的狀態轉換模型,和蒙特卡羅法比起來,不需要完整的狀態序列,因此比較靈活。在傳統的強化學習方法中使用比較廣泛。

但是SARSA算法也有一個傳統強化學習方法共有的問題,就是無法求解太復雜的問題。在 SARSA 算法中,Q(S,A)Q(S,A) 的值使用一張大表來存儲的,如果狀態和動作都達到百萬乃至千萬級,需要在內存里保存的這張大表會超級大,甚至溢出,因此不是很適合解決規模很大的問題。當然,對于不是特別復雜的問題,使用SARSA還是很不錯的一種強化學習問題求解方法。

總結

以上是生活随笔為你收集整理的【强化学习】Sarsa 和 Sarsa(λ)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。