值函数近似——Large MDPs 的福音

对于具有大量状态空间和动作空间的MDPs,前面讲到的一些处理方法就不再适用了,可能会引起维度爆炸之类的问题。一个简单的方法就是用带有权重w参数的一个关于s的函数来表示近似的Vπ(s)或者qπ(s,a),以此建立值函数逼近器,这样我们就可以估算任何一个函数的值,并将其应用于状态数据库中,从而压缩了状态数据库的存储量。Value Function Approximation的思想大致就是如此。

一、随机梯度下降思想

在真正剖析函数逼近算法前,我们需要了解以下这些关于梯度下降算法的知识,并且梯度这个概念在之后会频繁地用到。

1. 定义

首先,w是一个参数的向量形式,函数J(w)的梯度定义如下左图所示,这个公式应该很好理解,其实就是对J(w)这个函数求关于向量w的偏导数。从这个梯度向量中,我们就可以知道对于函数J(w)来说最陡的上升或者下降趋势的梯度是多少,如果我们一直沿着这个最陡的梯度向下走,就会很快找到函数的最小值了。w参数的调整标准如下右图所示:(其中α是步长参数) 

                      (1)                (2)

2. 假设

假设我们现在知道所有状态或者行为状态对的真正的价值函数:Vπ(s)或 qπ(s,a)。这有助于我们理解和构建值函数近似算法,之后我们会抛开这个假设,用强化学习的思想来完善这个算法。

3. 应用

在值函数近似算法中,我们的目标是使真实值与估算值之间的方差最小,因此J(w)定义为真值与估计值之间误差平方的期望。

对其进行链式法则,代入上面(2)式,可以得到△w的计算公式:(由于真实值为常数,所以梯度可以转换为估计值的梯度)并且在应用中,我们采用随机梯队下降,对某些状态进行抽样,用步长×误差×梯度,可以就得到调整梯度参数的数值和方向。

二、线性值函数近似

线性值函数近似只是值函数近似方法中的其中一种,此外还有查表函数近似法等等,用来解决不同类型的问题,这里简单介绍一下线性值函数近似问题。

1. 特征向量

如果我们用一个特征向量X(s)来表示某一个状态,那么X(s)中的每一个元素都是用来描述状态的一个数值。形式如下:


2. 函数估计值

函数估计值可以用线性特征向量与权重向量点积的形式来表示:


3. 目标函数

目标函数就是之前提到的真实值与估计值之间方差的期望:


4. 更新规则

由于这是线性的函数近似,特征向量X(s)对于权重向量w都是线性的,所以更新规则就很简单:

update=step-size×error×feature vector


三、值函数近似预测算法

上面铺垫了这么多,终于要来到激动人心的算法核心内容了,在这里我们要抛开上面那个假设,也就是说Vπ(s)或 qπ(s,a)都是未知的,强化学习作为一种无监督学习,没有人会告诉我们真值,我们只能从经验中获得。这里顺便说明一下,我们之前做这个假设是为了更好地说明梯度下降的思想,把其余不必要探讨的东西设为已知而已。值函数近似算法能称得上是一种强化学习算法的核心就在于用什么来代替真值函数——真值替换。

根据不同的强化学习方式, 我们可以用蒙特卡罗学习中的,或者TD学习中的 , 等来代替真值,也就是上面我们估算的目标。则不同算法中,更新规则也各不相同,分别如下:

四、值函数近似控制算法

和前面许许多多的算法一样,学习的思路都是一致的,都是先预测后控制,控制中还是要回顾之前介绍过的广义策略迭代的方法。具体的迭代分为两步,一是策略评估,用值函数近似算法对策略进行抽样预测,公式和更新规则同上,但很显然,其中的Vπ(S)将被Q(s , a)代替。另一步是策略提升,可以用greedy或者ε-greedy。同样为了加快更新速度,可以走几步就回头更新一下策略。

1. 近似函数

与策略评估不同,在控制中,需要近似的值函数如下:


2. 目标函数

我们需要用梯度下降思想最小化的目标函数为:


3. 更新规则

根据上面的老套路,把这里的更新规则列出如下:


4. 真值替换

根据不同的经验学习方法,有不同的变量来替换真值,得到下列更新公式:


五、END

其实值函数近似算法还是比较简单的,至少我看了一次网课就懂了,它以梯度下降法为大框,只是把不同强化学习思想方法安进去得到不同的更新规则而已,套路都是一样的啊。只要理解了之前几章讲的蒙特卡罗学习和TD学习等方法原理,这里也就没什么好多说的,所以把一些概念和原理阐述了一下,最主要的是应用,我暂时还没找到比较小而有助理解的编程实例,找到了再更新代码。


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值