之前探索和学习了IMPALA强化学习算法。
https://blog.csdn.net/liliang199/article/details/158211646
其中,V-trace是确保IMPALA有效和稳定训练的核心。
具体为,假设想学习一位大师(目标策略π)的下棋风格,但手头只有一位业余爱好者(行为策略μ)的对局记录。不能直接照搬业余爱好者的走法,因为水平差距太大。V-trace就像一个智能过滤器,它能分析业余爱好者的棋局,从中提取出那些接近大师思路的走法,并剔除那些明显错误的,从而安全有效地学习。
这里进一步探索的V-trace的公式与计算过程。
1 V-trace计算过程
V-trace的目标是计算出两个关键值:
1)修正后的状态价值函数,用于训练Critic网络。
2)优势函数,用于训练Actor网络,指导策略更新。
它结合了重要性采样和截断技术。
1.1 重要性权重
首先,计算每个时间步 的重要性权重
和
,并对它们进行截断,以控制方差。
,用于后续的优势计算。
通常设为1,是一个截断阈值,防止单个样本的权重过大,导致训练不稳定。
,用于价值函数的递推修正。
通常也设为1,同样起到稳定作用 。
这两个权重就像一个可信度评分。如果某步棋在业余棋手μ和大师π的评估中都非常相似,那么它的可信度权重就高;反之则低。
如果权重过高,比如比如 大于
或
大于
,会被截断阈值过滤掉。
具体计算参考上述公式。
1.2 时序差分误差
计算每个时间步的时序差分误差
这个公式衡量了实际的奖励 + 下一时刻的价值估计与当前价值估计之间的差距。
由于乘上了截断后的重要性权重 ,这个误差已经经过了第一层修正。
1.3 递归计算V-trace目标值
V-trace最关键部分在于,它通过一个反向递归的公式,来计算修正后的价值目标。
从最后一步向前推演。
这个公式可以拆解为:
-
,当前的估值,是起点。
-
,加上当前步修正后的即时改进。
-
,再加上未来所有步的修正后改进,但每往前推一步,都要乘以一个衰减的折扣因子
和可信度
,保证了未来信息的引入也是受控的。
最终计算出的就是一个比原始
更准确、更稳定的目标值 。
2 策略梯度优势
2.1 策略梯度优势
最后,用截断后的权重 \( \rho_s \) 和刚刚算出的 \( v_{s+1} \),来计算用于更新策略(Actor)的优势函数:
这个优势告诉,在当前状态下,采取某个动作究竟比平均水平好多少。
2.2 为什么V-trace有效
这里对比一下传统方法:
传统On-policy方法:
用完即弃,数据效率低,无偏差,方差小,稳定。
简单Off-policy方法:
可以重复使用旧数据,但偏差大,存在策略偏差,方差大,可能发散。
V-trace方法:
安全重用旧数据,效率高且稳定,通过截断权重 严格控制偏差,通过截断权重有效控制方差,理论证明收敛到目标策略的附近
V-trace通过截断的重要性采样和递归的价值修正,为IMPALA提供了一个高速稳定的学习引擎。
它允许成千上万个Actor使用过时策略疯狂收集数据,而Learner则能从中安全、高效地提炼出知识,不断提升自己。
reference
IMPALA强化学习算法的学习和解读
https://blog.csdn.net/liliang199/article/details/158211646
IMPALA: Scalable Distributed Deep-RL with Importance Weighted Actor-Learner Architectures