1. 程式人生 > 其它 >學習日誌-2021.11.08

學習日誌-2021.11.08

學習日誌-2021.11.08

其他Q-Learning

SA-Q-learning

為了平衡Q-learning的探索與利用,基於Metropolis準則提出的演算法

演算法描述
  • 初始化Q表

  • 對每一輪次(episode):

    • 隨機選擇或初始化一個狀態 \(s_t\)

    • 對於每一步(step):

      • 從動作空間隨機選擇一個動作 \(a_r\)

      • 根據策略 \(\pi (s_t)\) (一般指Q-learning的 \(\epsilon - greedy\) 策略)從動作空間選擇一個動作 \(a_p\)

      • 獲取一個隨機數 \(\zeta ∈ (0,1)\)

      • 如果 \(\zeta < \exp ((Q(s,a_r)-Q(s,a_p))/T)\)

        ,那麼 \(a ← a_r\) ,否則 \(a ← a_p\)

      • 執行動作 \(a\) ,並獲得一個收益 \(r_{t+1}\) 和當前的新狀態 \(s_{t+1}\)

      • 根據下面的公式更新 \(Q (s_t , a_t)\)

        \[Q(s_t,a_t) ← Q(s_t,a_t) + \alpha (r_{t+1} + \gamma \max_a Q(s_{t+1},a) - Q(s_t , a_t)) \]
      • \(s_t ← s_{t+1}\)

    • 當(step)到達某一個目標狀態時,結束迴圈

    • 使用溫度下降公式重新計算溫度引數 \(T\)

  • 當輪次(episode)達到預定次數時,結束迴圈

EQL 演算法(enhanced Q-learning)

演算法描述
  • 隨機初始化所有 \(Q(s,a)\) 的值

  • 對每一輪次(episode):

    • 隨機選擇或初始化一個狀態 \(s_t\)

    • 對於每一步(step):

      • \(\tilde{Q_t} = \max_a (Q(s_t , a)) - \min_a (Q(s_t,a))\)

      • \(ΔV_t = \max_a (Q(s_t,a)) - \max_a (Q(s_{t-1}, a))\)

      • \(E_t = v E_{t-1} + (1-v)\log(T_{t-1})\)

      • 使用模糊平衡器計算 \(T\)

      • 使用策略從 \(Q\)

        的狀態 \(s_t\) 選擇合適的動作 \(a_t\),根據玻爾茲曼分佈使用引數 \(T\) 計算再決定是否採取

      • 執行動作 \(a_t\) ,並獲得一個收益 \(r_{t+1}\) 和當前的新狀態 \(s_{t+1}\)

      • 根據下面的公式更新 \(Q (s_t , a_t)\)

        \[Q(s_t,a_t) ← Q(s_t,a_t) + \alpha (r_{t+1} + \gamma \max_a Q(s_{t+1},a) - Q(s_t , a_t)) \]
      • \(s_t ← s_{t+1}\)

    • 當(step)到達結束狀態

  • 當輪次(episode)達到預定次數時,結束迴圈