SAC

【强化学习SAC算法推导详述】 SAC算法旨在使策略回报和熵最大化。通过软更新策略,采用两个critic网络并取Q值较小的那个,类似于TD3的技巧。动作熵概念:网络输入状态下,网络输出动作和该动作对数概率,对数概率取负即得到熵。最大熵意味着动作不确定性大,概率低;反之,熵小表示确定性高。SAC算法同时...

强化学习SAC算法推导详述

SAC算法旨在使策略回报和熵最大化。通过软更新策略,采用两个critic网络并取Q值较小的那个,类似于TD3的技巧。动作熵概念:网络输入状态下,网络输出动作和该动作对数概率,对数概率取负即得到熵。最大熵意味着动作不确定性大,概率低;反之,熵小表示确定性高。SAC算法同时追求回报最大化和探索,目标函数包含回报和熵。V函数加入熵约束,Q函数贝尔曼方程保持与传统类似。Q网络目标函数基于SAC类的calc_target方法,V网络目标函数基于策略网络。求梯度时,不再对V函数求梯度,代码实现时不乘以常数。

重参数技巧引入随机噪音,通过定义新变量将梯度更新至策略网络。压缩处理后动作概率密度变化需重新计算,单个动作概率视为概率密度而非分布。熵约束优化问题中,α作为拉格朗日乘子,调整策略与目标熵。约束优化过程包括拉格朗日函数和对偶问题转化,最终目标式包含熵与策略网络参数。

α目标函数基于约束优化,拉格朗日函数和对偶问题的解导出。优化问题通过迭代求解,确保熵与目标熵接近。优化后,策略目标函数旨在降低动作熵与目标熵的差距,提高策略确定性,同时鼓励探索以避免过拟合。动作熵设定通常基于动作空间的性质,连续动作环境目标熵等于动作空间的负值,离散环境设定依据可能与交叉熵相关,但SAC不建议用于离散动作环境。
继续阅读:强化学习SAC算法推导详述