Reinforcement Learning
posted on 22 Mar 2019 under category 机器学习
$Actor/Policy = \pi(Oberservision)$
如果actor采用NN,那么就是deep reinforcement learning。NN的输出就是可能采取的action,有几个action就有几个维度的输出。NN的好处是比较generalize,即使没有遇到的情况,也会输出一个结果,有可能会得到一个合理的结果。
衡量goodness of actor:在一个episode里面,最大化获得的总的reward的期望。
一个episode可以用一个trajectory(轨道)$\tau$表示:
总reward:
一个$\tau$代表了一个过程,过程有千万种可能,但是当选择了某一个actor去做action的时候,有可能只能出现某一些过程,另外一些过程比较难出现。用$P(\tau | \theta)$表示当actor的参数是$\theta$的时候$\tau$这个过程出现的几率。 |
用$\bar R_\theta$表示一个过程获得总reward的期望:
$\bar R_\theta = \sum_\tau R(\tau) P(\tau | \theta)$ |
但是所有的$\tau$不太可能全部列出,只能用actor($\pi_\theta$)去玩N次游戏,获得${\tau^1, \tau^2, … , \tau^N}$。这样做,就好像是从$P(\tau | \theta)$里面做N次sample一样。 |
所以:
$\bar R_\theta = \sum_\tau R(\tau) P(\tau | \theta) \approx \frac{1}{N} \sum_{n=1}^N R(\tau^n)$ |
用Gradient ascent方法最大化${\theta}$:
${\theta^*} = argmax \bar R_\theta$
Start with $\theta^0$
$\theta^1 \leftarrow \theta^0 + \eta \nabla \bar R_{\theta^0}$
…
$\theta = {w_1, w_2, … , b_1, …}$
$\nabla \bar R_\theta = \begin{bmatrix} \partial \bar R_\theta/\partial w_1 \ \partial \bar R_\theta/\partial w_2 \ .\.\.\ \partial \bar R_\theta/\partial b_1 \.\.\. \end{bmatrix}$
具体计算:
$\bar R_\theta = \sum_\tau R(\tau) P(\tau | \theta)$ |
$\nabla \bar R_\theta = \sum_\tau R(\tau) \nabla P(\tau | \theta) = \sum_\tau R(\tau) P(\tau | \theta) \frac{\nabla P(\tau | \theta)}{P(\tau | \theta)} = \sum_\tau R(\tau) P(\tau | \theta) \nabla log P(\tau | \theta) \approx \frac{1}{N} \sum_{n=1}^{N} R(\tau^n)\nabla log P(\tau^n | \theta)$ |
$P(\tau | \theta) = p(s_1)p(a_1 | s_1,\theta)p(r_1, s_2 | s_1, a_1)p(a_2 | s_2, \theta)p(r_2, s_3 | s_2, a_2)… = p(s_1)\prod_{t=1}^{T}p(a_t | s_t, \theta)p(r_t, s_{t+1} | s_t, a_t)$ |
$log P(\tau | \theta) = log p(s_1) + \sum_{t=1}^{T}log p(a_t | s_t, \theta) + log p(r_t, s_{t+1} | s_t, a_t)$ |
$\nabla log P(\tau | \theta) = \sum_{t=1}^{T} \nabla log p(a_t | s_t, \theta)$ |
$\nabla \bar R_\theta \approx \frac{1}{N} \sum_{n=1}^{N} R(\tau^n) \nabla log P(\tau^n | \theta) = \frac{1}{N} \sum_{n=1}^{N} R(\tau^n) \sum_{t=1}^{T_n} \nabla log p(a_t^n | s_t^n, \theta) = \frac{1}{N} \sum_{n=1}^{N} \sum_{t=1}^{T_n} R(\tau^n) \nabla log p(a_t^n | s_t^n, \theta)$ |
注意:这里$R(\tau^n)$是第n个trajectory的总的reward,而不是某一步的reward,这也表示我们要优化的是总的收益,而不局限于单步。
Policy-based: Learning an actor
Value-based: Learning a critic
AlphaGo是融合了多种方法:policy-based + value-based + model-based
Reference: