学习日志-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)达到预定次数时,结束循环