策略梯度算法
📅 发表于 2025/08/31
🔄 更新于 2025/08/31
👁️ -- 次访问
📝 0 字
⏳ 0 分钟
rl-theory
#策略梯度
#轨迹概率
#轨迹回报
#对数微分技巧
#梯度上升法
#策略梯度目标函数
#策略梯度loss
#策略函数设计
#logits_p
#权重
#基线
#优势函数
#降低方差
#策略梯度分类
#蒙特卡洛策略梯度
#时序差分策略梯度
#REINFORCE算法
#REINOFRCE++
对策略参数化,直接对策略进行优化。
Value-based RL
先学习价值函数V或Q
,根据价值函数间接指导策略改进
。Policy-based RL
直接对策略进行优化
。没有V或Q做中间商
。假设策略连续可微函数
;用梯度上升算法
直接对策略参数
使目标函数所有轨迹回报的期望值
。
轨迹概率
目标函数
策略的价值期望
/期望奖励,所有轨迹回报的期望值
。
调整演员内部参数
轨迹奖励
随机变量
,非标量,和策略参数依概率选择
,有随机性
非常不稳定,方差很大
。TD&MC 方差和偏差轨迹
目标函数,期望奖励
目标函数
策略梯度定义
策略梯度推导结果
对数定义
导数链式法则
对数乘法公式
对数微分技巧‼️
1. 对数拆解梯度
对数微分
,拆解为期望形式
2. 细拆轨迹概率梯度
动作策略
状态转移概率
去掉无关项
3. 采样计算策略梯度
采样N条轨迹
、代回细拆项求解最终公式
数据采样
采集n条样本
,收集每条样本的奖励。需重新采样才能更新模型
。梯度计算
计算对数概率
对数概率取梯度
,并乘以权重
,即回报求出整体梯度
梯度上升法做参数更新
最大化目标函数
传统交叉熵/监督学习loss
策略梯度loss-轨迹粒度
轨迹回报越高
、希望轨迹概率也越高
,即二者同分布,使用交叉熵来衡量
,非常合适策略梯度loss-动作粒度
奖励回报/优势函数等
作为权重
,表示动作的好坏
。 回报越小
,表明动作loss权重应该降低
,优化粒度小一点
回报越大
,表明动作loss权重应该增加
,优化粒度大一点
随机策略
:输入状态s,输出对应动作概率分布
Softmax计算概率
概率
一般
策略梯度
如下,一般写作logits_p
,对应的 probs
,策略动作从高斯分布得出
均值和方差
两个值,来构建一个高斯分布
,进行采样即可。ActorCritic 存在的问题 (TRPO/PPO来解决)
更新步长选择困难症
训练过程比较慢
、采样随机性导致可能朝着错误方向更新
。有偏的
1. 单步奖励
太短视
,没看长期回报
。永远学不会先苦后甜的策略。2. 完整轨迹回报
高方差
权重很大大于0
: 提升了采样动作,未采样动作就会下降
。所有动作a权重都一样
:不公平!需提升概率
;有的动作差,贡献少,需要降低概率
。3. 总回报
高方差
、权重恒大于0
[90,110]
区间,任何轨迹的总回报非常大的正数
。好动作
坏动作
总回报 1010
;更新非常强的正信号
。总回报 1005
;更新同样非常强的正信号
。训练过程不稳定
、 收敛很慢
。 很难稳定分辨
出好了一点点
”。几乎可以忽略不计
。很好的动作
,但由于没有被采样到
自动降低
了概率
。4. 基线/优势函数
减去基线
/状态价值函数
例子
你考了95分
平均98分
;低于平均水平
,学习动作
需要调整
。低方差
、高偏差
5. GAE
背景
未采样动作概率更新
+方差大
。)使其有正有负,降低方差
。核心思想
基线函数b
,使用新权重 有正有负
超过基线
,让概率上升
低于基线
,让概率下降
优势函数
基线函数b的选择
目的
无偏性
:减小方差
:核心方法
保证无偏性推导期望
:推导可知求解极值点
方差恒为正,是常数
;根据上式可知凹函数
,必然存在极小值
求导数并使其为0
,求解出最小值时的取值。代回极值点
,求解出最小值
结论
方差极小值
:背景
鼓励好的动作
,抑制差的动作
方法1:使用动作时刻t后面的奖励
方法2:使用优势函数
相对于其他动作的优势
critic评论员
不同动作贡献不同,权重也应该不同:
MC 蒙特卡洛方法
回合更新
;使用REINFORCE算法
TD 时序差分方法
步骤更新
;TD估计Q函数
,作为权重。Actor-Critic算法
优点 (相比于基于价值的算法)
随机性策略
策略梯度是无偏的
;基于价值的算法则是有偏的
。缺点
采样效率低
:MC采样 不如 TD采样高方差
:MC高方差,估计梯度时甚至比基于价值的算法方差还高;G很不稳定
收敛性差
:容易导致局部最优解核心思想
一个回合更新一次
算法步骤
采样一个回合数据
;采样后,从0到T每时刻
根据对数概率梯度
算法流程
伪代码
待定