> 目  录 

 > 笔  记 

Dynamic programming(DP)

定义:a collection of algorithms that can be used to compute optimal policies given a perfect model of the environment as a Markov decision process (MDP).

经典的DP算法处理RL problem的能力有限的原因:(1) 假设a perfect model with complete knowledge;(2) 巨大的计算开销

Policy Evaluation (Prediction)

policy evaluation: the iterative computation of the state-value function $v_{\pi}$ for a given policy $\pi$.

用迭代=的方法实现评估: 旧的value = expected immediate rewards + 从后继states获得的values

这种更新操作叫做expected update,因为它基于所有可能的后继states的期望,而非单个next state sample。

存储方式:有two-array version(同时存储old和new value) 和 in-place algorithm(只存储new value)两种,通常采用后者,收敛的更快。

Policy Improvement

我们计算policy的价值函数的目的是希望能够帮助我们找到更好的policy。

Policy improvement theorem:

两个确定的策略$\pi$和$\pi'$,如果满足:

那么策略$\pi'$一定比$\pi$好or跟它一样好。因此,策略$\pi'$可以在所有state上得到更多or相等的expected return:

证明如下:

Policy improvement:

定义: Policy improvement refers to the computation of an improved policy given the value function for that policy.

相比原始策略$\pi$,如果我们在所有states上采用贪心算法来选择action,那么得到的新策略如下:

因为其满足policy improvement theorem的条件,所以新的greedy policy $\pi'$要比old policy更好。我们可以根据这一性质,不断地对policy进行改进,直到new policy和old policy一样好,即$v_{\pi}=v_{\pi'}$,此时对所有的states满足:

该式子正是Bellman optimality equation,因此$v_{\pi'}$一定是$\v_{*}$, 策略$\pi$和$\pi‘’$一定是最优策略。

Policy Iteration

定义: 一种把policy evaluation和policy improvement结合在一起的常见的DP方法。

因为finite MDP只有有限数量的策略,因此最终总会在有限步数内收敛到一个optimal policy和optimal value function。

Value Iteration

policy iteration的缺点:每一轮迭代都需要执行policy evaluation,而policy evaluation需要对state set扫描多次并且$\v_{\pi}$最终很久才能收敛。

改进方法:可否让policy evaluation早一些停止?value iteration不再等policy evaluation收敛,而是只对所有state扫描一次就停止。将policy evaluation和policy improvement的步骤同时进行:

Asynchronous Dynamic Programming

之前讨论的DP方法的缺点在于:需要对MDP中所有states进行扫描、操作,导致效率低下。

Asynchronous DP algorithms: 是in-place iterative DP algorithms,这类算法可以按照任意顺序更新state的value,并且不管其他states当前的value是何时更新的。

需要注意的是,avoiding state sweeps并不意味着我们可以减少计算量,其好处是(1) 可以让我们尽快利用更新后的value来提升policy,并且减少更新那些无用的states。(2)可以实时计算,所以可以实现iterative DP algorithm  at the same time that agent is actually experiencing the MDP。agent经历可以用于决定更新那些states。

Generalized Policy Iteration

generalized policy iteration (GPI):policy-evaluation and policy-improvement processes interaction

                 

Reinforcement Learning: An Introduction读书笔记(4)--动态规划的更多相关文章

  1. Reinforcement Learning: An Introduction读书笔记(3)--finite MDPs

     > 目  录 <  Agent–Environment Interface Goals and Rewards Returns and Episodes Policies and Val ...

  2. Reinforcement Learning: An Introduction读书笔记(1)--Introduction

      > 目  录 <   learning & intelligence 的基本思想 RL的定义.特点.四要素 与其他learning methods.evolutionary m ...

  3. Reinforcement Learning: An Introduction读书笔记(2)--多臂机

     > 目  录 <  k-armed bandit problem Incremental Implementation Tracking a Nonstationary Problem ...

  4. 《Machine Learning Yearing》读书笔记

    ——深度学习的建模.调参思路整合. 写在前面 最近偶尔从师兄那里获取到了吴恩达教授的新书<Machine Learning Yearing>(手稿),该书主要分享了神经网络建模.训练.调节 ...

  5. Machine Learning for hackers读书笔记(六)正则化:文本回归

    data<-'F:\\learning\\ML_for_Hackers\\ML_for_Hackers-master\\06-Regularization\\data\\' ranks < ...

  6. 《算法导论》读书笔记之动态规划—最长公共子序列 & 最长公共子串(LCS)

    From:http://my.oschina.net/leejun2005/blog/117167 1.先科普下最长公共子序列 & 最长公共子串的区别: 找两个字符串的最长公共子串,这个子串要 ...

  7. Machine Learning for hackers读书笔记(三)分类:垃圾邮件过滤

    #定义函数,打开每一个文件,找到空行,将空行后的文本返回为一个字符串向量,该向量只有一个元素,就是空行之后的所有文本拼接之后的字符串 #很多邮件都包含了非ASCII字符,因此设为latin1就可以读取 ...

  8. Machine Learning for hackers读书笔记_一句很重要的话

    为了培养一个机器学习领域专家那样的直觉,最好的办法就是,对你遇到的每一个机器学习问题,把所有的算法试个遍,直到有一天,你凭直觉就知道某些算法行不通.

  9. Machine Learning for hackers读书笔记(十二)模型比较

    library('ggplot2')df <- read.csv('G:\\dataguru\\ML_for_Hackers\\ML_for_Hackers-master\\12-Model_C ...

随机推荐

  1. Lesson 22 A glass envelope

    Text My daughter, Jane, never dreamed of receiving a letter from a girl of her own age in Holland. L ...

  2. [编译] 3、在Linux下搭建51单片机的开发烧写环境(makefile版)

    星期二, 10. 七月 2018 01:01上午 - beautifulzzzz 一.SDCC(Small Device C Compiler)编译环境搭建 SDCC是一个小型设备的C语言编译器,该编 ...

  3. 网络编程懒人入门(六):深入浅出,全面理解HTTP协议

    本文引用了自简书作者“涤生_Woo”的文章,内容有删减,感谢原作者的分享. 1.前言 HTTP(全称超文本传输协议,英文全称HyperText Transfer Protocol)是互联网上应用最为广 ...

  4. Java程序员的成长之路

    阅读本文大概需要 8.2 分钟. tips:虽然题目是写的Java程序员,但对其他语言的开发来说也会有借鉴作用. 本篇介绍的是大体思路,以及每个节点所需要学习的书籍内容,如果大家对详细的技术点有需要, ...

  5. IDEA项目上传到github

    IDEA项目上传到github 保证下载了Git插件 往后余生,唯独有你 简书作者:达叔小生 90后帅气小伙,良好的开发习惯:独立思考的能力:主动并且善于沟通 简书博客: https://www.ji ...

  6. 在Ubuntu 18.04中安装pyenv(Python多版本管理工具)

    最近正在重头梳理Python的基础知识,为了更好地使用Python进行开发,防止发生版本混乱(不同的第三方库有可能因为Python版本不兼容而报错),所以需要使用pyenv进行版本管理. *** 通常 ...

  7. JSP内置对象的使用(一)

    JSP九大内置对象是:request.response.session.application.out.pagecontext.config.page.exception. JSP常用的内置对象是:o ...

  8. ubuntu 16.04 下安装NVDIA的库(CUDA+CUDNN)

    立志学习神经网络的同学,为了让它能够跑快一点,估计英伟达的GPU是要折腾一番的. 首先看一下什么是CUDA ? CUDA(Compute Unified Device Architecture),是显 ...

  9. SpringDataJPA与Mybatis的优异性

    首先表达个人观点,JPA必然是首选的. 个人认为仅仅讨论两者使用起来有何区别,何者更加方便,不足以真正的比较这两个框架.要评判出更加优秀的方案,我觉得可以从软件设计的角度来评判.个人对 mybatis ...

  10. Android--数据持久化之SQLite

    前言 对于一个应用程序而言,数据持久化是必不可少的,Android程序也不例外.这篇博客将介绍Android中关于SQLite的使用,SQLite是一种嵌入式的数据库引擎,专门适用于资源有限的设备上进 ...