Motivation
假设我们有个在参数 θ 下的正态分布 q。我们想要求解下面这样一个问题
θminEq[f(x)]
其中 Eq[f(x)] 的意思是求满足 q 分布下的随机变量函数 f(x) 的均值,而最外层的 minθ 则是求使得该均值最小时的 θ
有一种做法就是直接对该期望求 θ 的导数 ∇θEq[f(x)]
∇θEq[f(x)]=∇θ∫qθ(x)f(x)dx=∫f(x)∇θqθ(x)qθ(x)qθ(x)dx(积分变量是x)=∫qθ(x)∇θlogqθ(x)f(x)dx(Log Derivative Trick)=Eq[f(x)∇θlogqθ(x)]
于是我们可以利用 Eq[f(x)∇θlogqθ(x)] 去估计梯度。
这样的梯度估计式称为 SF 估计,Score Function Estimator
,在强化学习中 q 代表着策略,那么上式就是一个基本的策略梯度,有时也叫成 Reinforce
^c5d6c1
并且上述的推导对于任意的随机变量 x 不管是连续还是离散变量,都是通用的。这样我们可以直接从 pθ(x) 采样若干个点来估算损失函数的梯度了。
既然上述 SF 估计对于连续离散都适用,为什么我们还需要重参数化呢?
主要的原因是:SF 估计的方差太大。
Trick
我们将随机变量 x 视为另一个随机变量经过变换 gθ(ϵ) 得到的
ϵ∼p(ϵ)x=gθ(ϵ)
这样我们对于原式可以写为:
Eq[f(x)]=Ep[f(gθ(ϵ))]
现在我们对其求梯度:
∇θEq[f(x)]=∇θEp[f(gθ(ϵ))]=Ep[∂g∂f⋅∂θ∂g]
此时 θ 分布参数参与了前向过程 ,所以保留了 θ 的梯度,使得能够优化参数 θ。但是这对于随机变量 ϵ 有什么要求呢?
- ϵ 应该是方便计算机采样得到的
- g 是可微分的
梯度估计角度
既然上述都在讲梯度估计,我们自然很关心梯度估计的稳定性,我们不如求一下上面两个公式的方差
为了便于求解,我们取 f(x)=x2,q=N(μ,1)
另外 g(ϵ)=μ+x,p=N(0,1)
⎩⎨⎧Var[f(x)∇θlogqθ(x)]=μ4+14μ2+15Var[∂g∂f⋅∂θ∂g]=4
所以在 一般情况下
使用从参数化后的梯度估计方差更小,更稳定。(显然你可以找出一个反例,只是说一般情况)
{∇θEq[f(x)]=Eq[f(x)∇θlogqθ(x)]∇θEq[f(x)]=Ep[∂g∂f⋅∂θ∂g]可以看到 SF 估计具有 log。我们知道,作为一个合理的概率分布,一般都在无穷远处(即 ∥x∥→∞,都会有 qθ(x)→0,而 log 将远处的扰动噪声进行了一定程度的放大,所以方差会大
相关资料