【强化学习的数学原理】第08课-值函数近似-笔记

学习资料:bilibili 西湖大学赵世钰老师的【强化学习的数学原理】课程。链接:强化学习的数学原理 西湖大学 赵世钰

文章目录


一、例子:曲线拟合

截止到目前为止,我们所介绍的state value和action value都是以表格的形式呈现的(如下图所示)。这种呈现方式虽然清晰简单,但难以处理很大/连续的状态空间、动作空间。

下面通过一个例子来介绍value function approaximation的基本思想。

假设现在有 ∣ S ∣ |S| ∣S∣个状态,基于给定的策略,每个状态都有一个state value(用下图中的离散点表示,每一个离散点代表状态s对应的state value v(s))。如果状态s的数量非常多,那么储存就耗费很大空间,因此希望用一个函数来拟合这些点。

首先,用一个直线来拟合这些点。如下图所示。 w w w里面包含a和b,是parameter vector; ϕ ( s ) \phi(s) ϕ(s)是特征向量。

用直线进行拟合的好处:节约存储空间。现在不用存储很多状态s的state value,只需要存储两个参数a和b。但缺点是,拟合后的结果只是一个近似值,不那么精确了。

下面是一个非线性的拟合方式,这种方法使用的参数多一些,提高了拟合精度。

简单总结:总体思想是用参数化的函数来拟合状态s的state value。

优点:

(1)节省存储空间

(2)提高泛化性。假如s1/s2/s3是相邻的三个状态,现在episode访问到了s2,需要更新s2的state value,更新后的state value变大。在表格的形式中,s1和s3的state value值是保持不变的。但是在函数的形式中,s2的state value变化后,拟合的函数发生变化(w变化),此时对s1和s3的state value的估计值也更准确。

二、原理-目标函数介绍

v π ( s ) v_{\pi}(s) vπ(s)是state value的真实值, v ^ ( s , w ) \hat{v}(s,w) v^(s,w)是state value的近似值。

我们的目标是找到一个最优的 w w w,使得对于每一个状态 s s s, v ^ ( s , w ) \hat{v}(s,w) v^(s,w)都能最好地近似 v π ( s ) v_{\pi}(s) vπ(s)。

为了寻找最优的 w w w,我们定义如下目标函数:

值得指出的是, S S S是一个随机变量,既然是一个随机变量,这个随机变量就是有概率分布的。那么S的概率分布是什么呢?有几种方式来定义S的概率分布。

第一种方式是均匀分布 。这种方式下,每一个状态的权重都是一样的,一共有 ∣ S ∣ |S| ∣S∣个状态,那每一个状态的权重就是 1 / ∣ S ∣ 1/|S| 1/∣S∣。但这样的缺点在于,并不是每一个状态都是同等重要,有的状态更重要,我们需要这样的状态权重高一点,计算的误差小一点。

第二种方式是stationary distribution 。在这种方式下,从某一个状态开始,不断地和环境进行交互,交互很多次之后,就达到了一种平稳的状态,在这种平稳的状态下,能够计算出,每一个状态出现的概率是多少。这个概率分布用 d π ( s ) d_{\pi}(s) dπ(s)来表示,基于 d π ( s ) d_{\pi}(s) dπ(s)可以把目标函数写成如下图所示的形式。 d π ( s ) d_{\pi}(s) dπ(s)实际上扮演了权重的角色。

stationary distribution是状态state 的概率分布,从当前状态出发,跑了很多很多步之后达到的一种平稳的分布。它也被称作steady-state distribbution或者limiting distribution。

下图展示了一个例子。用 n π ( s ) n_{\pi}(s) nπ(s)表示在基于 π \pi π的策略基础上,在一个很长的episode中,访问s的次数。 d π ( s ) d_{\pi}(s) dπ(s)是比值结果,表示状态被访问的概率。右下角的图表示,随着步长越来越长,比值逐渐趋于稳定。

三、原理-优化算法和函数选择

优化算法

用梯度下降方法求解优化目标。下图给出了梯度下降算法,以及计算了目标函数 J ( w ) J(w) J(w)的梯度。

而这个梯度算出来是有期望的,期望不太好算,所以下面使用随机梯度来代替真实的梯度。

但是这个算法仍然是不好实施的,因为 v π ( s t ) v_{\pi}(s_t) vπ(st)的值是不知道的。可以用其他量来代替 v π ( s t ) v_{\pi}(s_t) vπ(st)。

第一种方法:Monte Carlo的方法。用 g ( t ) g(t) g(t)来代替 v π ( s t ) v_{\pi}(s_t) vπ(st), g ( t ) g(t) g(t)是在某一个episode中从状态 s t s_t st出发所得到的discounted return。(这个思想就是和蒙特卡洛方法一致的)

第二种方法:TD learning的方法。把 v π ( s t ) v_{\pi}(s_t) vπ(st)用下式来代替。

TD learning算法的伪代码如下。(分为general case和linear case两种情况)值函数估计的目标还是计算给定策略的state value。

函数选择

如何选择函数 v ^ ( s , w ) \hat{v}(s,w) v^(s,w)呢?

第一种方法,是用线性函数linear function作为 v ^ ( s , w ) \hat{v}(s,w) v^(s,w)。(以前常用)

第二种方法,是用神经网络作为一种非线性函数近似。神经网络的输入是状态state,输出是近似的结果 v ^ ( s , w ) \hat{v}(s,w) v^(s,w)。网络权重是 w w w。(现在常用)

下面看一下线性的情况。如果 v ^ ( s , w ) \hat{v}(s,w) v^(s,w)用线性函数表示,则其梯度为 ϕ ( s ) \phi(s) ϕ(s),把这个梯度应用到TD算法中,就得到如下图3所示的结果。这也被称作TD-Linear。

Linear function approximation的优劣势:

劣势:很难去选择一个好的feature vector。(好的拟合函数)

优势:相对于非线性函数,线性函数的理论性质能被很好地分析;线性函数的表征能力相对还是比较强的。

四、原理-示例与分析

例1:

下面是一个5*5的网格世界的例子,目标是用函数拟合的方法,在给定策略的基础上计算25个状态的state value。

下图展示了Ground truth。我们收集了500个episode,每个episode有500步。每个episode出发的state action pair是随机选择的,并服从均匀分布。

1.用一个平面来拟合

下面用TD-Linear算法来求解。所选择的feature vector实际上是一个平面(有x、y)。

下图(中间)给出了TD Linear的计算结果,下图(左边)是ground truth。可以看出,趋势是对的,但对于某些状态估计得不太准确。因为我的拟合函数只是一个平面,而真实结果是一个复杂的曲面。

2.用更高阶的曲面来拟合

从拟合结果中可以看出来,用更高阶的曲面来拟合,效果更好了。

小结:

PS:从(2)到(3)的替换在数学上是不严谨的。更详细的分析可以见赵老师的书。

五、Sarsa和Q-learning

Sarsa with function approximation

下图是Sarsa和value function approaximation相结合后的算法。和上一节讲到的TD算法相比,就是把 v ^ ( s t ) \hat{v}(s_t) v^(st)换成 q ^ ( s t , a t ) \hat{q}(s_t,a_t) q^(st,at)。这里本质上仍然是在做policy evaluation,action value q ^ = ϕ T w \hat{q}=\phi^Tw q^=ϕTw。

下图是伪代码。首先在当前状态 s t s_t st的情况下遵循策略选择动作 a t a_t at,产生 r t + 1 r_{t+1} rt+1和 s t + 1 s_{t+1} st+1,然后在新的状态下遵循策略选择新的动作 a t + 1 a_{t+1} at+1。然后进行value update 过程,对参数w进行更新,这里本质上仍然是在做policy evaluation。再进行policy update过程,这里采用的是 ϵ \epsilon ϵ-greedy的方法。

下图展示了将Sarsa和linear function approximation结合的例子。任务是从某一状态出发,到达目标状态。

Q-learning with function approximation

算法如下:

这是Q-learning with function approximation(on policy)版本的伪代码。

下图展示了将Q-learning和linear function approximation结合的例子。任务是从某一状态出发,到达目标状态。

六、Deep Q-learning (DQN) 基本原理

DQN把深度神经网络引入到强化学习中。下图的 J ( w ) J(w) J(w)展示了DQN的目标函数/损失函数。如果达到最优的话,loss function应该是等于0。

然后用梯度下降法对目标函数进行优化。但对这个目标函数求梯度有点困难。因为第二部分的梯度好求,但是第一部分的梯度有点难求。可以把第一部分+R看作一个整体y。

设计两个网络 ,在main network中,参数是w,w是一直被更新的,有新的采样进来的时候,就会被更新。但在target network中,参数是 w T w_T wT,这个参数不是一直被更新的,隔一段时间之后,会把main network中的参数w的值给赋值过来。最后, w w w和 w T w_T wT都能收敛到最优的值。

所以它的梯度公式最终是写成这样的:

值得强调的是,DQN使用了两个网络,main network和target network,其参数分别是 w w w和 w T w_T wT。在每次迭代中,从replay buffer中提取一些sample,使得输出的结果尽量接近 y T y_T yT。训练一段时间后,参数 w w w的值变化了,把这个值赋给 w T w_T wT, w T w_T wT再用来训练这个 w w w。

七、Deep Q-learning (DQN) Experience replay(经验回放)

什么是经验回放?

在收集数据experience samples的时候,是有一定的先后顺序的,但是在使用数据的时候,并不一定要遵循这个顺序。我们把这些数据存到一个 B B B集合中(从状态s出发,采取action a,得到reward r,跳转到下一个状态s'),这个集合的名字叫replay buffe r。

每次训练神经网络的时候,从这个replay buffer中抽取一些mini-batch的随机样本。这些样本的抽取叫做experience replay ,这需要遵循均匀分布。

为什么要经验回放?

为什么要在deep Q-learning中使用experience replay?为什么这个replay必须遵循均匀分布呢?

把 ( S , A ) (S,A) (S,A)当成一个索引,将其当成一个随机变量。给定 ( S , A ) (S,A) (S,A)后, R R R和 S ′ S' S′都服从系统的模型。假设 ( S , A ) (S,A) (S,A)服从均匀分布(因为我们没有先验知识,无法判断哪些 ( s , a ) (s,a) (s,a)重要,哪些不重要,所以我们只能让它服从均匀分布)。

为了不按照采集experience的顺序使用数据,采用了experience replay经验回放的方法,把数据打散,然后再均匀地从中抽取数据。

八、Deep Q-learning (DQN) 代码与例子

下面是Deep Q-learning的伪代码,off-policy 版:

初始的策略 π b \pi_b πb产生了很多sample,这些sample被存在集合 B B B中。下面在每一个iteration中,首先从集合 B B B中进行随机的采样,然后对采样进行进一步的处理,计算 y T y_T yT(希望近似值 q ^ \hat{q} q^尽可能地接近 y T y_T yT)。然后把 ( s , a , y T ) (s,a,y_T) (s,a,yT)送入到神经网络中进行训练。每经过C次迭代,就把 w w w赋值给 w T w_T wT。

例子:

任务是对所有的state action pair,去找到其optimal action value。一些具体的设置如下图所示。需要注意的是,这里设计的神经网络很简单,只有三层:隐藏层、输入层、输出层,隐藏层只有100个神经元。

下面是结果。可以看到TD error和state value error逐渐收敛到0。

相关推荐
蒸蒸yyyyzwd4 小时前
AI应用相关可能的面试问题
笔记
叼烟扛炮5 小时前
[Git 实战] 学习笔记:从生成 SSH 密钥到解决 TortoiseGit 推送报错全指南
linux·运维·笔记·git·学习
蒸蒸yyyyzwd5 小时前
学习笔记 八股手撕
笔记·学习
揣一尾游鱼yu7 小时前
Spring上(IOC)笔记
java·笔记·spring·ioc
小李不想当小白8 小时前
BKP备份寄存器与RTC实时时钟(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
瑞码空间10 小时前
JSP与Servlet核心开发与CRUD实战笔记
java·笔记·servlet·jsp
La Pulga11 小时前
【FreeRTOS源码学习笔记】链表的实现
数据结构·笔记·stm32·mcu·链表·嵌入式·freertos
wuyoutrans13 小时前
以色列专利OA答复翻译,重点要避开哪些坑?
笔记
宝绿特塑业再生科技13 小时前
HDPE再生颗粒户外家具表面粉化机理与改性技术全解析
笔记·户外家具·再生塑料·塑木桌椅
凉、介14 小时前
深入理解 ARMv7-A | Generic Timer
笔记·学习·嵌入式·arm