蒙特卡罗强化学习
蒙特卡罗策略改进
蒙特卡罗策略改进公式
$$
\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)- 输入:环境模型 $MDP(S,A,R,\gamma)$,初始策略 $\pi_0$,要生成的 $MDP$ 序列条数 $m$
- 初始化:动作值 $\bar{Q}_\pi(s,a)=0$,随机策略 $\pi=\pi_0$
- 过程:设置每一个状态—动作对都有相同的概率出现在 $MDP$ 序列的初始状态—动作对
- $\qquad$ 循环:直到前后两次策略相等
- $\qquad \qquad$ 随机抽样,根据当前策略 $\pi$,抽样产生 $m$ 条经历完整的 $MDP$ 序列
- $\qquad \qquad$ 策略评估:根据算法公式(8-2)
- $\qquad \qquad$ 策略改进:根据公式(9-1)进行策略改进
- 输出:最优动作值 $Q^*$ 和最优策略 $\pi^*$
实现方式:
1.为每一个状态—动作对设置相同的初始出现概率
2.循环所有状态—动作对
3.规定状态—动作对初始出现次数
$\ $
(2). 起始探索首次访问蒙特卡罗强化学习算法(基于值迭代框架)(9-4)- 输入:环境模型 $MDP(S,A,R,\gamma)$,初始策略 $\pi_0$
- 初始化:累积回报 $Gsum(s,a)=0$,策略 $\pi=\pi_0$,计数器 $K(s,a)=0$
- 过程:设置每一个状态—动作对都有相同的概率出现在 $MDP$ 序列的初始状态—动作对
- $\qquad$循环:直到策略收敛
- $\qquad \qquad$ 随机抽样,根据当前策略 $\pi$,抽样产生一条经历完整的 $MDP$ 序列
- $\qquad \qquad$ 循环:依次遍历 $MDP$ 序列中的所有状态动作对 $(s,a)$
- $\qquad \qquad \qquad$ 若 $(s,a)$ 首次出现在 $MDP$ 序列中,根据公式(8-1)计算累积折扣奖励
- $\qquad \qquad \qquad$ 累计回报:$Gsum(s,a)\leftarrow Gsum(s,a)+G^i(s,a)$
- $\qquad \qquad \qquad$ 更新计数:$K(s,a)\leftarrow K(s,a)+1$
- $\qquad \qquad \qquad$ 策略评估:$\bar Q_\pi(s,a)\leftarrow Gsum(s,a)/K(s,a)$
- $\qquad \qquad \qquad$ 策略改进:根据公式(9-1)进行策略改进得到新的策略
- 输出:最优动作值 $Q^*$ 和最优策略 $\pi^*$
$\ $
(3). $\epsilon$ 贪婪策略首次访问蒙特卡罗强化学习算法(基于值迭代框架)(9-5)- 输入:环境模型 $MDP(S,A,R,\gamma)$,初始策略 $\pi_0$,一个极小正数 $\epsilon>0$
- 初始化:累积回报 $Gsum(s,a)=0$,策略 $\pi=\pi_0$,计数器 $K(s,a)=0$
- 过程:设置每一个状态—动作对都有相同的概率出现在 $MDP$ 序列的初始状态—动作对
- $\qquad$ 循环:直到两次策略相同
- $\qquad \qquad$ 贪婪策略,根据公式(9-2)改进策略 $\pi$,构造 $\epsilon$ 贪婪策略 $\pi_{\epsilon}$
- $\qquad \qquad$ 随机抽样,根据策略 $\pi_{\epsilon}$,抽样产生一条经历完整的 $MDP$ 序列
- $\qquad \qquad$ 循环:依次遍历 $MDP$ 序列中的所有状态动作对 $(s,a)$
- $\qquad \qquad \qquad$ 若 $(s,a)$ 首次出现在 $MDP$ 序列中,根据公式(8-1)计算累积折扣奖励
- $\qquad \qquad \qquad$ 累计回报:$Gsum(s,a)\leftarrow Gsum(s,a)+G^i(s,a)$
- $\qquad \qquad \qquad$ 更新计数:$K(s,a)\leftarrow K(s,a)+1$
- $\qquad \qquad \qquad$ 策略评估:$\bar Q(s,a)\leftarrow Gsum(s,a)/K(s,a)$
- $\qquad \qquad \qquad$ 策略改进:根据公式(9-1)进行策略改进得到新的贪婪策略 $\pi$
- 输出:最优动作值 $Q^*$ 和最优策略 $\pi^*$
说明:每采样一条 $MDP$ 链都会更新 $\bar Q$,也更新策略,故更新频率更快
参考
最后编辑于:2022 年 09 月 26 日 14:34