色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 基于時態(tài)差分法的強化學(xué)習(xí):Sarsa和Q-learning

          基于時態(tài)差分法的強化學(xué)習(xí):Sarsa和Q-learning

          發(fā)布人:數(shù)據(jù)派THU 時間:2023-08-21 來源:工程師 發(fā)布文章

          時態(tài)差分法(Temporal Difference,  TD)是一類在強化學(xué)習(xí)中廣泛應(yīng)用的算法,用于學(xué)習(xí)價值函數(shù)或策略。Sarsa和Q-learning都是基于時態(tài)差分法的重要算法,用于解決馬爾可夫決策過程(Markov Decision Process, MDP)中的強化學(xué)習(xí)問題。

          下面是最簡單的TD方法更新:

          圖片

          它只使用當(dāng)前行動之后的獎勵值和下一個狀態(tài)的值作為目標。Sarsa(State-Action-Reward-State-Action)和Q-learning是都是基于時態(tài)差分法的強化學(xué)習(xí)方法。

          Sarsa和Q-learning的區(qū)別

          圖片

          Sarsa代表State-Action-Reward-State-Action。是一種基于策略的方法,即使用正在學(xué)習(xí)的策略來生成訓(xùn)練數(shù)據(jù)。Q-learning是一種非策略方法它使用不同的策略為正在學(xué)習(xí)的值函數(shù)的策略生成訓(xùn)練數(shù)據(jù)。

          Sarsa的更新規(guī)則如下:

          圖片

          其中:

          • Q(s, a) 是在狀態(tài)s下采取動作a的值函數(shù)估計。
          • α 是學(xué)習(xí)率,控制每次更新的步長大小。
          • r 是在狀態(tài)s下采取動作a后獲得的即時獎勵。
          • γ 是折扣因子,表示未來獎勵的折現(xiàn)率。
          • s' 是在執(zhí)行動作a后得到的新狀態(tài)。
          • a' 是在新狀態(tài)s'下選擇的下一個動作。

          Q-learning是另一種基于時態(tài)差分法的增強學(xué)習(xí)算法,用于學(xué)習(xí)一個值函數(shù),表示在狀態(tài)s下采取最優(yōu)動作得到的期望累積獎勵。Q-learning的更新規(guī)則如下:

          圖片

          其中:max(Q(s', a')) 表示在新狀態(tài)s'下選擇下一個動作a'時的最大值函數(shù)估計。

          從上面的更新可以看出這兩個方法非常相似,主要區(qū)別在于它們的更新策略。在Sarsa中,更新策略考慮了在新狀態(tài)下采取的下一個動作,而在Q-learning中,更新策略總是選擇了新狀態(tài)下使值函數(shù)最大化的動作。因此,Sarsa更傾向于跟隨當(dāng)前策略進行學(xué)習(xí),而Q-learning更傾向于學(xué)習(xí)最優(yōu)策略。

          cliff walking環(huán)境下的表現(xiàn)

          這是RL書中描述的一個簡單環(huán)境,如下面的截圖所示。

          圖片

          • 事件開始于狀態(tài)S,我們的代理開始于這種狀態(tài)。
          • 一個事件在狀態(tài)G結(jié)束,也就是這是終態(tài)。
          • 在S和G之間的最下面一行的狀態(tài)是懸崖狀態(tài)。
          • 從懸崖狀態(tài)以外的任何狀態(tài)轉(zhuǎn)換的獎勵為-1,并且代理會移動到鄰近的狀態(tài)。
          • 懸崖狀的獎勵為-100,并且代理移動到開始狀態(tài)S,也就是說結(jié)束了。
          • 當(dāng)代理到達終端狀態(tài)G,走了100步或者最終處于懸崖狀態(tài)時,就代表結(jié)束了。
          • 圖中藍色路徑是安全的,但不是最優(yōu)的,因為它需要很多步才能到達目標狀態(tài)。
          • 紅色路徑是最優(yōu)的,但它是非常危險的,因為代理可能會發(fā)現(xiàn)自己在懸崖邊緣。

          從環(huán)境的描述來看,代理的目標是最大化累積獎勵,即采取盡可能少的步數(shù),因為每一步的值為-1。最優(yōu)路徑是懸崖上方的那條,因為它只需要13步,值為-13。我使用上面的2td(0)方法來確定它們是否在上面以獲得最優(yōu)路徑。

          實驗環(huán)境如下:

          在訓(xùn)練中使用以下超參數(shù):

          • episodes:2000;
          • discounting factor:1;
          • Alpha: 0.1,這是學(xué)習(xí)率;
          • Epsilon: 0.1, 選擇具有相同概率的所有動作的概率,用于ε貪婪算法。

          結(jié)果:

          Sarsa和Q-learning在收斂的時間上大致相同,但Q-learning能夠?qū)W習(xí)13個步驟的最優(yōu)路徑。Sarsa無法學(xué)習(xí)最優(yōu)路徑,它會選擇避開懸崖。這是因為它的更新函數(shù)是使用貪婪的方式來獲取下一個狀態(tài)-動作值,因此懸崖上方的狀態(tài)值較低。

          Q-learning在更新中使用了下一個狀態(tài)動作值的最大值,因此它能夠小心地沿著邊緣移動到目標狀態(tài)G。下圖顯示了每個訓(xùn)練論測的學(xué)習(xí)步驟數(shù)量。為了使圖表更加平滑,這里將步驟數(shù)按20個一組取平均值。我們可以清楚地看到,Q-learning能夠找到最優(yōu)路徑。

          圖片

          下圖顯示了2種算法的在線性能*這些值再次以20組為單位進行平均)。我們可以看到,Sarsa的性能比Q-learning更好。這是因為隨著Q-learning學(xué)習(xí)獲得最優(yōu)路徑,偶爾會發(fā)現(xiàn)自己陷入絕境,因為要更新的狀態(tài)動作對的生成遵循了貪婪算法。而Sarsa學(xué)會了避開靠近懸崖的狀態(tài),從而減少了靠近懸崖的機會。

          圖片

          總結(jié)

          這個簡單的例子說明了Sarsa和Q-learning之間的比較,我們總結(jié)兩個算法的區(qū)別:

          Sarsa和Q-learning都是基于時態(tài)差分法的強化學(xué)習(xí)算法,它們在解決馬爾可夫決策過程(MDP)中的強化學(xué)習(xí)問題時有一些重要的區(qū)別。

          1. 更新策略:

            • Sarsa:在Sarsa中,更新策略是"狀態(tài)-動作-獎勵-下一個狀態(tài)-下一個動作",即更新后的動作與下一個狀態(tài)相關(guān)。這意味著Sarsa在更新值函數(shù)時會考慮在新狀態(tài)下采取的下一個動作,因此其學(xué)習(xí)過程更加穩(wěn)定,可以學(xué)習(xí)到策略的各種特征。
            • Q-learning:Q-learning的更新策略是"狀態(tài)-動作-獎勵-最大值動作",即更新后的動作是在新狀態(tài)下具有最大值函數(shù)估計的動作。這使得Q-learning更加傾向于學(xué)習(xí)最優(yōu)策略,但也可能導(dǎo)致其學(xué)習(xí)過程不穩(wěn)定,容易受到噪聲干擾。

          2. 學(xué)習(xí)方式:

            • Sarsa:由于Sarsa在更新時會考慮在新狀態(tài)下執(zhí)行的下一個動作,它更適合于在線學(xué)習(xí)和與環(huán)境進行交互時的應(yīng)用。Sarsa在實際應(yīng)用中可能更加穩(wěn)定,但也可能會收斂較慢。
            • Q-learning:Q-learning更傾向于學(xué)習(xí)最優(yōu)策略,但由于其更新策略不考慮實際執(zhí)行的下一個動作,可能在一些情況下收斂更快,但也更容易受到噪聲的影響。

          3. 探索策略:

            • Sarsa:由于Sarsa考慮了在新狀態(tài)下執(zhí)行的下一個動作,它在學(xué)習(xí)過程中傾向于跟隨當(dāng)前策略進行探索,可能更適合于需要較多探索的任務(wù)。
            • Q-learning:Q-learning在更新時不受當(dāng)前策略的影響,更容易在學(xué)習(xí)過程中進行探索。然而,這種無關(guān)探索策略可能導(dǎo)致Q-learning在某些情況下過度探索,陷入不收斂的狀態(tài)。

          4. 應(yīng)用場景:

            • Sarsa:適用于需要穩(wěn)定學(xué)習(xí)過程、重視探索的任務(wù),或者在與環(huán)境進行交互時進行在線學(xué)習(xí)的情況。
            • Q-learning:適用于傾向于學(xué)習(xí)最優(yōu)策略的任務(wù),或者在需要快速收斂時的情況。

          這兩種算法只是強化學(xué)習(xí)領(lǐng)域眾多算法中的兩種,還有其他更高級的算法如Deep Q Network (DQN)、Actor-Critic等,可以根據(jù)問題的復(fù)雜度和要求選擇適當(dāng)?shù)乃惴ā?/p>

          最后如果你想自行進行試驗,這里是本文兩個試驗的源代碼:

          https://github.com/mirqwa/reinforcement-leaning

          作者:Kim Rodgers


          *博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



          關(guān)鍵詞: AI

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉