当前位置:   article > 正文

强化学习(SAC)_sac算法全称

sac算法全称

SAC—— soft actor-critic

SAC算法是一种现代的深度强化学习算法,它结合了基于策略的和基于价值的方法。SAC的核心思想是最大化期望回报的同时保持策略的随机性,这有助于提高探索环境的效率,并且通常可以赵高更好的策略。

发展史:

TD3算法在DDPG算法的基础上引入了双critic网络和延迟更新,进一步提升了算法的性能;SAC算法在TD3算法的基础上进一步拓展,引入了熵优化和自适应温度参数等技术,以适应更复杂的任务。

SAC算法最早于2018年被提出,该算法结合了actor-critic方法和强化学习中的熵概念。

随机策略&确定性策略

随机策略stochastic policy:在给定状态时,不会总是产生相同的动作,相反它会根据某种概率分布选择动作,这意味着及时智能体处于相同的状态,也可能选择不同的动作。

确定性策略deterministic policy:在给定状态时,总是产生相同的动作,这意味着无论何时智能体处于特定状态,都会选择相同的动作。

基于最大熵的RL算法的优势:

不仅想要长期的回报最大,还想要policy的每一次输出的action的熵最大,这样做是为了让策略随机化,也是在鼓励探索,为具有相似的Q值的动作分配近乎均等的概率,不会给动作范围内任何一个动作分配非常高的概率,避免了反复选择同一个动作而陷入次优。

伪代码:

初始化参数:\psi(软状态值函数中)、\bar{\psi }\theta(软Q值函数中)、\phi(策略函数中)

for each iteration do

        for each environment step do

                a_{t}\sim \pi _{\phi }\left ( a_{t}|s_{t} \right )

                s_{t+1}\sim p\left ( s_{t+1} |s_{t},a_{t}\right )

                D\leftarrow D\cup \left \{ \left ( S_{t}, a_{t}, r\left ( s_{t}, a_{t} \right ), s_{t+1} \right ) \right \}

        end for

        for each gradient step do

                更新V:\psi \leftarrow \psi -\lambda _{V}\hat{\triangledown _{\psi }}J_{V}\left ( \psi \right )

                更新软Q:\theta _{i}\leftarrow \theta _{i}-\lambda _{Q}\hat{\triangledown}_{\theta _{i}}J_{Q}\left ( \theta _{i} \right )

                更新策略:\phi \leftarrow \phi -\lambda _{\pi }\hat{\triangledown }_{\theta _{i}}J_{\pi }\left ( \phi \right )

                更新target V:\bar{\psi }\leftarrow \tau \psi +\left ( 1-\tau \right )\bar{\psi }

        end for

end for

SAC网络架构

SAC算法中温度参数通常体现在actor网络的输出中,actor网络的输出是带噪声的策略,其中你早生的程度由温度参数控制。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/334909
推荐阅读
相关标签
  

闽ICP备14008679号