深度强化学习 CS285 le1-le4学习感悟

一、强化学习初认识

1.1 RL基本元素


  1. 强化学习RL的元素:状态S(state)、动作A(action)、策略(policy)、模型T(model/dynamics/transission)、价值函数(Value)、动作值函数(Q-Value)、奖励信号r(reward)、折扣因子 γ \gamma γ(discount factor)
    M D P = ( S , A , T , γ , r ) MDP = (S,A,T,\gamma,r) MDP=(S,A,T,γ,r)
  2. RL在机械臂上的输入-输出控制流程如下图
    机械臂控制流程
  3. RL的学习方式
    • 监督学习(SL):模型输入一次data,计算一次模型输出的值logits,通过损失函数loss产生监督信息,再反向传播到模型中。将loss看作reward的话,监督学习就是没有delayed reward,立刻将监督信息调整反馈到模型中的强化学习特例。
    • 强化学习(RL):模型输入一次data(state),计算一次模型输出的值action,观察环境(environment)反馈的reward(类似于监督信息)以及下一状态s’,从而依据下一状态再做出决策,是一个时间序列决策(sequential decision making)问题。
    • 两者的关键区别是RL的监督信息是delayed的,SL的监督信息是immediate的。RL中的一个样本一般是这样的 τ i = ( s 1 , a 1 , r 1 , s 2 , a 2 , r 2 , . . . , s T , a T , r T ) \tau_i=(s_1,a_1,r_1,s_2,a_2,r_2,...,s_T,a_T,r_T) τi=(s1,a1,r1,s2,a2,r2,...,sT,aT,rT)其中 r 1 , r 2 , . . . , r T − 1 r_1,r_2,...,r_{T-1} r1,r2,...,rT1都可能为0,只有到最后一刻达成目标与否,才知道reward,这样称为delayed reward,如何分配这个delayed reward到(state,action)上也是十分重要的。
  4. RL的目标与目的
    • 优化目标: arg max ⁡ θ E τ ∼ p θ ( τ ) ∑ t = 1 T r ( s t , a t ) \argmax_{\theta}{E_{\tau \sim p_{\theta}(\tau)}\sum_{t=1}^{T}r(s_t,a_t)} θargmaxEτpθ(τ)t=1Tr(st,at)
    • 目的:通过学习方式,得到一个policy,即 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as),输入某个状态s,输出一个动作a,使得优化目标最大化,其中r和下一状态s’来自环境的反馈。

1.2 RL监督信息的来源


  • 模仿的学习方式(imitation learning)
    • 从专家示教中学习(Learning from demonstration)
      • 通过SL来克隆label过的专家行为(behavior cloning)
      • 通过IRL从demonstration中推断专家行为背后的reward function(IRL)
  • 观察环境的学习方式 (Learning from observing the world)
    • 从环境中无意识地获取数据中的结构信息
      • 无监督学习发掘环境中的结构信息(Unsupervised Learning)
      • 根据结构信息对环境的动态变化进行某种预测(Learning to predict)
  • 借鉴经验的学习方式 (Learning from other tasks)
    • 迁移其它任务的经验到本任务中来 (transfer learning)
    • 从其它任务的经验中习得学习方法,再利用该学习方法对本任务进行学习 (meta learning = learning to learn)

由此可见,监督信息的主要来源是模仿的学习方式(imitation learning),辅助来源有如婴儿般观察环境的学习方式如举一反三般借鉴经验的学习方式。一个婴儿是如何学习到成人的,先是观察环境,然后模仿,积累一些经验后,可以借鉴、迁移并推理。
那在RL中,是否有模块对应着想象力(imagination)、好奇心(curiosity)、创造力(creativity)呢?
(肯定是有的啦,只是它具体是什么,得后续再深入)
目前为止,延迟奖励delayed reward以及如何分配delayed reward到决策上是RL中的一个关键问题,也称为credit assignment problem,而另一个问题则是探索与利用(Exploration and Exploitation)。于人而言,去探索一个新的领域,还是呆在自己熟悉的领域继续使用自己已习得的专业技能,也是一个进退两难的选择啊!

1.3 RL面临的一些挑战


  • 人学习的速度很快,无论是模仿还是借鉴,但deep RL却很慢?
  • 借鉴的学习方式在deep RL中是一个open problem,经验该如何借鉴才能学起来更快速有效呢?
  • 每个人的行为action动机背后的奖赏函数都不太一样,所以很明显reward function是可变的,那该如何表示单任务或多任务中的reward function呢?
  • 观察环境,根据环境的结构信息进行某种预测(prediction),从而辅助决策,那prediction究竟是什么?如何表示?作用显著吗?

Alan Turing :Instead of trying to produce a program to simulate the adult mind, why not rather try to produce one which simulates the child’s? If this were then subjected to an appropriate course of education one would obtain the adult brain.

二、模仿学习/示教学习 (Imitation Learning)

2.1 行为克隆 (Behavioral Cloning)


模仿是监督信息的主要来源,behavioral cloning直接从专家示教数据中学习,进行mapping,不加思考,得到一个policy,即 π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as)。优缺点与监督学习方式雷同,对data要求很高。

  • 优点:只要数据够全够多,包含各种情况,policy的学习质量就有保证。
  • 缺点:容易出现数据漂移(distributional drift)现象,一般情况下,数据都不够多不够全,对没见过的data,behavioral cloning会出现极端情况。(当然还有缺乏因果推理等等,主要还是捕捉data空间与label空间之间的相关性,而非因果性)

2.2 问题背景


IL图
p ( s t + 1 ∣ s t , a t ) p(s_{t+1}|s_t,a_t) p(st+1st,at),即环境的dynamics\transission,转移到下一状态的概率。
目的是得到一个学习好的 π θ ( a t ∣ s t ) \pi_\theta(a_t|s_t) πθ(atst),直接从专家数据 τ = { τ 1 , τ 2 , . . . , τ N } \tau= \{\tau_1,\tau_2,...,\tau_N\} τ={τ1,τ2,...,τN}中学习 s : → a s :\rightarrow a s:a的空间映射方式,其中 τ i = { s 1 i , a 1 i , s 2 i , a 2 i , . . . , s T i , a T i } \tau_i=\{s_1^i,a_1^i,s_2^i,a_2^i,...,s_T^i,a_T^i\} τi={s1i,a1i,s2i,a2i,...,sTi,aTi},监督信息如下所示,可通过选择不同的cost function进行反向传播,实际上常见的cost function可以看作是immediate的reward function。
θ ∗ = arg min ⁡ θ E s 1 : T , a 1 : T [ ∑ t c ( s t , a t ) ] \theta^*=\argmin_\theta E_{s_{1:T},a_{1:T}}\Big[\sum_tc(s_t,a_t)\Big] θ=θargminEs1:T,a1:T[tc(st,at)]

2.3 IL有监督方法

2.3.1 DAgger


为了解决distributional drift的问题,2011年提出了一种数据增强的方法DAgger(Dataset Aggregation)
DAgger算法流程
最麻烦就是第三步了,要人工标记,何况有些情况下如机械臂关节角度还难以人工进行。其次,每次收集完新的数据,还需要重新训练一个policy。尽管如此,在可用的前提下,DAgger是最简单有效提升policy性能的方法。
假设最重要的数据足够好,其次便是policy这个模型的问题,如何使模型能准确捕捉专家数据的同时不过拟合(overfit)?
关于Imitation Learning中DAgger的理论分析可参见
A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning

2.3.2 Goal-Conditioned Behavioral Cloning


对于单一任务的目标,如机械臂抓取一个物体,该目标似乎过大了,可能需要探索很久才有一个正常的reward,那不妨将一个大目标goal分解成多个小目标goal,使得agent获取reward更快,即
π θ ( a ∣ s ) → π θ ( a ∣ s , g ) \pi_\theta(a|s) \rightarrow \pi_\theta(a|s,g) πθ(as)πθ(as,g)
当然goal也可以是多任务的目标,基于goal state来捕捉多任务目标之间共同的policy参数结构。
goal-conditioned的改变
大致流程:

  • 收集数据 (collect data)
  • 训练基于特定目标的的policy (Train goal conditioned policy)
  • 达成这些目标 (Reach goals)

那么goal是如何选择的?goal conditioned policy怎么train?具体可参考下面两篇19年的论文
Unsupervised Visuomotor Control through Distributional Planning Networks
Learning Latent Plans from Play

2.3.3 数据拟合失败时,怎么做?


什么情况下拟合专家数据会失败?

  • 非马尔可夫的情况下(Non-Markovian Behavior)
    π θ ( a t ∣ s t ) → π θ ( a ∣ s 1 , s 2 , . . s t ) \pi_\theta(a_t|s_t) \rightarrow \pi_\theta(a|s_1,s_2,..s_t) πθ(atst)πθ(as1,s2,..st)
    解决方案:可使用RNN或LSTM来使用历史状态信息,辅助decision making
  • 多模态的行为 (Multi-modal Behavior)
    一个任务的目标行为可能涉及多个模态的维度,如何控制好小车的无人驾驶,这个action的维度就涉及到视觉的、传感器的、机械结构等等。如A=(视觉维度的连续视频帧,方向盘角度的连续,)
    解决方案:
    • 混合高斯模型 (Gaussian Mixture Model)
      π ( a ∣ s ) = ∑ i w i N ( u i , σ i ) \pi(a|s)=\sum_iw_i N(u_i,\sigma_i) π(as)=iwiN(ui,σi)混合高斯模型
    • 隐变量模型 (latent variable model)
      隐变量模型
    • 自回归离散化(Autoregressive discretization)
      自回归离散模型
  • 因果性与相关性混淆 (Causal Confusion)
    监督学习的方式,更多是一种数据空间与标记空间相关性的度量,于是直接从专家示教数据中习得映射的方式,就是相关性的体现,而序列决策问题,往往更为看重因果性,即为什么要做出这个决策?该决策的依据是什么?从而催生了接下来强化学习的基本介绍及其算法概括。

三、强化学习基本介绍

3.1 问题背景

在这里插入图片描述
输入当前状态 s s s,输出动作决策 a a a,通过环境dynamics,由环境model返回下一状态 s ′ s' s和奖励信号 r r r,从而通过序列决策达到目标。于是一个样本,也叫一个轨迹(trajectory),如下表示:
τ = ( s 1 , a 1 , s 2 , a 2 , . . . , s T , a T ) \tau=(s_1,a_1,s_2,a_2,...,s_T,a_T) τ=(s1,a1,s2,a2,...,sT,aT),每个 ( s t , a t ) (s_t,a_t) (st,at)都由环境model返回下一状态 s t + 1 s_{t+1} st+1和奖励 r ( s t , a t ) r(s_t,a_t) r(st,at)
p θ ( τ ) = p ( s 1 ) ∏ t = 1 T π θ ( a t ∣ s t ) p ( s t + 1 ∣ s t , a t ) p_\theta(\tau)=p(s_1)\prod_{t=1}^{T}\pi_\theta(a_t|s_t)p(s_{t+1}|s_t,a_t) pθ(τ)=p(s1)t=1Tπθ(atst)p(st+1st,at)
样本轨迹图
上述公式,便是对上图动态特性的表示。即一个样本或一条轨迹,其发生的概率=初始状态的概率 × \times ×policy做出action的概率 × \times ×环境动态特性到下一状态的概率,所以一条轨迹可以看作是一个轨迹分布中的一个点。于是,RL的目标为,得到一个最优policy的参数 θ ∗ \theta^* θ,使得所有轨迹上的累积奖励函数的期望最大化。
θ ∗ = arg max ⁡ θ E τ ∼ p θ ( τ ) [ ∑ t = 1 T r ( s t , a t ) ] \theta^*=\argmax_\theta E_{\tau \sim p_\theta(\tau)} \Big[\sum_{t=1}^T r(s_t,a_t)\Big] θ=θargmaxEτpθ(τ)[t=1Tr(st,at)]
特别注意的是, r ( s t , a t ) r(s_t,a_t) r(st,at)是一个随机变量,在不同轨迹中,尽管出现相同的 ( s t , a t ) (s_t,a_t) (st,at)当其奖励是不同的,就如不同的人经历相同的人生阶段 s t s_t st,做出同样的决策 a t a_t at,但由于决策连贯性的问题(处于不同轨迹),最终奖赏是不一样的,因此需要期望来进行合理估计(当然为什么一定要期望呢?可以选点别的嘛)。

  • 有限长的轨迹 ( T ≠ ∞ ) (T \neq \infty) (T=)
    θ ∗ = arg max ⁡ θ ∑ t = 1 T E ( s t , a t ) ∼ p θ ( s t , a t ) r ( s t , a t ) \theta^*=\argmax_{\theta} \sum_{t=1}^T E_{(s_t,a_t) \sim p_\theta(s_t,a_t)}r(s_t,a_t) θ=θargmaxt=1TE(st,at)pθ(st,at)r(st,at)
    本来是一个轨迹分布,变成状态-动作对(state-action)的分布空间,把轨迹空间本有的连贯性打破,变成纯粹统计意义上的状态-动作(state-action)联合分布空间。
  • 无限长的轨迹 ( T = ∞ ) (T = \infty) (T=)
    θ ∗ = arg max ⁡ θ 1 T ∑ t = 1 T E ( s t , a t ) ∼ p θ ( s t , a t ) r ( s t , a t ) = arg max ⁡ θ E ( s , a ) ∼ p θ ( s , a ) r ( s , a ) ( T → ∞ ) \begin{aligned} \theta^* &= \argmax_{\theta}\frac{1}{T} \sum_{t=1}^T E_{(s_t,a_t) \sim p_\theta(s_t,a_t)}r(s_t,a_t) \\ &= \argmax_\theta E_{(\bold s,\bold a)\sim p_\theta( \bold s,\bold a)}r(\bold s,\bold a)\quad (T\rightarrow \infty) \end{aligned} θ=θargmaxT1t=1TE(st,at)pθ(st,at)r(st,at)=θargmaxE(s,a)pθ(s,a)r(s,a)(T)

3.2 RL算法分类

3.2.1 RL算法基本结构


RL算法基本结构
RL算法主要分为三大步:

  • 产生样本(sample generation)
    1. 第一种产生样本的方式,跑当前的policy, π θ ( a ∣ s ) \pi_\theta(a|s) πθ(as)与环境进行交互(interaction)收集样本 τ i = { s 1 i , a 1 i , r 1 i , . . . , s T i , a T i , r T i } \tau_i=\{s_1^i,a_1^i,r_1^i,...,s_T^i,a_T^i,r_T^i\} τi={s1i,a1i,r1i,...,sTi,aTi,rTi}
    2. 第二种产生样本的方式,利用拟合好的环境模型 p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s,rs,a)来产生样本
  • 估计值函数/拟合环境模型 (Estimate the return/Fit a model)
    1. 利用 ( s t , a t , r t , s t + 1 ) (s_t,a_t,r_t,s_{t+1}) (st,at,rt,st+1)来训练transition model,拟合环境dynamics
    2. 利用收集的样本,以某种方式来估计State Value 或者 Q-Value
  • 策略优化 (Policy Improvement)
    1. 从更新后的Q-value中直接得到优化的策略 π θ ′ ( a ∣ s ) \pi_{\theta'}(a|s) πθ(as)
    2. 通过梯度更新,来优化策略的参数 θ ← θ ′ \theta \leftarrow \theta' θθ,使RL的objective往好的方向迭代。

3.2.2 引入值函数后的RL目标


Q π ( s t , a t ) = ∑ t ′ = t T E π θ [ r ( s t ′ , a t ′ ) ∣ s t , a t ] Q^\pi(s_t,a_t)=\sum_{t'=t}^{T}E_{\pi_\theta}\Big[r(s_{t'},a_{t'})|s_t,a_t\Big] Qπ(st,at)=t=tTEπθ[r(st,at)st,at]
由Q-Value的定义,可知其表示,在当前策略 π \pi π,状态 s t s_t st下,采取动作 a t a_t at后的总期望reward(这个期望,正是因为reward是一个随机变量哦
V π ( s ) = ∑ t ′ = t T E π θ [ r ( s t ′ , a t ′ ) ∣ s t ] = E a t ∼ π θ ( a t ∣ s t ) [ Q π ( s t , a t ) ] \begin{aligned} V^\pi(s)&=\sum_{t'=t}^TE_{\pi_\theta}\Big[r(s_{t'},a_{t'})|s_t\Big]\\ &=E_{a_t\sim \pi_\theta(a_t|s_t)}\Big[Q^\pi(s_t,a_t)\Big] \end{aligned} Vπ(s)=t=tTEπθ[r(st,at)st]=Eatπθ(atst)[Qπ(st,at)]
由Value的定义,可知其表示,在当前策略 π \pi π,状态 s t s_t st下的总期望reward,是Q-Value关于动作a的期望

E τ ∼ p θ ( τ ) [ ∑ t = 1 T r ( s t , a t ) ] = E s 1 ∼ p ( s 1 ) [ E a 1 ∼ π θ ( a 1 ∣ s 1 ) [ Q ( s 1 , a 1 ∣ s 1 ) ] ] = E s 1 ∼ p ( s 1 ) [ V π ( s 1 ) ] E_{\tau \sim p_\theta(\tau)}\Big[\sum_{t=1}^Tr(s_t,a_t)\Big]=E_{s_1\sim p(s_1)}\Big[E_{a_1\sim \pi_\theta(a_1|s_1)}[Q(s_1,a_1|s_1)]\Big]=E_{s_1\sim p(s_1)}\Big[V^\pi(s_1)\Big] Eτpθ(τ)[t=1Tr(st,at)]=Es1p(s1)[Ea1πθ(a1s1)[Q(s1,a1s1)]]=Es1p(s1)[Vπ(s1)]
RL obejective就可以用Q-Value与Value的形式表示。
实际上,Value与Q-Value的出现,一是为了简化累积reward的表达方式,二是对state或state-action进行价值判断,根据其价值高低,选择合适的动作来当最优决策,以此得到policy。
那如何使用Value与Q-Value来得到policy或improve policy呢?

  1. π ′ ( a ∣ s ) = 1 i f a = arg max ⁡ a Q π ( s , a ) \pi'(a|s)=1\quad if \quad a=\argmax_aQ^\pi(s,a) π(as)=1ifa=aargmaxQπ(s,a)
  2. 调整 π ( a ∣ s ) \pi(a|s) π(as)使用 a a a的概率升高 i f Q π ( s , a ) > V π ( s ) if \quad Q^\pi(s,a)>V^\pi(s) ifQπ(s,a)>Vπ(s)

3.2.3 策略梯度 (Policy Gradients)

在这里插入图片描述
直接对RL objective求微分更新,列举一些重要算法:

  • REINFORCE
  • Natural Policy Gradient
  • Trust Region Policy Gradient
  • Proximal Policy Optimization

3.2.4 基于值函数 (Value-based RL Algorithms)

在这里插入图片描述
估计最优策略(optimal policy)的Value Function或者Q-Function,列举一些重要算法:

  • Q-learning like DQN,double-DQN,Dueline-double DQN.
  • Temporal Difference Learning
  • Fitted Value Iteration

3.2.5 执行者-评估者(Actor-Critic)

在这里插入图片描述
估计当前策略(current policy)的Value Function或者Q-Function,然后使用其来improve policy,列举一些重要算法:

  • A3C
  • Soft Actor-Critic

3.2.6 基于模型的RL算法 (Model-based Algorithms)

在这里插入图片描述
拟合一个关于环境dynamics的transition model,即 p ( s ′ ∣ s , a ) p(s'|s,a) p(ss,a)或者 p ( s ′ , r ∣ s , a ) p(s',r|s,a) p(s,rs,a),利用该model来improve policy等,列举一些重要算法:

  • Dyna
  • Guided Policy Search
  • Use for planning
    • MCTS
    • Trajectory Optimization

3.3 RL算法考量

  • 样本利用效率(Sample Efficiency)
    在这里插入图片描述
  • 算法稳定性与易用性(Stability and ease of use)
    1. 算法收敛吗?如果收敛,收敛到哪个点?
    2. 该算法每次都收敛吗?会不会换个随机种子就不收敛了?(呜呜呜
  • 该算法是on-policy还是off-policy的?还是两者都可以?
  • 算法的参数
    1. 算法适用的state 与 action 是连续(continuous)还是离散的discrete?
    2. 算法的轨迹(trajectory)是有限长(Episodic)还是无限长的(infinite horizon)?
    3. 算法得到的策略policy是确定的(deterministic)还是随机的(stochastic)?
  • 实际问题的考量
    1. 实际问题中,policy表示起来容易吗?方便吗?
    2. 实际问题中,transition model表示起来容易吗?方便吗?

参考资料

CS285

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值