fix ch4
This commit is contained in:
@@ -98,17 +98,17 @@ $$
|
||||
我们还可以写成上式那样,从 $p_{\theta}(\tau)$ 这个分布采样一个轨迹 $\tau$,然后计算 $R(\tau)$ 的期望值,就是你的期望的奖励。 我们要做的事情就是最大化期望奖励。
|
||||
|
||||

|
||||
|
||||
怎么最大化期望奖励呢?我们用的是 `梯度上升(gradient ascent)`,因为要让它越大越好,所以是梯度上升。梯度上升在更新参数的时候要加。要进行梯度上升,我们先要计算期望的奖励(expected reward) $\bar{R}$ 的梯度。我们对 $\bar{R}$ 取一个梯度,这里面只有 $p_{\theta}(\tau)$ 是跟 $\theta$ 有关,所以梯度就放在 $p_{\theta}(\tau)$ 这个地方。$R(\tau)$ 这个奖励函数不需要是可微分的(differentiable),这个不影响我们解接下来的问题。举例来说,如果是在 GAN 里面,$R(\tau)$ 其实是一个 discriminator,它就算是没有办法微分,也无所谓,你还是可以做接下来的运算。
|
||||
|
||||
取梯度之后,我们背一个公式:
|
||||
$$
|
||||
\nabla f(x)=f(x)\nabla \log f(x)
|
||||
$$
|
||||
我们可以对 $\nabla p_{\theta}(\tau)$ 使用这个公式,然后会得到 $\nabla p_{\theta}(\tau)=p_{\theta}(\tau) \nabla \log p_{\theta}(\tau)$。
|
||||
我们可以对 $\nabla p_{\theta}(\tau)$ 使用这个公式,然后会得到 $\nabla p_{\theta}(\tau)=p_{\theta}(\tau) \nabla \log p_{\theta}(\tau)$,进一步地,我们可以得到下式:
|
||||
|
||||
接下来, 分子分母,上下同乘 $p_{\theta}(\tau)$,然后我们可以得到下式:
|
||||
$$
|
||||
\frac{\nabla p_{\theta}(\tau)}{p_{\theta}(\tau)}=\log p_{\theta}(\tau)
|
||||
\frac{\nabla p_{\theta}(\tau)}{p_{\theta}(\tau)}=\nabla \log p_{\theta}(\tau)
|
||||
$$
|
||||
|
||||
如下式所示,对 $\tau$ 进行求和,把 $R(\tau)$ 和 $\log p_{\theta}(\tau)$ 这两项使用 $p_{\theta}(\tau)$ 进行加权, 既然使用 $p_{\theta}(\tau)$ 进行加权 ,它们就可以被写成期望的形式。也就是你从 $p_{\theta}(\tau)$ 这个分布里面采样 $\tau$ 出来, 去计算 $R(\tau)$ 乘上 $\nabla\log p_{\theta}(\tau)$,然后把它对所有可能的 $\tau$ 进行求和,就是这个期望的值(expected value)。
|
||||
@@ -345,4 +345,3 @@ REINFORCE 的伪代码主要看最后四行,先产生一个回合的数据,
|
||||
* [神经网络与深度学习](https://nndl.github.io/)
|
||||
* [百面深度学习](https://book.douban.com/subject/35043939/)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user