强化学习-无模型控制(下)

来源:互联网 发布:大数据麦肯锡定义 编辑:程序博客网 时间:2024/05/16 15:37

2.在线策略学习

2.1.ε -蒙特卡洛控制

有了上一节的引导,我们现在可以提出一个基于ε的蒙特卡洛控制算法,其流程如下:

  • 随机选择一个策略π
  • 依据该策略执行一个状态周期,并估算各个状态的价值
  • 使用ε贪婪探索进行优化

2.1.1.sarsa

有了之前蒙特卡洛控制的经验,很容易想到,把其中蒙特卡洛预测的部分替换成时间差分,那不就可以完成时间差分控制了么。使得,而且这个算法有一个新名字,叫做sarsa。和蒙特卡洛控制有所区别的是,这里我们使用动作价值函数Q
实际上就是在一个马尔科夫过程
以:

Q(S,A)Q(S,A)+α(R+γQ(S,A)Q(S,A))

sarsa算法主要流程如下:

  • 初始化动作收益函数Q(s,a),一般初始化为0
  • 对每一个episode
    • 初始化状态S
    • ε贪婪探索决定一个动作
    • 对episode中的每个动作状态
      • 进行决定的行为,并观察结果
      • 更新动作价值函数Q(S,A)Q(S,A)+α(R+γQ(S,A)Q(S,A))

当srasa的观察步骤拓展到整个动作状态周期时候,sarsa就和蒙特卡洛方法一致了。

2.1.2.Q-learing

和sarsa比较的话,Q-learing其实没有做很大的改进,其主要就是变化了下状态更新公式,成了:

Q(S,A)Q(S,A)+α(R+γmaxQ(S,A)Q(S,A))

也就是说每次用于更新的真值估计变成了收益加上本状态最大的收益函数(不论什么动作)。其他和sarsa还是一样的

3.离线策略学习

有了在线策略学习,为什么还要花心思研究离线策略学习呢。很简单,在线策略是一个不断学习优化的过程,从之前的算法我们也可以看书,由于没有先验知识,很多参数我们都是随机初始化或者全部置0的,但是,这样的话就很难把我们的经验用在实际控制里面了。离线策略学习正是为了解决这样一个问题,它希望将之前的经验全部利用起来,先得到一个较为准确的策略,之后再以此为基础优化。值得注意一点的是,在这里我们的经验就并非是同一个策略所得到的经验了,而是使用不同策略所得到的经验,所以离线策略学习想要利用不同策略经验的话,首先就要学会如何从不同策略中选择出较好的那一个进行学习。

而离线策略学习主要要解决的问题就在于通过其他策略经验μ(a|s)评价策略π(a|s)来计算出vπ(s)或者qπ(s,a)。由于我们的经验策略和评价目标策略不一样,应该如何衡量这个经验策略有没有用呢,这里我们就要使用重要性采样。

重要性采样

关于重要性采样的详细介绍读者请跳转我的另一篇文章:http://blog.csdn.net/ArtistA/article/details/51570878
这样,重要性采样下的收益可以表达为:

Gπ/μt=π(At|St)π(At+1|St+1)...π(AT|ST)μ(At|St)π(At+1|St+1)...π(AT|ST)Gt

于是,另一策略所提供的本策略的更新公式可以表达为:
V(St)V(St)+α(Gπ/μtV(St))

进一步,改写成一个时间差分形式,有:
V(St)V(St)+α(π(At|St)μ(At|St)(Rt+1+γV(St+1))V(St))

于是,我们也可以使用其他策略的经验进行学习了。
这次的分析就到这里,下次我们将把ROS-rl-agent里面的东西拆开来,进入实战分析。

0 0
原创粉丝点击