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(\lambda),他们的区别就是估计当前状态的值需要向后走多少步,MC 是一直走知道终止状态,TD(n)就是走 n 步,而TD(\lambda)是将走1步到走到终止状态的返回值做了加权平均,而\lambda是一个加权平均的参数,在后边会有介绍。

2 Monte-Carlo Learning

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

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

 则值函数为 Gt 的期望:

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

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

 进而将 1 / N(s) 改成 \alpha 为:

3 Temporal-Difference Learning

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

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

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

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

4 TD(\lambda)

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

而 TD(\lambda)就是对n从0到无穷的TD(n)的返回值做了加权平均,\lambda值越大表示约看重长远的值,也就越接近 MC ,示意图如下所示:

 而 TD(\lambda) 有两种计算方式,一种是 Forward-view TD(λ), 一种是 Backward View TD(λ),下面分别介绍:

4.1 Forward-view TD(\lambda)

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

4.2 Backward-view TD(\lambda)

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

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

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

 Forward-view TD(\lambda) 和 Backward-view TD(\lambda) 是等价的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值