Noonisy
强化学习(九)
2022-09-19
阅读:403

蒙特卡罗强化学习


蒙特卡罗策略改进

蒙特卡罗策略改进公式
$$ \pi^{\prime}(s)= \arg \max _{a \in \mathbb{A}} \bar{Q}_{\pi}(s, a) \tag{9-1} $$
动作值稀疏性:对于所有的 $\bar Q_{\pi}(s,a)$,并不一定都有值,因为采样次数较少或者有的状态—动作对很难达到,所以在比较 $\arg\max$ 的时候,有些 $\bar Q_{\pi}(s,a)$ 的值是没有的,也就无法比较,这就是动作值的稀疏性问题

(1)起始探索:保证每一个状态—动作对都会作为初始状态—动作对出现在一些 $MDP$ 样本序,对于${\forall s,\forall a},(s,a)$ 都会出现在某些(个)$MDP$ 链中

(2)软策略探索:保证每一个状态—动作对都以一定的非零概率出现在 $MDP$ 样本序列中

对于以前的确定性策略:
$$ \pi(a\mid s)= \begin{cases} 1, &a=a_1\\ ~\\ 0, &others\\ \end{cases} $$
保证了 $(s,a_1)$ 一定会出现,而其他的状态—动作对 $(s,a_i),i\neq 1$ 一定不出现,这样就导致了稀疏性问题

解决办法:软策略中的 $\epsilon$ 贪心策略,令 $s=s$ 的时候,有 $1-\epsilon$ 的概率执行动作 $a_1$,有 $\frac{\epsilon}{|A|}$ 的概率执行动作空间 $A$ 内的所有动作,故:
$$ \pi(a\mid s)= \begin{cases} 1-\epsilon+\frac{\epsilon}{|A|}, &a=a_1\\ ~\\ \frac{\epsilon}{|A|}, &others\\ \end{cases} \tag{9-2} $$

起始探索蒙特卡罗强化学习

(1). 起始探索首次访问蒙特卡罗强化学习算法(9-3)
  1. 输入:环境模型 $MDP(S,A,R,\gamma)$,初始策略 $\pi_0$,要生成的 $MDP$ 序列条数 $m$
  2. 初始化:动作值 $\bar{Q}_\pi(s,a)=0$,随机策略 $\pi=\pi_0$
  3. 过程:设置每一个状态—动作对都有相同的概率出现在 $MDP$ 序列的初始状态—动作对
  4. $\qquad$ 循环:直到前后两次策略相等
  5. $\qquad \qquad$ 随机抽样,根据当前策略 $\pi$,抽样产生 $m$ 条经历完整的 $MDP$ 序列
  6. $\qquad \qquad$ 策略评估:根据算法公式(8-2)
  7. $\qquad \qquad$ 策略改进:根据公式(9-1)进行策略改进
  8. 输出:最优动作值 $Q^*$ 和最优策略 $\pi^*$
实现方式:

1.为每一个状态—动作对设置相同的初始出现概率

2.循环所有状态—动作对

3.规定状态—动作对初始出现次数

$\ $

(2). 起始探索首次访问蒙特卡罗强化学习算法(基于值迭代框架)(9-4)
  1. 输入:环境模型 $MDP(S,A,R,\gamma)$,初始策略 $\pi_0$
  2. 初始化:累积回报 $Gsum(s,a)=0$,策略 $\pi=\pi_0$,计数器 $K(s,a)=0$
  3. 过程:设置每一个状态—动作对都有相同的概率出现在 $MDP$ 序列的初始状态—动作对
  4. $\qquad$循环:直到策略收敛
  5. $\qquad \qquad$ 随机抽样,根据当前策略 $\pi$,抽样产生一条经历完整的 $MDP$ 序列
  6. $\qquad \qquad$ 循环:依次遍历 $MDP$ 序列中的所有状态动作对 $(s,a)$
  7. $\qquad \qquad \qquad$ 若 $(s,a)$ 首次出现在 $MDP$ 序列中,根据公式(8-1)计算累积折扣奖励
  8. $\qquad \qquad \qquad$ 累计回报:$Gsum(s,a)\leftarrow Gsum(s,a)+G^i(s,a)$
  9. $\qquad \qquad \qquad$ 更新计数:$K(s,a)\leftarrow K(s,a)+1$
  10. $\qquad \qquad \qquad$ 策略评估:$\bar Q_\pi(s,a)\leftarrow Gsum(s,a)/K(s,a)$
  11. $\qquad \qquad \qquad$ 策略改进:根据公式(9-1)进行策略改进得到新的策略
  12. 输出:最优动作值 $Q^*$ 和最优策略 $\pi^*$
$\ $

(3). $\epsilon$ 贪婪策略首次访问蒙特卡罗强化学习算法(基于值迭代框架)(9-5)
  1. 输入:环境模型 $MDP(S,A,R,\gamma)$,初始策略 $\pi_0$,一个极小正数 $\epsilon>0$
  2. 初始化:累积回报 $Gsum(s,a)=0$,策略 $\pi=\pi_0$,计数器 $K(s,a)=0$
  3. 过程:设置每一个状态—动作对都有相同的概率出现在 $MDP$ 序列的初始状态—动作对
  4. $\qquad$ 循环:直到两次策略相同
  5. $\qquad \qquad$ 贪婪策略,根据公式(9-2)改进策略 $\pi$,构造 $\epsilon$ 贪婪策略 $\pi_{\epsilon}$
  6. $\qquad \qquad$ 随机抽样,根据策略 $\pi_{\epsilon}$,抽样产生一条经历完整的 $MDP$ 序列
  7. $\qquad \qquad$ 循环:依次遍历 $MDP$ 序列中的所有状态动作对 $(s,a)$
  8. $\qquad \qquad \qquad$ 若 $(s,a)$ 首次出现在 $MDP$ 序列中,根据公式(8-1)计算累积折扣奖励
  9. $\qquad \qquad \qquad$ 累计回报:$Gsum(s,a)\leftarrow Gsum(s,a)+G^i(s,a)$
  10. $\qquad \qquad \qquad$ 更新计数:$K(s,a)\leftarrow K(s,a)+1$
  11. $\qquad \qquad \qquad$ 策略评估:$\bar Q(s,a)\leftarrow Gsum(s,a)/K(s,a)$
  12. $\qquad \qquad \qquad$ 策略改进:根据公式(9-1)进行策略改进得到新的贪婪策略 $\pi$
  13. 输出:最优动作值 $Q^*$ 和最优策略 $\pi^*$
说明:每采样一条 $MDP$ 链都会更新 $\bar Q$,也更新策略,故更新频率更快

参考

最后编辑于:2022 年 09 月 26 日 14:34
邮箱格式错误
网址请用http://或https://开头