今天看啥  ›  专栏  ›  Plenari

16.RL

Plenari  · 简书  ·  · 2019-06-20 17:22
  • 在我们已知模型的情况下可以用这个方法:
    一个策略pi对应参数theta,以及状态state。参数theta对应的奖励为每一个时刻reward的和:
    Reward(theta)=sum(reward(time))
    我们希望得到Reward的平均值越大越好。我们可以把一次游戏的操作的流程记作:tao。所以多次玩游戏的话可以计算出不同tao出现 的概率:P(tao|theta)。这样我们就可以得到theta参数下得到奖励的平均值,E(Reward(theta))=sum(Reward(tao)*P(tao|theta)=mean(R(tao^(n)))
    我们得到了参数theta下的期望值,现在用梯度下降法求好的theta让R最大。

    image.png

    从图中可以看到R(tao)跟theta 无关,所以我们只算dP(tao|theta)就可以了。

  • 如何计算dP(tao|theta)?

image.png

计算P(tao|theta):
tao={s1,a1,r1,s2,a2,r2...}
代表在状态s1采取动作a1得到奖励r1.从状态到动作是有参数theta控制的。由动作导致状态的变化,会得到奖励的变化。


image.png

这个表达式表明,参数theta的优化只与动作项有关。
所以总的梯度可以写成:


image.png
  • 如果一个动作出现次数较多,则可能得到的奖励也将大于出现次数较少的奖励。


    image.png
  • 若所有的奖励都是正的?
    做任何一个动作的几率应该都是在0-1之间的。


    image.png

    假设,a,c得到奖励较大,所以奖励大的出现几率变大。
    但是如果a从来没做过会导致永远不去尝试a。所以希望用R(tao^n-b),减去bais.

  • Critic
  1. 对状态判断的函数?
  • 其他


    image.png
  • 参考

  1. https://www.youtube.com/watch?v=W8XF3ME8G2I



原文地址:访问原文地址
快照地址: 访问文章快照