學習日誌-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\) ,並獲得一個收益 \(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\)
-
執行動作 \(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)達到預定次數時,結束迴圈