本文主要是介绍【策略学习1】策略梯度中的baseline,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
回顾策略梯度
策略梯度是关于策略网络的参数求导
我们用一个神经网络 π \pi π来近似策略函数
状态价值函数 V π V_{\pi} Vπ是动作价值函数 Q π Q_{\pi} Qπ关于A的期望,离散的时候可以拆写成连加的形式,里面用到了神经网络 π \pi π。
策略梯度是关于策略网络的参数求导
策略梯度可以写成期望的形式
Baseline
策略梯度常用Baseline来降低方差,可以用来降低方差
baseline 是一个函数b,是什么都可以,但是不能依赖于A
性质
如果b与动作A无关,那么b乘以 l n π ln\pi lnπ关于 θ \theta θ的导数,再对A求期望,结果等于0
用这个性质,向策略梯度中添加baseline
为什么要添加b
在算法中,用的是期望的蒙特卡洛近似,b不会影响期望,但是选的好的b会让算法的蒙特卡洛方差降低,收敛更快
蒙特卡洛近似
b虽然不影响 g ( a t ) g(a_t) g(at)的期望,但b会影响 g ( a t ) g(a_t) g(at)
如果选的b很阶级 Q π Q_{\pi} Qπ就会让 g ( a t ) g(a_t) g(at)的方差很小
常见的baseline
这篇关于【策略学习1】策略梯度中的baseline的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!