Lecture 6: Value Function Approx

2019-12-17  本文已影响0人  六回彬

一、Introduction

(一)Large-Scale Reinforcement Learning

强化学习可用于解决较大的问题,例如:

(二)Value Function Approximation

(三)Types of Value Function Approximation

针对强化学习,近似函数根据输入和输出的不同,可以有以下三种架构:


(四)Which Function Approximator?

有许多函数逼近器,例如

我们考虑可微函数逼近器,例如

所有和机器学习相关的一些算法都可以应用到强化学习中来,其中线性回归和神经网络在强化学习里应用得比较广泛,主要是考虑这两类方法是一个针对状态可导的近似函数。

强化学习应用的场景其数据通常是非静态、非独立均匀分布的,因为一个状态数据是可能是持续流入的,而且下一个状态通常与前一个状态是高度相关的。因此,我们需要一个适用于非静态、非独立均匀分布的数据的训练方法来得到近似函数。

下面分别从递增方法和批方法两个角度来讲解价值函数的近似方法,其主要思想都是梯度下降,与机器学习中的随机梯度下降和批梯度下降相对应。

二、Incremental Methods

(一)Gradient Descent

\alpha是一个步长参数,机器学习里称为学习速率参数

用随机梯度下降来近似价值函数

(二)Linear Function Approximation

Feature Vectors

Linear Value Function Approximation

Update = step-size\times prediction error\times feature value

Table Lookup Features

(三)增量预测算法

1、Monte-Carlo with Value Function Approximation

  1. 蒙特卡洛算法并不能穷尽搜索所有的状态。由于它需要到episode结束才能进行计算,效率并不算高,样本不够多。
  2. G_t并不算是一个目标(target)

3、TD Learning with Value Function Approximation

  1. 一方面是TD每一个时间步就可以进行更新,可取得的样本更多
  2. TD target 是一个目标,每次更新都朝着目标前进,更容易收敛。

4、TD(\lambda) with Value Function Approximation

5、 Control with Value Function Approximation

把近似函数引入到控制过程中,我们需要能够近似状态行为对的价值函数近似而不是仅针对状态的价值函数近似。
如图所示:



从一系列参数开始,得到一个近似的状态行为对价值函数,在Ɛ-greedy执行策略下产生一个行为,执行该行为得到一个即时奖励,以此数据计算目标值,进行近似函数参数的更新。再应用这个策略得到后续的状态和对应的目标值,每经历一次状态就更新依次参数,如此反复进行策略的优化,同时逼近最优价值函数。

策略评估:是一个近似策略评估 \widehat q (\cdot ,\cdot,w) \approx q_\pi,特别是早期误差会较大,而且这种近似无法最终收敛于最优策略对应的行为价值函数,只能在其周围震荡,后文将讲述改进方法。

策略改进:Ɛ-greedy策略进行改进

6、Action-Value Function Approximation

7、Linear Action-Value Function Approximation

8、Incremental Control Algorithms

(四)Mountain Car

1、山区汽车中带有粗编码的线性Sarsa


小车爬山是一个经典的强化学习示例。环境如图左上角所示,小车被困于山谷,单靠小车自身的动力是不足以在谷底由静止一次性冲上右侧目标位置的,比较现时的策略是,当小车加速上升到一定位置时,让小车回落,同时反向加速,使其加速冲向谷底,借助势能向动能的转化冲上目标位置。现在问题是在模型位置的情况下,如何用强化学习的方法找到小车冲上目标位置的最优策略。

状态空间是小车的位置和速度,其它几张三维图展示的是经过不同步数(上中图)以及不同Episode(其余几张三维图)的学习,小车位于某个位置同时具有某个速度的状态价值。

最初的动作是0,这是乐观的(注意,这个任务中所有的真实价值都是负数),这使得即使试探参数\epsilon为0,也会引起广泛的试探。这可以从图的中间顶部为“step 428”的图中可以看到。尽管这时候一个episode都没完成,但是车子在山谷里沿着状态空间的弧形轨迹来回摆动。所有经常访问的状态的价值函数都比未试探到的状态低,这是因为实际的收益比(不切实际的)预期的要差。这会不断驱使智能体离开其所在的地点,去探索新的状态,直到找到最优解决方案。

最后小车使用SARSA学习到了接近最优策略的价值函数,如下图:


2、Study of \lambda Should We Bootstrap?

下图显示了几种不同的任务,使用不同λ进行的强化学习算法分析结果。总的来说λ=1的时候通常算法表现是很差的,TD(0)是比MC好得多的方法,这说明了Bootstrap的重要性;不同的任务对应的最优λ值是不太容易确定的。


五、Convergence(收敛)

1、预测算法的收敛性

MC使用的是实际价值的有噪声无偏估计,虽然很多时候表现很差,但总能收敛至局部或全局最优解。TD性能通常更加优秀,是否意味着TD也是一直收敛的呢?答案是否定的。David给出了一个TD学习不收敛的例子,这里不再详述,这里给出各种算法在使用不同近似函数进行预测学习时是否收敛的小结。



注:打钩表示能收敛,打叉表示不收敛。

从表中可以看出,没有函数近似时,各种算法都收敛;
线性函数近似时现时策略学习可以收敛,但离线策略时仅有MC收敛;
非线性函数近似时无论采用现时策略还是离线策略只有MC收敛。而MC算法在实际中是很少使用的。这给强化学习的实际应用带来的挑战。好在我们有一些改善TD算法的办法。

2、Gradient Temporal-Difference Learning

3、Convergence of Control Algorithms

针对控制学习的算法,其收敛性比较如下图:



(对勾)代表在最佳值函数附近震荡

针对控制学习算法,大多数都能得到较好的策略,但是理论上只要存在函数近似,就都不是严格收敛的,比较常见的是在最优策略上下震荡,逐渐逼近然后突然来一次发散,再逐渐逼近等。使用非线性函数近似的效果要比近似函数要差很多,实际也是如此。

三、Batch Methods

(一)Batch Reinforcement Learning

前面所说的递增算法都是基于数据流的,经历一步,更新算法后,我们就不再使用这步的数据了,这种算法简单,但有时候不够高效。与之相反,批方法则是把一段时期内的数据集中起来,通过学习来使得参数能较好地符合这段时期内所有的数据。这里的训练数据集“块”相当于个体的一段经验。

(二)最小平方差预测

1、Stochastic Gradient Descent with Experience Replay

给出包含<state,value>对的经验:



Repeat:

  1. Sample state, value from experience


  2. Apply stochastic gradient descent update



    这将收敛至针对这段经历最小平方差的参数:


2、Experience Replay in Deep Q-Networks (DQN)

DQN使用experience replay和fixed Q-targets(再建立第二个神经网络,我们实际上是在用两套神经网络运行的,因此也就是两套完全不同的参数向量,我们一般会冻结老的神经网络,试图存储下所有看过的信息,之后我们就会用目标对冻结的目标一个引导辅助程序,我们并不是对新设立的目标做辅助引导程序,这样就能使得程序更加稳定。仅从字面意思上来看的话,我们对老的神经网络的几千条信息进行升级处理,逐步替换就能够形成新的神经网络。我们永远不会直接对目前的新目标进行辅助引导,因为那是不稳定的。在你设立的目标和你的实际价值之间是有一定联系的,这使得你的神经网络不受控制。)

首先,随机采样打破了状态之间的联系;第二个神经网络会暂时冻结参数,我们从冻结参数的网络而不是从正在更新参数的网络中获取目标值,这样增加了算法的稳定性。经过一次批计算后,把冻结参数的网络换成更新的参数再次冻结产生新一次迭代时要用的目标值。

3、DQN in Atari

这里举了一个应用DQN玩Atari类游戏的例子,算法直接对屏幕进行拍照,将最近4帧的屏幕图像送入一个卷积神经网络,最终输出针对游戏手柄的18个按钮精细方位的Q(s,a)值算法直接获取游戏屏幕的图像信息,对应的近似函数类型好像是第三类,奖励信息根据当时屏幕显示的分数确定。这种设计在50中Atari类游戏中测试,表现很好。

DQN Results in Atari

4、 How much does DQN help?

用了一张表比较了在DQN中有没有应用固定参数、以及有没有使用经历重现(批方法)两个条件时在5款游戏中的表现,结果体现了这两个条件联合应用的优势:


5、Linear Least Squares Prediction

通过比较发现使用批方法能够找到最小平方差的解决方案,提高算法的稳定性,但是它需要多次迭代。我们可以设计一个价值函数的线性近似函数:


然后直接求解参数。求解思路是逆向思维,假设已经找到这个参数,那么他应该满足最小LS(w),通过把LS展开,可以直接得到w:

这种方法直接求解的时间复杂度是
使用Shermann-Morrison法求解复杂度是
n是特征数量,这意味着求解该问题的难度与设计的特征数量多少有关,而与状态空间大小无关,因此适合应用与那些特征较少的问题。

6、Linear Least Squares Prediction Algorithms

7、Convergence of Linear Least Squares Prediction Algorithms

8、Least Squares Policy Iteration


策略评估使用 最小平方差Q学习
策略改善使用:Greedy 搜索策略

9、Least Squares Action-Value Function Approximation

10、Least Squares Control

11、Least Squares Q-Learning

考虑以下线性Q学习更新


12、LSTDQ algorithm: solve for total update = zero

13、Least Squares Policy Iteration Algorithm

14、Convergence of Control Algorithms

上一篇下一篇

猜你喜欢

热点阅读