简介:

PGMRL: PGMRL就是把RL问题建模成一个概率图模型,如下图所示:

然后通过variational inference的方法进行学习:

PGMRL给RL问题的表示给了一个范例,对解决很多RL新问题提供了一种思路和工具。

Bayesian RL: 主要是对RL的reward function, transation function引入uncertainty, 引入prior和更新posterior来建模,从而更好地进行探索。

思考:为什么PGMRL推导过程中没有Beyesian RL的exploration-exploitation trade-off的问题。

简单的PGMRL建模的reward和transation是确定的,没有超参数的。在某种程度下,比如问题是凸的情况下,是不需要进行exploration的。而Beyesian RL的问题设定是假设这些东西是一种概率分布,而不是确定性的。而BeyesionRL对这种不确定性的处理恰巧克服了RL问题不是凸的情况local optimal的减弱。

thinking: what things does the Beyesian RL not consider?

Beyesian RL关注的点主要还是在uncertainty上,对policy学习过程的建模能力较弱,更适合用来处理RL中的uncertainty的问题,比如对sparse reward的问题处理能力较弱。

relationship between PGMRL and Bayesian RL:

我觉得Bayesian RL应该归为PGMRL中的一部分,PGMRL更具有整体性,对问题描述更全面,而Bayesian RL更像是处理某一特殊问题的方式。Bayesian RL需要在通过数据更新后验,然后也是model学习和policy学习相互交替的过程,但是由于没有很好的描述,我们不清楚这里面那些东西是missing variables,而且表面上看上去似乎reward和transation是missing的,但在PGMRL框架下,我们可以很清晰的看到其实optimal policy才是missing variable(PGMRL中把optimal policy转换成了variable)。这种迭代学习的过程,和EM算法的迭代类似,就是一边做inference一边做learning。这里inference就是对opitmal policy的学习过程,learning就是对MDP参数学习的过程。而在对optimal policy学习的时候,是这一种变分推断的过程,而这个变分推断过程又结合了MCMC采样的东西,MCMC采样有个冷启动的过程,所以前期不能只根据policy的最优结果来进行采样,需要加一些扰动。各种inference技术的结合加上简化形成了目前的基于deep learning的RL policy学习方法。

对于无先验的东西,我觉得还是用maximum entropy和variational infercence的方式去处理,简单的Bayesian RL中如果使用简单的共轭先验,对问题的处理局限性也较大,不具有普适性。所以,对于无先验的东西,直接采用maximum entropy更具有普适性。

Bayesian RL and PGMRL的更多相关文章

  1. 从Bayesian角度浅析Batch Normalization

    前置阅读:http://blog.csdn.net/happynear/article/details/44238541——Batch Norm阅读笔记与实现 前置阅读:http://www.zhih ...

  2. Learning Bayesian Network Classifiers by Maximizing Conditional Likelihood

    Abstract Bayesian networks are a powerful probabilistic representation, and their use for classifica ...

  3. Stanford机器学习笔记-3.Bayesian statistics and Regularization

    3. Bayesian statistics and Regularization Content 3. Bayesian statistics and Regularization. 3.1 Und ...

  4. 中间值为什么为l+(r-l)/2,而不是(l+r)/2

    二分法的算法中,我们看到一些代码里取中间值: MID=l+(r-l)/2; 为什么是这个呢?不就是(l+r)/2吗?为什么要多此一举呢? 其实还是有不一样的,看看他们的区别吧: l,r是指针的时候只能 ...

  5. 【原】对频率论(Frequentist)方法和贝叶斯方法(Bayesian Methods)的一个总结

    注: 本文是对<IPython Interactive Computing and Visualization Cookbook>一书中第七章[Introduction to statis ...

  6. 算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification)

    算法杂货铺——分类算法之朴素贝叶斯分类(Naive Bayesian classification) 0.写在前面的话 我个人一直很喜欢算法一类的东西,在我看来算法是人类智慧的精华,其中蕴含着无与伦比 ...

  7. Why are very few schools involved in deep learning research? Why are they still hooked on to Bayesian methods?

    Why are very few schools involved in deep learning research? Why are they still hooked on to Bayesia ...

  8. 听同事讲 Bayesian statistics: Part 2 - Bayesian inference

    听同事讲 Bayesian statistics: Part 2 - Bayesian inference 摘要:每天坐地铁上班是一件很辛苦的事,需要早起不说,如果早上开会又赶上地铁晚点,更是让人火烧 ...

  9. 一起啃PRML - 1.2.3 Bayesian probabilities 贝叶斯概率

    一起啃PRML - 1.2.3 Bayesian probabilities 贝叶斯概率 @copyright 转载请注明出处 http://www.cnblogs.com/chxer/ 这一节简单讲 ...

随机推荐

  1. android Resources 类的使用

    使用 R.<resource_type>.<resource_name> 获取的是资源的一个 id (int 类型), 但有时候我们需要获取资源本身,这时候我们可以通过 Res ...

  2. Egret 项目文件夹配置和基本容器、动画

    Egret 项目文件夹配置和基本容器.动画: class Main extends egret.DisplayObjectContainer { //src是resource codede 缩写,所有 ...

  3. python之封装与扩展性

    1.封装与扩展性 封装在于明确区分内外,使得类实现者可以修改封装内的东西而不影响外部调用的代码:而外部使用者只知道一个接口(函数),只要接口(函数)名,参数不变,使用者的代码永远无需改变.这就提供了一 ...

  4. Linux之ssh登录

    作业三:ssh登录,scp上传.下载,ssh秘钥登录,修改ssh server端的端口为8888然后进行登录和scp测试 1.ssh登录 [root@localhost network-scripts ...

  5. Android Studio提示 Connection reset

    解决步骤: 1:Android studio开发工具:File -> Invalidate caches / Restart:选择Invalidate and Restart关闭 Android ...

  6. Python3 与 C# 网络编程之~ 网络基础篇

    最新版本查看:https://www.cnblogs.com/dotnetcrazy/p/9919202.html 入门篇 官方文档:https://docs.python.org/3/library ...

  7. curl: (51) Unable to communicate securely with peer: requested domain name does not match the server's certificate.报错

    curl https 网站 出现报错 解决办法: You can use the domain name as usual but override the resolver like so: cur ...

  8. Springboot中Aspect实现切面(以记录日志为例)

    前言今天我们来说说spring中的切面Aspect,这是Spring的一大优势.面向切面编程往往让我们的开发更加低耦合,也大大减少了代码量,同时呢让我们更专注于业务模块的开发,把那些与业务无关的东西提 ...

  9. 对指针和引用的理解(c++)

    1.指针 typedef说明一种新类型名,来代替已有类型名. a.案例:typedef char* String_t和#define String_d char *这两句在使用上的区别? 1)前者声明 ...

  10. 【性能提升神器】Covering Indexes

    可能有小伙伴会问,Covering Indexes到底是什么神器呢?它又是如何来提升性能的呢?接下来我会用最通俗易懂的语言来进行介绍,毕竟不是每个程序猿都要像DBA那样深刻理解数据库,知道如何用以及如 ...