【CS285】为什么需要推导 REINFORCE-Gradient 公式呀?
1. 问题描述
Sergey在【CS285: Lecture 5】中详细地讲述了REINFORCE梯度公式:
∇
θ
J
(
θ
)
≈
1
N
∑
i
=
1
N
∇
θ
log
π
θ
(
τ
)
r
(
τ
)
\nabla_\theta J(\theta)\approx\frac{1}{N}\sum_{i=1}^{N}\nabla_{\theta}\log\pi_{\theta}(\tau)r(\tau)
∇θJ(θ)≈N1i=1∑N∇θlogπθ(τ)r(τ)
并提到:
Sergey: we talked about evaluating the policy gradient, where we have to use this log-gradient trick to remove the terms that we don’t know, namely the initial state probability and the transition probability, and then we can again evaluate the policy gradient using samples…
刚开始我们有些不能理解为什么这里一定要将 π θ \pi_{\theta} πθ变成“ log π θ \log\pi_{\theta} logπθ”的形式,感觉似乎是“多余的”……
2. “为了引入 θ \theta θ实现梯度回传”
2.1 直接使用目标函数存在的问题
首先回顾一下REINFORCE的目标函数:
这里可以显式地看到,存在如下的问题:
Q1: J ( θ ) J(\theta) J(θ)'s Monte Carlo Approximation 中没有包含网络参数 θ \theta θ;
于是直接使用该估计则是无法实现反向传播的;
那么,如果换一种思路呢?是否可以直接使用原始期望公式进行估计呢?
这里可以仔细看看Sergey列出的公式,
经过仔细观察发现,“直接使用原始期望公式进行估计”这个想法也是行不通的,因为
Q2:轨迹概率公式中的 the initial state probability p ( s 1 ) p\left(\mathbf{s}_1\right) p(s1) and the transition probability p ( s t + 1 ∣ s t , a t ) p\left(\mathbf{s}_{t+1} \mid \mathbf{s}_t, \mathbf{a}_t\right) p(st+1∣st,at) 都是未知的(model-free场景),所以轨迹概率 p θ ( τ ) p_\theta(\tau) pθ(τ)是无法计算的;