1. Policy Based算法 --- learning an Actor

1.1. 定义

定义actor为function π\pi,则:
Action=π(State) \text{Action} = \pi(\text{State})

其中:
π\pi:用NN训练出来的一个模型
State:模型的输入,为向量或矩阵。例如游戏界面的像素值。
Action:模型的输出,由softmax生成的一个分布。

定义:
s:state向量
a:action向量
r:reward向量
T:向量长度,1 episode = T轮迭代
RθR_\theta:总reward,为episode中所有迭代的reward之和。

对于同一个θ\theta,一个episode得到的RθR_\theta也不同,因此定义期望值:
R¯θ=E[Rθ] \bar R_\theta = E[R_\theta]

目标是最大化Rˉθ\bar R_\theta,不是RθR_\theta,也不是rtr_t

1.2. 推导期望的公式

定义:
τ=s1,a1,r1,,sT,aT,rTR(τ)=t=1Trn \begin{aligned} \tau = {s_1, a_1, r_1, \cdots, s_T, a_T, r_T} && \text{一局游戏的全过程}\\ R(\tau) = \sum_{t=1}^T r_n \end{aligned}

则:
R¯θτR(τ)P(τθ) \bar R_{\theta} \sum_\tau R(\tau) P(\tau|\theta)

τ\sum_\tau代表穷举所有的游戏经过。事实上这是不可能的。
解决方法:用πθ\pi_\theta玩N局,采样出N个τ\tau,用这N个τ\tau代替所有的τ\tau
因此有:
τP(τθ)=1N \sum_\tau P(\tau|\theta) = \frac{1}{N}

1.3. 梯度上升法最大化期望

根据梯度上升法:
θt=θt1+ηR¯θt1 \theta^t = \theta^{t-1} + \eta\nabla\bar R_{\theta^{t-1}}

这里关键是求出Rˉθ\bar R_{\theta}的偏导:



1.4. 偏导公式的直观解释

R(τn)>0R(\tau^n)>0时,就是增加这一轮中的Action的概率,即P(atnstn,θ)P(a_t^n|s_t^n,\theta)的概率。
R(τn)<0R(\tau^n)<0时,就是减少这一轮中的Action的概率。

  1. 公式中基于R(τn)R(\tau^n)调整这个episode中所有action的概率,而不是rtr_t调整ata_t的概率,是为了解决难点2。
  2. 为什么是logp(atnstn,θ)\nabla\log p(a_t^n|s_t^n, \theta),而不是p(atnstn,θ)\nabla p(a_t^n|s_t^n, \theta)
    答:
    logp(atnstn,θ)=p(atnstn,θ)p(atnstn,θ) \nabla\log p(a_t^n | s_t^n, \theta) = \frac{\nabla p(a_t^n|s_t^n, \theta)}{p(a_t^n|s_t^n, \theta)}

logp(atnstn,θ)\nabla\log p(a_t^n|s_t^n, \theta)p(atnstn,θ)\nabla p(a_t^n|s_t^n, \theta)差别在于分母p(atnstn,θ)p(a_t^n|s_t^n, \theta),这个分母相当于归一化的过程。

results matching ""

    No results matching ""