Soft Actor Critic 系列
一、基本问题
强化学习可以用来优化确定性策略和随机策略。
但是目前大多数主流算法(DDPG、TD3、Q-Learning)最终都是优化了一个确定性策略
随机性策略更加倾向于探索,目前确定性策略提高探索程度的方法有
- 添加噪声(DDPG, TD3)
- 高熵随机策略初始化(A3C)
为什么需要随机性策略?
- 在多模态环境下,有多个目标需要进行探索,这是确定性策略失效。
- 面对不确定动态的鲁棒性,模仿学习,以及改进模型收敛性和计算性能。
二、基于熵的强化学习
1. 基本目标
在传统强化学习中,优化目标为寻找策略最大化奖励,也就是:
\[\pi^{*}_{std} = \mathop{arg \space max} \limits_{\pi} \sum_t E_{(a_t, s_t) \sim\rho(\pi) }[r(s_t, a_t)] \tag{1} \]这个公式描述了最优的策略是一条轨迹,轨迹的选取动作的变化服从一个分布 \(\rho(\pi)\)。最优的策略可以这条轨迹获得最大的奖励。
在加入了熵的强化学习中,优化目标修改为:
\[\pi^*_{MaxEnt} = \mathop{arg \space max} \limits_{\pi} \sum_t E_{(a_t, s_t) \sim\rho(\pi) }[r(s_t, a_t) + \alpha H(\pi(\cdot|s_t))] \tag{2} \]公式2在公式1的基础上加入了熵 \(H(\pi(\cdot|s_t))\),其中熵的定义为
\[H(\pi(\cdot|s_t)) = E(-log(\pi(\cdot|s_t))) \]公式(2)表示在最大化奖励的同时经可能的使得熵变大,也就是鼓励探索的同时最大化奖励。公式(2)中的超参数 \(\alpha\) 平衡了探索和最大化奖励
2. 基于熵的值迭代
强化学习学习的本质就是寻找一种策略,而这个策略满足一定的分布。基于熵的强化学习也是如此。在以前的工作中,我们通常使用离散的多项分布或者高斯分布来表示某一个状态可以输出策略的分布。但是最接近真实情况的分布应该是基于能量的分布模型。用数学公式描述就是:
\[\pi(s_t,a_t) \propto exp(-\varepsilon(s_t,a_t)) \]\(\varepsilon\) 也叫做能量函数,在这里取\(\varepsilon = -\frac{1}{\alpha}Q_{soft}(s_t, a_t)\)。也就是说,每一个动作被选取的概率和该动作对应的Q值成正相关。并且,使用该能量函数还有以下的性质:
如果定义某个动作的最优动作价值为:
\[Q_{soft}^* = r_t + E_{s_{t+1}, ... \sim \rho(\pi)}\left[\sum_{l=1}^{\infty}\gamma^l(r_{t+1} + \alpha H(\pi^*_{MaxEnt}(\cdot | s_{t+1})))\right] \tag{3} \]