浅谈强化学习中的函数估计问题 - Function Approximation in RL

下面我们简单讨论下强化学习中的函数估计问题,这里对于强化学习的基本原理、常见算法以及凸优化的数学基础不作讨论。假设你对强化学习(Reinforcement Learning)有最基本的了解。

概述

对于状态空间为连续空间的强化学习问题,我们需要利用函数估计的方法表示各种映射关系。函数估计方法可分为参数估计和非参数估计,其中参数化估计又分为线性参数化估计和非线性参数化估计。本文中我们主要讨论参数化估计。对于基础较薄弱读者,可以参考这篇更基础的文章

价值函数估计

价值函数估计的过程可以看作是一个监督学习的过程,其中数据和标签对为 ( S t , U t ) 。训练的目标函数为:

arg min θ ( q ( s , a ) q ^ ( s , a , θ ) ) or arg min θ ( v ( s ) v ^ ( s , θ ) )

增量式/梯度下降方法

梯度下降的基本原理可以参考凸优化问题中的无约束规划方法。这里我们要求估计偏差最小,因此采用梯度下降方法:

θ t + 1 = θ t + α d t
这里 d t 是偏差下降的方向,此处应为 θ ( U t v ^ ( S t , θ t ) ) 即负梯度方向。代入上式可得:
θ t + 1 = θ t + α [ U t v ^ ( S t , θ t ) ] θ v ^ ( S t , θ )
注意此处 U t θ 无关,但情况并非总是这样。如果采用蒙特卡罗方法对实验进行采样,即 U t = G t 时,上述公式直接成立;但如果采样 T D ( 0 ) 方法采样,由于用到了 bootstrapping,即 U t = R t + 1 + γ v ^ ( S t + 1 , θ ) U t 中也包含 θ 。 使用上式忽略了这个影响,因此被称为 部分梯度(semi-gradient)法。

下面讨论线性估计问题,即 v ^ ( s , θ ) = θ T ϕ ( s ) 。常用的线性基函数类型如下:

  1. 多项式基函数: ( 1 , s 1 , s 2 , s 1 s 2 , s 1 2 , s 2 2 , )
  2. 傅里叶基函数: ϕ i ( s ) = cos ( i π s ) , s [ 0 , 1 ]
  3. 径向基函数: ϕ i ( s ) = exp ( s c i 2 2 σ i 2 )

不同的更新公式如下:

  1. 蒙特卡罗方法: Δ θ = α [ G t θ T ϕ ( s ) ] ϕ ( s )
  2. T D ( 0 ) 方法: Δ θ = α [ R + γ θ T ϕ ( s ) θ T ϕ ( s ) ] ϕ ( s )
  3. 正向视角的 T D ( λ ) 方法: Δ θ = α [ G t λ θ T ϕ ( s ) ] ϕ ( s )
  4. 反向视角的 T D ( λ ) 方法:
    δ t = R t + 1 + γ θ T ϕ ( s ) θ T ϕ ( s ) E t = γ λ E t 1 + ϕ ( s ) Δ θ = α δ t E t

关于这些更新方法的具体含义可以参考这篇文章

批处理方法

批处理方法的计算比较复杂,但是计算效率高。批处理方法是指给定经验数据集 D = { ( s 1 , v 1 π ) , ( s 2 , v 2 π ) , , ( s T , v T π ) } ,找到最好的拟合函数 v ^ ( s , θ ) 使得 L S ( θ ) = t = 1 T ( v t π v ^ t π ( s t , θ ) ) 2 最小(此处为最小二乘)。此处我们不做详细介绍。

深度强化学习浅析(DQN)

这里介绍的 DQN 就是 DeepMind 发表在 Nature 上的一篇论文:

Human-level Control through Deep Reinforcement Learning

DQN 技术是 Q-Learning 算法的一种变体,具体改变的是以下三个方面:

  1. DQN 利用深度卷积神经网络估计值函数;
  2. DQN 利用经验回放进行学习;
  3. DQN 独立设置了目标网络来单独处理时间差分算法中的 TD 偏差。

由于训练神经网络时,存在的假设是训练数据是独立同分布的,而通过强化学习采集的数据之间总是存在着关联性,易造成神经网络不稳定。经验回放技术可以打破数据间的关联。独立的目标网络使用 θ ¯ 而不是 θ 来计算 T D 偏差,这样做也为了打破关联性。DQN的算法伪代码如下:

  1. Initialize replay memory D to capacity N
  2. Initialize Q -function with ramdom weights θ
  3. Initialize target Q -function with weights θ ¯ = θ
  4. For e p i s o d e = 1 , M do
    1. Initalize sequence s 1 = { x 1 } and preprocessed sequence ϕ 1 = ϕ ( s 1 )
    2. For t = 1 , T do
      1. Select action a t , then observe reward r t and image x t + 1
      2. Processed ϕ t + 1 = ϕ ( x t + 1 ) and store transition ( ϕ t , a t , r t , ϕ t + 1 ) in D
      3. Sample minibatch of transitions ( ϕ j , a j , r j , ϕ j + 1 ) from D
      4. Set y j = { r j ,  if episode terminates at step  j + 1 r j + γ max a Q ( ϕ j + 1 , a , θ ¯ ) ,  otherwise
      5. Perform a gradient descent step on ( y j Q ( ϕ j , a j , θ ) ) w.r.t. network parameter θ
      6. Every C steps reset θ ¯ = θ
    3. End for
  5. End for

其中第5行通过预处理得到状态对应的特征输入。

Double DQN

DQN无法克服 Q-Learning 本身固有的过估计问题,原因是其中的最大化操作。Double Q-Learning 将动作的选择和动作的评估分别用不同的值函数来实现,可以缓解此问题。

在 Double Q-Learning 中,

Y t = R t + 1 + γ Q ( S t + 1 , arg max a Q ( S t + 1 , a , θ t ) , θ t )
将该思想运动到 DQN 中,得到 Double DQN,其 T D 目标为:
Y t D Q N = R t + 1 + γ Q ( S t + 1 , arg max a Q ( S t + 1 , a , θ t ) , θ ¯ t )

带有优先回放的Double DQN( Prioritized Replay )

这里仅讨论优先回放思想,不给出具体算法。在DQN中,选取训练集合的方法是均匀采样,然而并非所有数据集的效率一致。某些状态的学习效率远比其他状态高。优先回放的接班思想就是赋予学习效率高的状态以更大的采样权重。

那么如何选择采样权重呢?一个选择是 T D 偏差 δ 。例如:我们设样本 i 处的 T D 偏差为 δ , 则该处的采样概率为

P i = p i α k p k α
其中 p i = | δ i | + ϵ 或者 p i = 1 r a n k ( i ) | r a n k ( i ) | 根据 | δ i | 排序得到。

采用优先回放的概率分布采样时,动作值的估计是一个有偏估计。因为采样分布于动作值函数分布完全不同,为了矫正这个偏差,我们需要乘以一个重要性采样系数 ω i = ( 1 N 1 P i ) β

Dueling DQN

Dueling DQN 从网络结构上改进了 DQN。动作值函数可以被分解为状态值函数和优势函数,即:

Q π ( s , a ) = V π ( s ) + A π ( s , a )
这也是为了消除训练数据的关联性,此处不做具体讨论。

非参数化估计方法

除了参数化方法之外,价值函数估计还有非参数化方法。非参数化函数估计指参数的个数和基底形式并非固定,由样本决定的估计方法。例如基于核函数的方法和基于高斯过程的方法。此处不做细致介绍,有兴趣可以参考如下书籍:

李航. 统计学习方法[M]. 清华大学出版社,2012.
Rasmussen C E, Williams C K I. Gaussian Processes for Machine Learning (Adaptive Computation and Machine Learning)[M]. The MIT Press, 2005.

直接策略搜索

基于价值函数的方法往往适用于有限的状态空间集合。策略搜索是将策略参数化,即 π θ ( s ) ,寻找最优的参数 θ ,使强化学习目标——累计回报的期望最大。这里不介绍过多细节,有兴趣的读者可以参考这篇更具体的文章

无模型的策略搜索

随机策略

REINFORCE

随机策略搜索法最典型的算法是 REINFORCE 这里不给出具体算法,只推导基本原理。

我们用 τ 表示一组状态-行为序列 s 0 , u 0 , , s H , u H ,用符号 R ( τ ) = t = 0 H R ( s t , u t ) 表示轨迹 τ 的回报, P ( τ , θ ) 表示轨迹 τ 出现的概率,此时直接策略搜索的目标可以表示为:

U ( θ ) = τ P ( τ , θ ) R ( τ )
此时强化学习的目标是找到最优参数 θ 使得
max θ U ( θ ) = max θ τ P ( τ , θ ) R ( τ )
此时搜索问题转化为优化问题,下面我们采用 最速下降法求解(这里其实是上升)。
θ t + 1 = θ t + α θ U ( θ )
下面研究如何求 θ U ( θ ) :
θ U ( θ ) = θ τ P ( τ , θ ) R ( τ ) = τ θ P ( τ , θ ) R ( τ ) = τ P ( τ , θ ) θ P ( τ , θ ) P ( τ , θ ) R ( τ ) = τ P ( τ , θ ) θ log P ( τ , θ ) R ( τ )
这样一来求 θ U ( θ ) 变成了估计 θ log P ( τ , θ ) R ( τ ) 的期望。这可以利用经验平均,即利用 m 条轨迹的经验计算平均值来估计:
θ U ( θ ) 1 m i = 1 m θ log P ( τ i , θ ) R ( τ i )
下面再研究如何估计 θ log P ( τ , θ )
θ log P ( τ , θ ) = θ log [ t = 0 H P ( s t + 1 | s t , u t ) π θ ( u t | s t ) ] = θ [ t = 0 H log P ( s t + 1 | s t , u t ) + t = 0 H log π θ ( u t | s t ) ] = θ t = 0 H log π θ ( u t | s t ) = t = 0 H θ log π θ ( u t | s t )
到这一步可以看出,似然概率 P 的梯度变化仅与策略 π θ 有关,与环境本身的动力学模型无关,这个结果被称为 策略梯度定理。因此:
θ U ( θ ) 1 m i = 1 m t = 0 H θ log π θ ( u t ( i ) | s t ( i ) ) R ( τ i ( i ) )
这个估计是无偏的,但是方差很大。我们可以在回报中引入常数基线 b 来减小方差:
θ U ( θ ) 1 m i = 1 m θ log P ( τ ( i ) , θ ) ( R ( τ ( i ) ) b ) = 1 m i = 1 m t = 0 H θ log π θ ( u t ( i ) | s t ( i ) ) ( R ( τ i ( i ) ) b )
两个估计等价,证明很简单,此处从略。

G(PO)MDP

从之前的讨论中可以看出,每个动作 u t ( i ) 所对应的 θ log π θ ( u t ( i ) | s t ( i ) ) 都乘以相同的轨迹总回报 ( R ( τ i ( i ) ) b ) 。然而,当前的动作与过去的回报实际上没有关系。因此,我们可以修改回报函数,有一种方法称为 G(PO)MDP:

θ U ( θ ) 1 m i = 1 m j = 0 H 1 t = 0 j θ log π θ ( u t ( i ) | s t ( i ) ) ( r j b j )

TRPO

策略梯度算法的硬伤就是更新步长 α 的取法问题,当步长不合适时,更新的参数所对应的策略可能是一个更不好的策略。TRPO(Trust Region Policy Optimization)证明解决了此问题,使得当策略更新后,回报函数的值不能更差。TRPO的具体介绍请参考此文

Actor-Critic

异策略(off-policy)是指行动策略和评估测录不是同一个策略。AC框架是一种实现异策略强化学习的典型框架。

关于Actor-Critic 框架的具体讨论请参考此文

确定性策略

2014年,Silver 在论文

Deterministic Policy Gradient Algorithm

中首次提出了确定性策略理论。2015年 DeepMind 将该理论与 DQN 结合,在论文

Continuous Control with Deep Reinforcement Learning

中提到了DDPG算法。

确定性策略的公式如下:

a = μ θ ( s )
和随机策略不同,相同的策略参数,在状态为 s 时,动作是唯一确定的。确定性策略的优点在于 需要采样的数据少,算法效率高。随机策略的梯度计算公式:
θ J ( π θ ) = E s ρ π , a π θ [ θ log π θ ( a | s ) Q π ( s , a ) ]
此式表明,策略梯度公式是关于状态和动作的期望,在求期望时,需要对状态分布和动作分布求积分,这就要求在状态空间和动作空间采集大量的样本,这样求均值才能近似期望。然而,确定性策略的动作是确定的,因此不需要再动作空间采样积分,所以确定性策略需要的样本数据更小。确定性策略梯度如下:
θ J ( μ θ ) = E s ρ μ [ θ μ θ ( s ) a Q μ ( s , a ) | a = μ θ ( s ) ]

DPG 与 DDPG

言归正传,确定性策略动作是确定的,无法探索环境,那么如何学习呢?答案就是利用异策略方法,这里采用AC框架。AC算法包含两个同等地位的元素,一个是 Actor 即行动策略,另一个是 Critic 即评估策略,这里指的是利用函数逼近的方法估计值函数。Actor 方法用来调整 θ 值;Critic 方法逼近值函数 Q ω ( s , a ) Q π ( s , a ) ,其中 ω 为待逼近的参数,可用 TD 学习的方法评估值函数。

异策略随机策略梯度为

θ J ( π θ ) = E s ρ π , a π θ [ π θ ( a | s ) β θ ( a | s ) θ log π θ ( a | s ) Q π ( s , a ) ]
采样策略为 β
异策略确定性策略梯度为:
θ J β ( μ θ ) = E s ρ β [ θ μ θ ( s ) a Q μ ( s , a ) | a = μ θ ( s ) ]
对比上述两式不难发现,确定性策略梯度求解少了重要性权重。这是因为重要性采样是用简单的概率分布去估计复杂的概率分布,而确定性策略的动作为确定值而不是概率分布;此外,确定性策略的值函数评估用的是 Q-Learning 方法,即 TD(0)。有了上式,确定性异策略AC算法的更新过程如下:
δ t = r t + γ Q ω ( s t + 1 , μ θ ( s t + 1 ) ) Q ω ( s t , a t ) ω t + 1 = ω t + α ω δ t ω Q ω ( s t , a t ) θ t + 1 = θ t + α θ θ μ θ ( s t ) a Q ω ( s t , a t ) | a = μ θ ( s )
以上介绍的是 Deterministic Policy Gradient 方法,简称 DPG。

有了 DPG,我们再看 DDPG,即Deep Determinstic Policy Gradient。这里所谓的深度是指利用神经网络估计行为值函数 Q ω ( s t , a t ) 和确定策略 μ θ ( s ) 。如前介绍DQN时所说,这里用了两个技巧:经验回放和独立的目标网络。此处不再重复。这里需要修改的是对 ω θ 利用独立的网络进行更新。DDPG的更新公式为:

δ t = r t + γ Q ω ( s t + 1 , μ θ ( s t + 1 ) ) Q ω ( s t , a t ) ω t + 1 = ω t + α ω δ t ω Q ω ( s t , a t ) θ t + 1 = θ t + α θ θ μ θ ( s t ) a Q ω ( s t , a t ) | a = μ θ ( s ) θ = τ θ + ( 1 τ ) θ ω = τ ω + ( 1 τ ) ω

基于模型的策略搜索

无模型强化学习算法有很多优点,比如无需环境建模。但是因为没有模型,无模型方法必须不断试探环境,效率低下。解决该问题的方法是利用模型探索。例如有了模型之后,可以利用基于模型的优化方法得到好的数据,并稳定训练策略网络;而且,有了模型我们可以充分利用示教(Demonstration)数据学习。

GPS

引导策略搜索方法(Guided Policy Search)最早见于2015年 Sergey Levine 的博士论文

Levine S, “Motor skill learning with local trajectory methods,” PhD thesis, Stanford University, 2014.

GPS将策略搜索分为两步:控制相监督相。控制相通过轨迹最优、传统控制器或随机最优等方法产生好的数据;监督相利用产生的数据进行监督学习。

关于GPS的具体讨论详见此文

PILCO

基于模型的强化学习方法最大的问题是模型误差。针对此类问题,业界提出了 PILCO (Probabilistic Inference for Learning Control)算法。它把模型误差纳入考虑的范围。

关于PILCO的具体实现方法详见此文

猜你喜欢

转载自blog.csdn.net/philthinker/article/details/79508599