优势函数:采取这个动作的实际总收益 减去 我按照平均水平(价值函数V)采取动作的预期总收益 如果差值为正,说明这个动作比平均水平好,为负则说明差
实际计算这个 实际总收益的时候,GAE 广义优势估计就是为了解决这个计算 实际总收益的问题的
计算优势 :实际总收益(Gt-V(st)),核心难点在于怎么算Gt(从当前步t到eposide结束的实际总回报)
为什么?Gt定义:从t时刻往后所有真实奖励折扣累加
Gt是整条交互轨迹走完之后,才能拿到的真实累计汇报
真实训练场景的两大困难:
在线交互时,t时刻无法预知为例所有的rt+1,rt+2
走到第t个token时,后面还没生成,未来奖励不存在,当场算不出完整Gt。必须等整条句子全部生成结束,回溯整条序列才能算出每个位置的Gt。
难点2:两种极端方案各自有严重缺陷
蒙特卡洛(MC)等整段生成后,拿到真实全部回报。但是长文本生成,几百上千token整条轨迹奖励波动极大,梯度震荡,训练难收敛
单步TD,只用下一步预测价值近似回报:
偏差很大,完全忽略多步未来收益
V(st)本来就是critic预估的,在状态st下,遵循当前策略平均能拿到的未来总回报,是基线。At=Gt-V(st)的含义:当前这条估计实际拿到的总回报比平均基线好多少。不存在步采取哦当作就有确定未来,所有未来奖励都是随机的,取决于策略采样的每一步token
- 序列未结束时,无法实时获取全部未来真实奖励,必须完整走完 episode 才能回溯;
- 两种直接估算Gt的方式各有硬伤:蒙特卡洛完整回报方差爆炸,单步 TD 误差偏差严重,所以引入 GAE,用 λ 加权融合多步 TD 误差,平衡偏差与方差,得到更稳定的优势估计
V(st) 处在状态st,按照当前策略持续生成下去,未来能拿到的平均总折扣回报,是一个期望值,平均基线,不是某一条轨迹的真实回报Gt
TD误差:rt是在st执行动作at时,立刻拿到的即使奖励。V(st+1):critic估计,进入下一个状态st+1之后,未来所有步的平均总收益,r是折扣因子,降低远期奖励权重。、
V(st):停在状态st,严格按照当前策略π持续不断执行动作、一路走到 episode 结束,整条轨迹所有折扣奖励的数学期望(平均分)
动作action去哪了 at已经隐含在rt和st+1里
逻辑:在状态st(今天天气真)
执行一个动作at,生成了token 好
因为执行这个动作,环境给了你即时奖励,因为执行了这个动作,进入了下一个状态st+1,现在文本变成“今天天气真好”
公式中的 rt和st+1就是动作at的直接后果,TD误差就是做了这个动作后,实际发生的情况与我原本预期的情况之间的差距
V(st)就是在当前状态未来所有的奖励的平均值,在st这个时间点,critic预估从这一刻开始,直到episode结束,平均拿到的总回报是多少
rt就是执行当前动作给的奖励,然后到了下一个状态之后的估计价值(乘以衰减)减去如果不执行这个动作,没变到新的状态的话,预估的价值是多少不是不执行这个动作,是在执行这个动作之前,对当前状态的st原有的期望价值