SAC感觉像是PPO穿金戴银
在各项上确实精致了些
但是面对复杂的样本环境
这种精致有意义么?
我很怀疑
这像个toy model
算法结构越复杂
它处理起来
效率最高的样本
其实是更少的
回到模型本身
SAC首先更像dqn
有样本经验池
用来回放样本
而且还要取两次
来取最小值(真是奢侈优美的想法
$$\hat{Q} = r + \gamma \left( \min_{j=1,2} Q_{\text{target}, j}(s', a') - \alpha \log \pi_\theta(a'|s') \right)$$
后面还加了熵作为策略上的约束
(这样的熵加了好几处,毫无意义,加一个就够了
$$J_Q(\phi) = \mathbb{E}{(s,a,r,s') \sim \mathcal{D}} \left[ \frac{1}{2} (Q\phi(s, a) - \hat{Q})^2 \right]$$
再来计算目标函数的操作
对Actor来说
目标有了,他也要优化他的动作
一方面做探索,一方面在根据过去的经验来选最优策略
$$J_\pi(\theta) = \mathbb{E}{s \sim \mathcal{D}} [ \mathbb{E}{a \sim \pi_\theta} [\alpha \log \pi_\theta(a|s) - Q_\phi(s, a)] ]$$
这里也加了一个熵
我个人觉得多此一举
(没跑这个算法
对于熵的权重
这里还加了一个自适应的权重\alpha
通过下面的公式来调节
$$J(\alpha) = \mathbb{E}_{a_t \sim \pi_t} [-\alpha (\log \pi_t(a_t|s_t) + \bar{H})]$$
SAC很多设计都是为了提高样本效率做的
但不是以一个好的方式