array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 David silver 强化学习公开课笔记(四):Model-Free Prediction - 爱码网

 

0 废话

好多天没写博客,不过也没闲着,把李宏毅老师的课看完了,但是就是不想总结,总觉得太费时间,回宿舍了看看他的机器学习,算是再补补基础吧,发现有一些内容还是之前没学过的,反正老师讲的有趣,看着挺好玩的。伯克利的强化学习看了两集,因为作业要申请mujoco,又发现了一个github上的一个好项目,链接为:https://github.com/dennybritz/reinforcement-learning,很多基础的程序,和sutton的书还有这个课几乎是配套的,非常好,于是开始跟着这么码代码,目前写到DQN了,写一写代码感觉对课程的内容理解的更深了,所以现在再写博客应该描述的会更清楚些。

1 介绍

Model free 的意思是指不需要知道具体的 MDP,直白些解释的话,就是不需要知道状态转移的概率,不能像动态规划那样一下把所有的状态全部更新;而 prediction 和 control 的区别是,前者使用固定的 policy,只更新值函数,而后者在更新值函数的时候也会更新 policy。

而这节课主要介绍了几种方法,分别是蒙特卡洛(Monte-Carlo)、时序查分(Temporal-Difference)和TD(David silver 强化学习公开课笔记(四):Model-Free Prediction),他们的区别就是估计当前状态的值需要向后走多少步,MC 是一直走知道终止状态,TD(n)就是走 n 步,而TD(David silver 强化学习公开课笔记(四):Model-Free Prediction)是将走1步到走到终止状态的返回值做了加权平均,而David silver 强化学习公开课笔记(四):Model-Free Prediction是一个加权平均的参数,在后边会有介绍。

2 Monte-Carlo Learning

给定策略,和当前的状态,可得到一个马尔科夫链:

David silver 强化学习公开课笔记(四):Model-Free Prediction

 计算的返回值(相当于综合考虑的奖赏)为:

David silver 强化学习公开课笔记(四):Model-Free Prediction

 则值函数为 Gt 的期望:

David silver 强化学习公开课笔记(四):Model-Free Prediction

 具体的方法为:每次从状态 s 执行到终止状态,就累加状态 s 的总返回值S(s),状态 s 的计数 N(s) 加以,每次都更新值函数为 :

David silver 强化学习公开课笔记(四):Model-Free Prediction

其实这个式子等价于下面的式子:

David silver 强化学习公开课笔记(四):Model-Free Prediction

 进而将 1 / N(s) 改成 David silver 强化学习公开课笔记(四):Model-Free Prediction 为:

David silver 强化学习公开课笔记(四):Model-Free Prediction

3 Temporal-Difference Learning

每次更新值时,只向后执行一步是TD(0),相比 MC,TD 的不同就是在于 Gt,改为了如下式子:

David silver 强化学习公开课笔记(四):Model-Free Prediction

所以值函数的迭代公式变为了:

David silver 强化学习公开课笔记(四):Model-Free Prediction

 这里还有两个名词说明,不然写程序时看不懂,其实就是一个式子拆开写成了两个,这里直接贴PPT:

David silver 强化学习公开课笔记(四):Model-Free Prediction

下面三个图分别介绍的TD、MC 和  DP 的区别,描述的非常好,这里就不多介绍了:

David silver 强化学习公开课笔记(四):Model-Free Prediction

David silver 强化学习公开课笔记(四):Model-Free Prediction

David silver 强化学习公开课笔记(四):Model-Free Prediction

4 TD(David silver 强化学习公开课笔记(四):Model-Free Prediction)

TD(n) 包括了 TD(0) 和 MC,当n等于0时就是TD(0),当n为无穷时就是MC如下图所示:

David silver 强化学习公开课笔记(四):Model-Free Prediction

而 TD(David silver 强化学习公开课笔记(四):Model-Free Prediction)就是对n从0到无穷的TD(n)的返回值做了加权平均,David silver 强化学习公开课笔记(四):Model-Free Prediction值越大表示约看重长远的值,也就越接近 MC ,示意图如下所示:

David silver 强化学习公开课笔记(四):Model-Free Prediction

 而 TD(David silver 强化学习公开课笔记(四):Model-Free Prediction) 有两种计算方式,一种是 Forward-view TD(λ), 一种是 Backward View TD(λ),下面分别介绍:

4.1 Forward-view TD(David silver 强化学习公开课笔记(四):Model-Free Prediction)

粗俗的解释:向前看的TD(lambda),就是在 St 时一直向后走,走到终止状态,然后在通过上述的式子更新V(St)这个比较容易理解,就不多赘述。

4.2 Backward-view TD(David silver 强化学习公开课笔记(四):Model-Free Prediction)

如果是前向的话,每次更新当前的值函数都要向后迭代到终止状态,时间复杂度和 MC 是一样的,但是走的都是一样的路径,却要走很多次,所以太浪费时间,所以能不能只走一次呢?

Backwaed-view TD(David silver 强化学习公开课笔记(四):Model-Free Prediction) 就是只走一次,只是没走一步更新前面走过的所有状态的值函数,由前面的公式知,离当前状态越远的状态受当前值的影响约小,而且这个值要每次衰减 David silver 强化学习公开课笔记(四):Model-Free Prediction 倍,那么这个影响怎么得到的呢?答案就是保存每个状态的资格迹(eligibility trace),下面解释什么是资格迹,公式如下:

David silver 强化学习公开课笔记(四):Model-Free Prediction

 每个状态的资格迹初始值是0,然后每走一步资格迹衰减 David silver 强化学习公开课笔记(四):Model-Free Prediction 倍,如果当前刚好是这个状态的话加 1。所以这个值就衡量的当前状态对之前所有状态的影响的大小,所以更新之前的状态的时候就用当前值乘资格迹就OK了(实际是当前值和预期值的差(叫做TD-error)乘资格迹),公式如下图所示:

David silver 强化学习公开课笔记(四):Model-Free Prediction

 Forward-view TD(David silver 强化学习公开课笔记(四):Model-Free Prediction) 和 Backward-view TD(David silver 强化学习公开课笔记(四):Model-Free Prediction) 是等价的

相关文章: