加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

潮科技行业入门指南 | 深度学习理论与实战:提高篇(17)—— 强化学习简介(三)

发布时间:2019-03-26 07:01:32 所属栏目:教程 来源:36氪
导读:编者按:本文节选自《深度学习理论与实战:提高篇 》一书,原文链接http://fancyerii.github.io/2019/03/14/dl-book/ 。作者李理,环信人工智能研发中心vp,有十多年自然语言处理和人工智能研发经验,主持研发过多款智能硬件的问答和对话系统,负责环信中

注意这个代码和上面代码最后两行的差别。首先因为我们的策略 是确定的策略,因此只有一个Action 的概率是 1,其余的是 0。因此如果状态是 ,那么策略 会选择 Q 最大的那个 a,也就是 max(,) ,如果 ≠() ,则说明 (|)=0 ,因此和上面算法的条件一样,可以退出 for 循环,否则就更新 W,如果执行到最后一行代码,说明 (|)=1 ,所以分子是 1。

Off-Policy蒙特卡罗控制代码示例

完整代码在这里。

核心的函数是 mc_control_importance_sampling,代码和伪代码几乎一样,请读者参考伪代码阅读:

潮科技行业入门指南 | 深度学习理论与实战:提高篇(17)—— 强化学习简介(三)

潮科技行业入门指南 | 深度学习理论与实战:提高篇(17)—— 强化学习简介(三)

运行后我们把V(s)画出来,如下图所示。

潮科技行业入门指南 | 深度学习理论与实战:提高篇(17)—— 强化学习简介(三)

图:Off-Policy算法无Ace时最佳值函数

潮科技行业入门指南 | 深度学习理论与实战:提高篇(17)—— 强化学习简介(三)

图:Off-Policy算法有Ace时最佳值函数

我们可以看出结果和前面的 On-Policy 算法差不多,但是运算速度会快很多,读者可以自行比较一下。

动态规划和蒙特卡罗方法的比较

  • 是否有模型

    动态规划需要模型 p(s’,r|s,a);而蒙特卡罗方法不需要,它只需要能获得采样的 Episode 就行。因此动态规划也称为基于模型的 (model based) 方法;而蒙特卡罗方法被称为无模型的 (model free) 方法。基于模型的方法需要知道环境的动力系统,有些问题我们很容易知道环境动力系统,但是还有很多问题我们无法直接获得。如果我们还想使用动态规划,我们就必须用一个模型来建模环境,这本身就是一个很复杂的问题。比如前面我们的21点游戏,想完全建模其动力系统是很困难的。

    • bootstrapping

      动态规划是有 bootstrapping 的,() 和 (,) 都需要先有估计(初始值),然后通过迭代的方法不断改进这个估计。

      • online/offline

        蒙特卡罗方法是 offline 的,需要一个 Episode 结束之后才能计算回报。等介绍过 TD(λ) 之后,与 constant-α MC (一种后面我们会介绍的蒙特卡罗方法)等价的 TD(1) 可以实现 online 计算。这样如果不是 Episode 的任务(比如用于不结束状态的连续的任务),或者有些任务如果策略不对可能永远无法结束,比如后面我们会介绍的 Windy Gridworld。

        注意动态规划并没有 online/offline 只说,因为它不是采样的方法。这是蒙特卡罗方法的一个缺点,后面的时间差分学习能解决这个问题。

        • full/sampling backup

          如下图所示,动态规划会”遍历”所有的子树,而蒙特卡罗方法只采样一条路径。

          潮科技行业入门指南 | 深度学习理论与实战:提高篇(17)—— 强化学习简介(三)

          图:蒙特卡罗算法只采样一条路径

          潮科技行业入门指南 | 深度学习理论与实战:提高篇(17)—— 强化学习简介(三)

          图:动态规划会递归的遍历所有子树

          (编辑:温州站长网)

          【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读