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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

强化学习—— TD算法(Sarsa算法+Q-learning算法)

發布時間:2025/3/21 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 强化学习—— TD算法(Sarsa算法+Q-learning算法) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

強化學習—— TD算法(Sarsa算法+Q-learning算法)

  • 1. Sarsa算法
    • 1.1 TD Target
    • 1.2 表格形式的Sarsa算法
    • 1.3 神經網絡形式的Sarsa算法
  • 2. Q-learning算法
    • 2.1 TD Target
    • 2.2 表格形式的Q-learning算法
    • 2.3 神經網絡形式的Q-learning算法(DQN)
  • 3. Saras和Q-learning的區別
  • 4. Multi-step TD Target
    • 4.1 Sarsa的Multi-step TD Target
    • 4.2 Q-learning的Multi-step TD Target

1. Sarsa算法

1.1 TD Target

  • 回報函數的定義為:
    Ut=Rt+γRt+1+γ2Rt+2+???Ut=Rt+γ(Rt+1+γRt+2+???)Ut=Rt+γUt+1U_t=R_t+\gamma R_{t+1}+\gamma^2 R_{t+2}+\cdot \cdot \cdot\\ U_t=R_t+\gamma (R_{t+1}+\gamma R_{t+2}+\cdot \cdot \cdot)\\ U_t = R_t+\gamma U_{t+1}Ut?=Rt?+γRt+1?+γ2Rt+2?+???Ut?=Rt?+γ(Rt+1?+γRt+2?+???)Ut?=Rt?+γUt+1?
  • 假設t時刻的回報依賴于t時刻的狀態、動作以及t+1時刻的狀態:Rt←(St,At,St+1)R_t \gets (S_t,A_t,S_{t+1})Rt?(St?,At?,St+1?)
  • 則動作價值函數可以定義為:Qπ(st,at)=E[Ut∣at,st]Qπ(st,at)=E[Rt+γUt+1∣at,st]Qπ(st,at)=E[Rt∣at,st]+γE[Ut+1∣at,st]Qπ(st,at)=E[Rt∣at,st]+γE[Qπ(St+1,At+1)∣at,st]Qπ(st,at)=E[Rt+γQπ(St+1,At+1)]Q_\pi(s_t,a_t)=E[U_t|a_t,s_t]\\ Q_\pi(s_t,a_t)=E[R_t+\gamma U_{t+1}|a_t,s_t]\\Q_\pi(s_t,a_t)=E[R_t|a_t,s_t]+\gamma E[U_{t+1}|a_t,s_t]\\ Q_\pi(s_t,a_t)=E[R_t|a_t,s_t]+\gamma E[Q_\pi(S_{t+1},A_{t+1})|a_t,s_t]\\ Q_\pi(s_t,a_t) = E[R_t + \gamma Q_\pi(S_{t+1},A_{t+1})]Qπ?(st?,at?)=E[Ut?at?,st?]Qπ?(st?,at?)=E[Rt?+γUt+1?at?,st?]Qπ?(st?,at?)=E[Rt?at?,st?]+γE[Ut+1?at?,st?]Qπ?(st?,at?)=E[Rt?at?,st?]+γE[Qπ?(St+1?,At+1?)at?,st?]Qπ?(st?,at?)=E[Rt?+γQπ?(St+1?,At+1?)]
  • 依據蒙特卡洛近似:yt=rt+γQπ(st+1,at+1)y_t= r_t + \gamma Q_\pi(s_{t+1},a_{t+1})yt?=rt?+γQπ?(st+1?,at+1?)
  • TD學習的目標:yt≈Qπ(st,at)y_t \approx Q_\pi(s_t,a_t)yt?Qπ?(st?,at?)

1.2 表格形式的Sarsa算法

  • 學習動作價值函數Qπ(s,a)Q_\pi(s,a)Qπ?(s,a)
  • 假設動作和狀態的數量有限。
  • 則需要學習下列表格信息:
S\Aa1a_1a1?a2a_2a2?a3a_3a3?a4a_4a4?
s1s_1s1?Q11Q_{11}Q11?
s2s_2s2?
s3s_3s3?
s4s_4s4?

計算步驟為:

  • 觀測到一個transition,即:(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st?,at?,rt?,st+1?)
  • 依據策略函函數對動作進行抽樣:at+1~π(?∣st+1)a_{t+1}\sim \pi(\cdot|s_{t+1})at+1?π(?st+1?)
  • 查表得到TD Target:yt=rt+γQπ(st+1,at+1)y_t = r_t+\gamma Q_\pi(s_{t+1},a_{t+1})yt?=rt?+γQπ?(st+1?,at+1?)
  • TD error為:δt=Qπ(st,at)?yt\delta_t=Q_\pi(s_t,a_t)-y_tδt?=Qπ?(st?,at?)?yt?
  • 更新表格:Qπ(st,at)←Qπ(st,at)?α?δtQ_\pi(s_t,a_t)\gets Q_\pi(s_t,a_t) - \alpha \cdot \delta_tQπ?(st?,at?)Qπ?(st?,at?)?α?δt?
  • 1.3 神經網絡形式的Sarsa算法

    • 用神經網絡近似動作價值函數:q(s,q;W)~Qπ(s,a)q(s,q;W)\sim Q_\pi(s,a)q(s,q;W)Qπ?(s,a)
    • 神經網絡作為裁判去評判動作
    • 參數W需要學習
    • TD Target為:yt=rt+γ?q(st+1,at+1;W)y_t = r_t+\gamma \cdot q(s_{t+1},a_{t+1};W)yt?=rt?+γ?q(st+1?,at+1?;W)
    • TD error為:δt=q(st,at;W)?yt\delta_t = q(s_t,a_t;W)-y_tδt?=q(st?,at?;W)?yt?
    • loss 為:12?δt2\frac{1}{2}\cdot \delta_t^221??δt2?
    • 梯度為:δt??q(st,at;W)?W\delta_t \cdot \frac{\partial q(s_t,a_t;W)}{\partial W}δt???W?q(st?,at?;W)?
    • 進行梯度下降:W←W?α?δt??q(st,at;W)?WW\gets W - \alpha \cdot \delta_t \cdot \frac{\partial q(s_t,a_t;W)}{\partial W}WW?α?δt???W?q(st?,at?;W)?

    2. Q-learning算法

    Q-learning用來學習最優動作價值函數:Qπ?(s,a)Q_\pi^\star (s,a)Qπ??(s,a)

    2.1 TD Target

    Qπ(st,at)=E[Rt+γ?Qπ(St+1,At+1)]Q_\pi(s_t,a_t) = E[R_t+\gamma \cdot Q_\pi(S_{t+1},A_{t+1})]Qπ?(st?,at?)=E[Rt?+γ?Qπ?(St+1?,At+1?)]
    將最優策略函數計為:π?\pi^\starπ?
    則:Q?(st,at)=Qπ?(st,at)=E[Rt+γ?Qπ?(St+1,At+1)]Q^\star(s_t,a_t)=Q_{\pi^\star}(s_t,a_t)= E[R_t+\gamma \cdot Q_{\pi^\star}(S_{t+1},A_{t+1})]Q?(st?,at?)=Qπ??(st?,at?)=E[Rt?+γ?Qπ??(St+1?,At+1?)]
    t+1時刻的動作按下式進行計算:At+1=argmaxaQ?(st+1,a)A_{t+1}=\mathop{argmax}\limits_{a} Q^\star (s_{t+1},a)At+1?=aargmax?Q?(st+1?,a)
    則最優動作價值函數可作如下近似:Q?(st,at)=E[Rt+γ?maxaQ?(St+1,a)]≈rt+maxaQ?(st+1,a)Q^\star(s_t,a_t)=E[R_t+\gamma \cdot \mathop{max}\limits_{a}Q^\star(S_{t+1},a)]\\ \approx r_t+\mathop{max}\limits_{a}Q^\star(s_{t+1},a)Q?(st?,at?)=E[Rt?+γ?amax?Q?(St+1?,a)]rt?+amax?Q?(st+1?,a)

    2.2 表格形式的Q-learning算法

    S\Aa1a_1a1?a2a_2a2?a3a_3a3?a4a_4a4?
    s1(找出此行最大的Q)s_1(找出此行最大的Q)s1?(Q)Q11Q_{11}Q11?
    s2s_2s2?
    s3s_3s3?
    s4s_4s4?

    計算步驟為:

  • 觀測到一個transition,即:(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st?,at?,rt?,st+1?)
  • TD Target為:yt=rt+maxaQ?(st+1,a)y_t=r_t+\mathop{max}\limits_{a}Q^\star(s_{t+1},a)yt?=rt?+amax?Q?(st+1?,a)
  • TD error為:δt=Q?(st,at)?yt\delta_t=Q^\star(s_t,a_t)-y_tδt?=Q?(st?,at?)?yt?
  • 更新表格:Q?(st,at)←Q?(st,at)?α?δtQ^\star(s_t,a_t)\gets Q^\star(s_t,a_t) - \alpha \cdot \delta_tQ?(st?,at?)Q?(st?,at?)?α?δt?
  • 2.3 神經網絡形式的Q-learning算法(DQN)

  • 觀測到一個transition,即:(st,at,rt,st+1)(s_t,a_t,r_t,s_{t+1})(st?,at?,rt?,st+1?)
  • TD Target為:yt=rt+maxaQ(st+1,a;W)y_t=r_t+\mathop{max}\limits_{a}Q(s_{t+1},a;W)yt?=rt?+amax?Q(st+1?,aW)
  • TD error為:δt=Q(st,at;W)?yt\delta_t=Q(s_{t},a_t;W)-y_tδt?=Q(st?,at?W)?yt?
  • 參數更新:W←W?α?δt??Q(st,at;W)?WW\gets W - \alpha \cdot \delta_t \cdot \frac{\partial Q(s_t,a_t;W)}{\partial W}WW?α?δt???W?Q(st?,at?;W)?
  • 3. Saras和Q-learning的區別

  • Sarsa學習動作價值函數: Qπ(s,a)Q_\pi(s,a)Qπ?(s,a)
  • Actor-Critic中的價值網絡為用Sarsa訓練的
  • Q-learning訓練最優動作價值函數:Q?(s,a)Q^\star(s,a)Q?(s,a)
  • 4. Multi-step TD Target

    • one-step僅使用一個reward:rtr_trt?
    • multi-step 使用m個reward:rt,rt+1,...,tt+m?1r_t,r_{t+1},...,t_{t+m-1}rt?,rt+1?,...,tt+m?1?

    4.1 Sarsa的Multi-step TD Target

    yt=∑i=0m?1λirt+i+λmQπ(st+m,at+m)y_t = \sum_{i=0}^{m-1}\lambda^i r_{t+i} + \lambda^mQ_\pi(s_{t+m},a_{t+m})yt?=i=0m?1?λirt+i?+λmQπ?(st+m?,at+m?)

    4.2 Q-learning的Multi-step TD Target

    yt=∑i=0m?1λirt+i+λmmaxaQ?(st+m,a)y_t = \sum_{i=0}^{m-1}\lambda^i r_{t+i} + \lambda^m\mathop{max}\limits_{a}Q^\star(s_{t+m},a)yt?=i=0m?1?λirt+i?+λmamax?Q?(st+m?,a)
    本文為參考B站學習視頻書寫的筆記!
    by CyrusMay 2022 04 08

    我們在小孩和大人的轉角
    蓋一座城堡
    ——————五月天(好好)——————

    總結

    以上是生活随笔為你收集整理的强化学习—— TD算法(Sarsa算法+Q-learning算法)的全部內容,希望文章能夠幫你解決所遇到的問題。

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