策略梯度算法
📅 发表于 2025/08/31
🔄 更新于 2025/08/31
👁️ -- 次访问
📝 0 字
⏳ 0 分钟
rl-theory
#策略梯度
#轨迹概率
#轨迹回报
#对数微分技巧
#梯度上升法
#策略梯度目标函数
#策略梯度loss
#策略函数设计
#logits_p
#权重
#基线
#优势函数
#降低方差
#策略梯度分类
#蒙特卡洛策略梯度
#时序差分策略梯度
#REINFORCE算法
#REINOFRCE++
对策略参数化,直接对策略进行优化。
假设策略连续可微函数
;用梯度上升算法
直接对策略参数
轨迹概率
目标函数
轨迹奖励
随机变量
,非标量,和策略参数G由交互得到,非常不稳定,方差很大
轨迹
目标函数,期望奖励
目标函数
策略梯度定义
策略梯度推导结果
对数定义
对数乘法公式
对数微分技巧‼️
1. 对数拆解梯度
对数微分
,拆解为期望形式
2. 细拆轨迹概率梯度
动作策略
状态转移概率
去掉无关项
3. 采样计算策略梯度
采样N条轨迹
、代回细拆项求解最终公式
数据采样
采集n条样本
,收集每条样本的奖励。需重新采样才能更新模型
。梯度计算
计算对数概率
对数概率取梯度
,并乘以权重
,即回报求出整体梯度
梯度上升法做参数更新
最大化目标函数
策略梯度loss
传统交叉熵/监督学习loss
策略梯度loss-轨迹粒度
轨迹回报越高
、希望轨迹概率也越高
,即二者同分布,使用交叉熵来衡量
,非常合适策略梯度loss-动作粒度
奖励回报/优势函数等作为权重
,表示动作的好坏
。 loss权重应该降低
,优化粒度小一点
loss权重应该增加
,优化粒度大一点
随机策略,输入状态s,输出对应动作概率分布
Softmax计算概率
一般
logits_p
,对应的 probs
,策略动作从高斯分布得出
均值和方差
两个值,来构建一个高斯分布
,进行采样即可。策略梯度形式
权重
状态动作值函数
优势函数
TD误差
GAE
恒大于0
,有大有小
分配相同的权重
理想情况
权重大的,提高的多
;权重小的,提高的少
。权重大的,概率上升
;权重小的,概率下降
。MC采样实际情况
只采样到动作b和c
,没采到动作a
。现要提升s所有动作概率,实际仅提升b和c的概率
,会导致a的概率下降
。a可能很好
,由于没被采样就导致概率下降。方差较大
问题
显然是不公平的
。需提升概率
;有的动作可能差,贡献的少,需要降低概率
。背景
未采样动作概率更新
+方差大
。)核心思想
基线函数b
,使用新权重 有正有负
超过基线
,让概率上升
低于基线
,让概率下降
优势函数
基线函数b的选择
目的
无偏性
:减小方差
:核心方法
保证无偏性推导期望
:推导可知求解极值点
方差恒为正,是常数
;根据上式可知凹函数
,必然存在极小值
求导数并使其为0
,求解出最小值时的取值。代回极值点
,求解出最小值
结论
方差极小值
:背景
鼓励好的动作
,抑制差的动作
方法1:使用动作时刻t后面的奖励
方法2:使用优势函数
相对于其他动作的优势
critic评论员
不同动作贡献不同,权重也应该不同:
MC 蒙特卡洛方法
回合更新
;使用REINFORCE算法
TD 时序差分方法
步骤更新
;TD估计Q函数
,作为权重。Actor-Critic算法
优点 (相比于基于价值的算法)
随机性策略
策略梯度是无偏的
;基于价值的算法则是有偏的
。缺点
采样效率低
:MC采样 不如 TD采样高方差
:MC高方差,估计梯度时甚至比基于价值的算法方差还高;G很不稳定
收敛性差
:容易导致局部最优解核心思想
一个回合更新一次
算法步骤
采样一个回合数据
;采样后,从0到T每时刻
根据对数概率梯度
算法流程
伪代码
待定