强化学习简介

1. Review: Markov decision process

(折扣)马尔可夫决策过程: M = ( S , A , P , R , γ ) M=(S,A,P,R,\gamma) M=(S,A,P,R,γ)。其中 S S S是状态集合。 A A A是动作集合。 P P P S × A × S → [ 0 , 1 ] S\times A\times S\to [0,1] S×A×S[0,1]的映射,表示转移概率分布 P ( s ′ ∣ s , a ) P(s'|s,a) P(ss,a) R R R S → R S\to\mathbb{R} SR的奖励函数, R ( s ) R(s) R(s)表示状态 s s s处的奖励。 γ \gamma γ是折扣因子。

RL的转折:我们不知道 P P P R R R,或者它们太大而无法枚举(仅具有在MDP中行动,观察状态和动作的能力)。

1.1 Some important quantities in MDPs

确定性策略 π : S → A \pi: S\to A π:SA是从状态到动作的映射。

随机性策略 π : S × A → [ 0 , 1 ] \pi: S\times A\to [0,1] π:S×A[0,1]是每个状态的动作分布。

策略 π \pi π的价值,是如果从某状态开始并遵循策略 π \pi π(通过Bellman等式表示)获得的期望折扣奖励:
V π ( s ) = R ( s ) + γ ∑ s ∈ S P ( s ′ ∣ s , π ( s ) ) V π ( s ′ ) V^\pi(s)=R(s)+\gamma \sum_{s\in S}P(s'|s,\pi(s))V^\pi(s') Vπ(s)=R(s)+γsSP(ss,π(s))Vπ(s)

最优值函数(最优策略 π ∗ \pi^* π的值函数,具有最高价值的策略):

V ∗ ( s ) = R ( s ) + γ max ⁡ a ∈ A ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) V^*(s)=R(s)+\gamma \max_{a\in A}\sum_{s'\in S}P(s'|s,a)V^*(s') V(s)=R(s)+γaAmaxsSP(ss,a)V(s)

1.2 “Solving” an MDP

策略评估:要找到策略 π \pi π的值,请从任何 V ^ π ( s ) \hat{V}^\pi(s) V^π(s)开始并重复以下步骤:

∀ s ∈ S : V ^ π ( s ) : = R ( s ) + γ ∑ s ∈ S P ( s ′ ∣ s , π ( s ) V ^ π ( s ′ ) \forall s\in S: \hat{V}^\pi(s):=R(s)+\gamma\sum_{s\in S}P(s'|s,\pi(s)\hat{V}^\pi(s') sS:V^π(s):=R(s)+γsSP(ss,π(s)V^π(s)

(或者,可以求解上述线性方程直接确定 V π V^\pi Vπ

值迭代:要找到最优值函数,请从任何 V ^ ∗ ( s ) \hat{V}^*(s) V^(s)开始并重复:

∀ s ∈ S : V ^ ∗ ( s ) : = R ( s ) + γ max ⁡ a ∈ A ∑ s ∈ S P ( s ′ ∣ s , a ) V ^ ∗ ( s ′ ) \forall s\in S: \hat{V}^*(s):=R(s)+\gamma\max_{a\in A}\sum_{s\in S}P(s'|s,a)\hat{V}^*(s') sS:V^(s):=R(s)+γaAmaxsSP(ss,a)V^(s)

但是,当 P P P R R R未知时,我们如何计算这些量?

2. Overview of RL

在这里插入图片描述
重要说明:“强化学习”一词也已被理解为实质上是“涉及机器学习某些要素的任何类型的序列决策问题”,包括与上述不同的许多领域(模仿学习,学习控制,逆RL等),但我们将重点关注上述概述。

2.1 Important note regarding domain size

就本讲义而言(上一节除外),我们将假设一个离散状态/离散动作设置,在此我们可以枚举所有状态。

讲义的最后一部分,我们将讨论大型/连续状态和动作空间的情况。

思考:网格世界( grid-world),而不是Atari。

在这里插入图片描述

3. Model-based RL

一种简单的方法:如果我们不知道MDP,只需根据数据进行估算。agent在世界中行动(根据某些策略),并观察状态,动作,奖励序列:

s 1 , r 1 , a 1 , s 2 , r 2 , a 2 , . . . , s m , r m , a m s_1,r_1,a_1,s_2,r_2,a_2,...,s_m,r_m,a_m s1,r1,a1,s2,r2,a2,...,sm,rm,am

通过计数形成MDP的经验估计:

P ^ ( s ′ ∣ s , a ) = ∑ i = 1 m − 1 1 { s i = s , a i = a , s i + 1 = s ′ } ∑ i = 1 m − 1 1 { s i = s , a i = a } \hat{P}(s'|s,a)=\frac{\sum_{i=1}^{m-1}1\{s_i=s,a_i=a,s_{i+1}=s'\}}{\sum_{i=1}^{m-1}1\{s_i=s,a_i=a\}} P^(ss,a)=i=1m11{si=s,ai=a}i=1m11{si=s,ai=a,si+1=s}

R ^ ( s ) = ∑ i = 1 m − 1 1 { s i = s } r i ∑ i = 1 m − 1 1 { s i = s } \hat{R}(s)=\frac{\sum_{i=1}^{m-1}1\{s_i=s\}r_i}{\sum_{i=1}^{m-1}1\{s_i=s\}} R^(s)=i=1m11{si=s}i=1m11{si=s}ri

然后通过例如值迭代来求解MDP M ^ = ( S , A , P ^ , R ^ , γ ) \hat{M}=(S,A,\hat{P},\hat{R},\gamma) M^=(S,A,P^,R^,γ)

给定每个状态的足够样本,它将收敛到正确的MDP(从而正确的最优值函数/最优策略)。

我们如何确保获得“正确的”样本? (对于我们在此介绍的所有方法来说,这是一个具有挑战性的问题,请继续关注)。

基于模型的RL的优点(非正式地):有效地使用数据。

缺点:要求我们建立实际的MDP模型,解决最优策略(如果状态空间太大,则没有太大帮助)

4. Model-free methods

基于值的方法:基于时间差分学习(TD,SARSA,Q-learning),学习值函数 V π V^\pi Vπ V ∗ V^* V(或稍作概括的Q函数,我们将在后面讨论)。

基于策略的方法:直接学习最佳策略 π ∗ \pi^* π(如果无法获得真正的最优策略,则尝试近似最优策略)。

4.1 Value-based methods
4.1.1 Temporal difference (TD) methods

让我们考虑一下评估策略价值的任务,例如找到 V π V^\pi Vπ,我们可以通过重复迭代来完成:

∀ s ∈ S : V ^ π ( s ) : = R ( s ) + γ ∑ s ∈ S P ( s ′ ∣ s , π ( s ) ) V ^ π ( s ′ ) \forall s\in S: \hat{V}^\pi(s):=R(s)+\gamma\sum_{s\in S}P(s'|s,\pi(s))\hat{V}^\pi(s') sS:V^π(s):=R(s)+γsSP(ss,π(s))V^π(s)

现在假设我们处于某些状态 s t s_t st,获得奖励 r t r_t rt,采取动作 a t = π ( s t ) a_t=\pi(s_t) at=π(st),并最终处于状态 s t + 1 s_{t+1} st+1。我们无法对所有 s ∈ S s\in S sS进行上述更新,但是可以仅对 s t s_t st更新吗?

V ^ ( s t ) : = r t + γ ∑ s ′ ∈ S P ( s ′ ∣ s t , a t ) V ^ π ( s ′ ) \hat{V}(s_t):=r_t+\gamma\sum_{s'\in S}P(s'|s_t,a_t)\hat{V}^\pi(s') V^(st):=rt+γsSP(sst,at)V^π(s)

答案是否定的,因为我们仍然不知道对于所有 s ′ ∈ S s'\in S sS P ( s ′ ∣ s t , a t ) P(s'|s_t,a_t) P(sst,at)

但是, s t + 1 s_{t+1} st+1是分布 P ( s ′ ∣ s t , a t ) P(s'|s_t,a_t) P(sst,at)的样本,因此我们可以执行更新:

V ^ π ( s t ) = r t + γ V ^ π ( s t + 1 ) \hat{V}^\pi(s_t)=r_t+\gamma \hat{V}^\pi(s_{t+1}) V^π(st)=rt+γV^π(st+1)

但是,假设 s t + 1 s_{t+1} st+1是唯一可能的下一个状态,这太“苛刻”了。 而是使用一些 α < 1 \alpha<1 α<1来“平滑”更新:

V ^ π ( s t ) : = ( 1 − α ) V ^ π ( s t ) + α ( r t + γ V ^ π ( s t + 1 ) ) \hat{V}^\pi(s_t):=(1-\alpha)\hat{V}^\pi(s_t)+\alpha(r_t+\gamma\hat{V}^\pi(s_{t+1})) V^π(st):=(1α)V^π(st)+α(rt+γV^π(st+1))

这就是时间差分(TD)算法。

TD算法本质上是策略评估迭代的随机版本:

在这里插入图片描述
将收敛到 V ^ π ( s ) → V π ( s ) \hat{V}^\pi(s)\to V^\pi(s) V^π(s)Vπ(s)(对于所有 s s s足够频繁访问)。

TD实验之“网格世界”:在网格世界上运行TD进行1000回合(每回合包括10个步长,根据策略采样,从随机状态开始),用 V ^ = R \hat{V}=R V^=R进行初始化。TD Progress如下:

在这里插入图片描述 不同 α 的TD值估计误差 \text{不同}\alpha\text{的TD值估计误差} 不同αTD值估计误差

TD使我们可以直接学习策略 π \pi π的值函数,而无需构造MDP。

但这真的有帮助吗?

考虑尝试执行贪心策略 w.r.t. 估计的 V ^ π \hat{V}^\pi V^π:

π ′ ( s ) = arg max ⁡ a ∈ A ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ^ π ( s ′ ) \pi '(s)=\argmax_{a\in A}\sum_{s'\in S}P(s'|s,a)\hat{V}^\pi(s') π(s)=aAargmaxsSP(ss,a)V^π(s)

反正我们需要一个模型……

这是传统TD算法面临的问题。

4.1.2 Enter the Q function

Q函数(通常用于MDP)类似于值函数,但在状态动作对上定义:

Q π ( s , a ) = R ( s ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) Q π ( s ′ , π ( s ′ ) ) Q^\pi(s,a)=R(s)+\gamma\sum_{s'\in S}P(s'|s,a)Q^\pi(s',\pi(s')) Qπ(s,a)=R(s)+γsSP(ss,a)Qπ(s,π(s))

Q ∗ ( s , a ) = R ( s ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) max ⁡ a ′ ∈ A Q ∗ ( s ′ , a ′ ) = R ( s ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) \begin{aligned} Q^*(s,a) & = R(s)+\gamma\sum_{s'\in S}P(s'|s,a)\max_{a'\in A}Q^*(s',a')\\ & = R(s)+\gamma\sum_{s'\in S}P(s'|s,a)V^*(s') \end{aligned} Q(s,a)=R(s)+γsSP(ss,a)aAmaxQ(s,a)=R(s)+γsSP(ss,a)V(s)

即Q函数是从状态 s s s开始,采取动作 a a a,然后根据 π \pi π(或对于 Q ∗ Q^* Q而言最优)行动的值。

在给定MDP的情况下,我们可以轻松构造价值迭代或策略评估的类似物以直接构造Q函数。

4.1.3 SARSA and Q-learning

Q函数公式导致了类似TD的新方法。

与TD一样,观察状态 s s s,奖励 r r r,采取动作 a a a(不一定是 a = π ( s ) a=\pi(s) a=π(s),稍后对此进行更多介绍),观察下一个状态 s ′ s' s

SARSA:估算 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)

Q ^ π ( s , a ) : = ( 1 − α ) Q ^ π ( s , a ) + α ( r + γ Q ^ π ( s ′ , π ( s ′ ) ) ) \hat{Q}^\pi(s,a):=(1-\alpha)\hat{Q}^\pi(s,a)+\alpha(r+\gamma\hat{Q}^\pi(s',\pi(s'))) Q^π(s,a):=(1α)Q^π(s,a)+α(r+γQ^π(s,π(s)))

Q-learning: 估算 Q ∗ ( s , a ) Q^*(s,a) Q(s,a)

Q ^ ∗ ( s , a ) : = ( 1 − α ) Q ^ ∗ ( s , a ) + α ( r + γ max ⁡ a ′ ∈ A Q ^ ∗ ( s ′ , a ′ ) ) \hat{Q}^*(s,a):=(1-\alpha)\hat{Q}^*(s,a)+\alpha(r+\gamma\max_{a'\in A}\hat{Q}^*(s',a')) Q^(s,a):=(1α)Q^(s,a)+α(r+γaAmaxQ^(s,a))

给定每个状态动作对的足够样本,将分别收敛到 Q π Q^\pi Qπ Q ∗ Q^* Q

学习Q函数的优点是我们现在可以选择没有MDP模型的动作。

例如,在Q-learning中,最优策略由如下给定:

π ∗ ( s ) = arg max ⁡ a ∈ A Q ^ ∗ ( s , a ) \pi^*(s)=\argmax_{a\in A}\hat{Q}^*(s,a) π(s)=aAargmaxQ^(s,a)

因此我们可以在没有MDP模型的情况下学习完整的最优策略。

4.1.4 Aside: on-policy vs. off-policy learning

RL方法关于on-policy与off-policy学习算法有重要区别。

在on-policy设置(例如传统的TD和SARSA算法)中,您正在学习要遵循的策略 π \pi π的价值。

在off-policy设置(例如Q学习算法)中,您正在学习与所遵循的策略不同的策略的价值。

实际上,所有学习保证都适用于on-policy的案例。 对于off-policy存在一些收敛证明,但仅在非常有限的情况下。

我的看法:Q-learning可能不起作用,令人惊讶的是它会。

Q-learning实验:在网格世界上运行20000回合(每个回合10个步长)的Q-learning,并使用 Q ^ ( s , a ) = R ( s ) \hat{Q}(s,a)=R(s) Q^(s,a)=R(s)进行初始化。

策略:概率为0.9根据当前的最优策略 π ∗ ( s ) = arg max ⁡ a ∈ A Q ^ ∗ ( s , a ) \pi^*(s)=\argmax_{a\in A}\hat{Q}^*(s,a) π(s)=aAargmaxQ^(s,a)进行行动,概率为0.1随机进行行动。Q-learning progress如下:

在这里插入图片描述 不同 α 的Q学习的最优Q函数估计误差 \text{不同}\alpha\text{的Q学习的最优Q函数估计误差} 不同αQ学习的最优Q函数估计误差

4.2 Policy-based methods

强化学习的最终策略是避免同时形成MDP和值/Q函数,而是尝试直接学习(最优)策略。

MDP中的一个示例:

π θ ( s ) = max ⁡ a ∈ A θ ( s , a ) \pi_\theta(s)=\max_{a\in A}\theta(s,a) πθ(s)=aAmaxθ(s,a)

或可能是随机策略

π θ ( a ∣ s ) = exp ⁡ θ ( s , a ) ∑ a ′ ∈ A exp ⁡ θ ( s , a ′ ) \pi_\theta(a|s)=\frac{\exp\theta(s,a)}{\sum_{a'\in A}\exp\theta(s,a')} πθ(as)=aAexpθ(s,a)expθ(s,a)

(看起来类似于Q函数策略,但 θ \theta θ这里只是任意参数,不一定是值函数)

评估策略价值: 回想一下,一个策略的价值仅仅是折扣奖励的期望总和(假设我们总是可以在相同的初始状态下开始)。

优化问题:找到使奖励总和最大化的策略参数 θ \theta θ

V θ ( s ) = E [ ∑ t = 1 ∞ γ t r t ∣ s t + 1 ∼ P ( s ′ ∣ s t , π θ ( s t ) ) , s 1 = s ] V_\theta(s)=\mathbb{E}\left[\sum_{t=1}^{\infty}\gamma^t r_t | s_{t+1}\sim P(s'|s_t,\pi_\theta(s_t)),s_1=s\right] Vθ(s)=E[t=1γtrtst+1P(sst,πθ(st)),s1=s]

(我们可以通过简单地将策略运行足够长的时间来进行近似估算)

但是,我们无法计算出解析 ∇ θ V θ ( s ) \nabla_\theta V_\theta(s) θVθ(s)的梯度,所以我们需要一些方法来对其进行近似。

一个简单的策略搜索过程如下:

在这里插入图片描述
这个和更多涉及的变体(类似于进化方法)在实践中出奇地有效。

4.2.1 Policy gradient methods

在实践中经常出现的另一种策略搜索方法:策略梯度方法和REINFORCE算法。

需要进行修改才能在实践中正常运行,但构成大量基于策略的RL方法的基础。

基本设置:令 τ = ( 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)表示状态/动作对的轨迹。

然后我们可以将策略的值函数写为:

V θ ( s ) = E [ R ( τ ; θ ) ] = ∫ p ( τ ; θ ) R ( τ ) d τ V_\theta(s)=\mathbb{E}[R(\tau;\theta)]=\int p(\tau;\theta)R(\tau)d_\tau Vθ(s)=E[R(τ;θ)]=p(τ;θ)R(τ)dτ

4.2.2 The REINFORCE algorithm

REINFORCE算法的第一个“技巧”是通过以下方法得出值函数梯度的特定形式:

∇ θ V θ ( s ) = ∇ θ ∫ p ( τ ; θ ) R ( τ ) d τ = ∫ ∇ θ p ( τ ; θ ) R ( τ ) d τ = ∫ p ( τ ; θ ) p ( τ ; θ ) ∇ θ p ( τ ; θ ) R ( τ ) d τ = ∫ p ( τ ; θ ) ∇ θ log ⁡ p ( τ ; θ ) R ( τ ) d τ = E [ ∇ θ log ⁡ p ( τ ; θ ) R ( τ ) ] \begin{aligned} \nabla_\theta V_\theta(s)&=\nabla_\theta\int p(\tau;\theta)R(\tau)d_\tau\\ &=\int\nabla_\theta p(\tau;\theta)R(\tau)d_\tau\\ &=\int\frac{p(\tau;\theta)}{p(\tau;\theta)}\nabla_\theta p(\tau;\theta)R(\tau)d_\tau\\ &=\int p(\tau;\theta)\nabla_\theta\log p(\tau;\theta)R(\tau)d_\tau\\ &=\mathbb{E}[\nabla_\theta\log p(\tau;\theta)R(\tau)] \end{aligned} θVθ(s)=θp(τ;θ)R(τ)dτ=θp(τ;θ)R(τ)dτ=p(τ;θ)p(τ;θ)θp(τ;θ)R(τ)dτ=p(τ;θ)θlogp(τ;θ)R(τ)dτ=E[θlogp(τ;θ)R(τ)]

即价值函数的梯度可以计算为策略梯度(对数)的梯度乘以奖励的期望。

因为这是一个期望,所以我们可以使用样本进行近似。

REINFORCE算法的第二个“技巧”是要注意,我们可以进一步简化对数轨迹概率的梯度:

∇ θ log ⁡ p ( τ ; θ ) = ∇ θ log ⁡ ( ∏ t = 1 T p ( s t + 1 ∣ s t , a t ) π θ ( a t ∣ s t ) ) = ∇ θ ∑ t = 1 T ( log ⁡ p ( s t + 1 ∣ s t , a t ) + log ⁡ π θ ( a t ∣ s t ) ) = ∑ t = 1 T ∇ θ log ⁡ π θ ( a t ∣ s t ) \begin{aligned} \nabla_\theta\log p(\tau;\theta)&=\nabla_\theta\log\left(\prod_{t=1}^T p(s_{t+1}|s_t,a_t)\pi_\theta(a_t|s_t) \right)\\ &=\nabla_\theta\sum_{t=1}^T(\log p(s_{t+1}|s_t,a_t)+\log\pi_\theta(a_t|s_t))\\ &=\sum_{t=1}^T\nabla_\theta\log\pi_\theta(a_t|s_t) \end{aligned} θlogp(τ;θ)=θlog(t=1Tp(st+1st,at)πθ(atst))=θt=1T(logp(st+1st,at)+logπθ(atst))=t=1Tθlogπθ(atst)

(因为动态不取决于参数 θ \theta θ

最终的REINFORCE算法如下:

在这里插入图片描述
一个重要的注意事项:不要让“策略梯度”这个名字愚弄您,这是一种基于采样的方法来近似梯度(就像上面的函数拟合方法一样),而不是实际的基于梯度的方法。

5. Exploration/exploitation problem

到目前为止,我们讨论的所有方法都有一定的条件,例如“假设我们足够访问每个状态“或“根据某些策略采取行动”。

一个基本的问题:如果我们不了解系统动态,我们是否应该采取探索性行动为我们提供更多信息,还是应该利用当前知识来尽力而为?

示例:不起作用的基于模型的过程

  1. 利用过去的经验建立模型 P ^ \hat{P} P^ R ^ \hat{R} R^
  2. 使用例如值迭代找到用于MDP M ^ = ( S , A , P ^ , R ^ , γ ) \hat{M}=(S,A,\hat{P},\hat{R},\gamma) M^=(S,A,P^,R^,γ)的最佳策略,并根据该策略采取行动

最初的错误估计可能会使策略进入次优区域,并且永远不会进一步探索。

5.1 Exploration in RL

关键思想:不要按照当前MDP估算值根据“最优”策略行动,而应根据将探索较少关注的状态动作对的策略行动,直到获得“良好估算值”为止。

  • Epsilon-greedy policy
    π ( s ) = { max ⁡ a ∈ A Q ^ ( s , a ) , with probability 1 − ϵ random action , otherwise \pi(s)= \begin{cases} \max_{a\in A}\hat{Q}(s,a), & \text{with probability} 1-\epsilon \\ \text{random action}, & \text{otherwise} \end{cases} π(s)={maxaAQ^(s,a),random action,with probability1ϵotherwise

  • Boltzman policy
    π ( a ∣ s ) = exp ⁡ ( τ Q ^ ( s , a ) ) ∑ a ∈ A ′ exp ⁡ ( τ Q ^ ( s , a ′ ) ) \pi(a|s)=\frac{\exp\left(\tau\hat{Q}(s,a)\right)}{\sum_{a\in A'}\exp\left(\tau\hat{Q}(s,a')\right)} π(as)=aAexp(τQ^(s,a))exp(τQ^(s,a))

想要减少 ϵ \epsilon ϵ,增加 τ \tau τ,随着我们看到更多示例。

Q-learning探索阐述:网格世界具有随机[0,1]奖励,而不是上方的奖励,用 Q ^ ( s , a ) : = 0 \hat{Q}(s,a):=0 Q^(s,a):=0初始化Q函数。以 α = 0.05 \alpha=0.05 α=0.05 ϵ = 0.1 \epsilon=0.1 ϵ=0.1 ϵ = 0 \epsilon=0 ϵ=0(贪婪), ϵ = 1 \epsilon=1 ϵ=1运行,其中 n ( s ) n(s) n(s)是我们访问状态 s s s的次数。Q函数逼近的准确性如下:

在这里插入图片描述

不同探索策略的Q函数估计误差

平均获得奖励如下:
在这里插入图片描述

通过不同探索策略获得的平均单个回合奖励

6. Recent trends in RL

网格世界很棒,但这并不是真正推动RL兴奋的原因,不是吗?

对RL的实际兴趣来自对大型状态/观察空间,大型或连续动作空间的扩展。

通常在深度学习方法的帮助下完成,以学习RL环境中的未知量。

许多著名的成功案例:Atari游戏,AlphaGo,多种机器人任务。

7. Modern advances / “Deep RL”

在这里插入图片描述

8. Model-based methods

8.1 Model-based RL control for robotics

从离散设置到连续(状态和动作)设置。

在这里插入图片描述
概念上的过程与基于MDP模型的RL相同:学习动态模型,解决模型中的任务,然后应用于实际系统。

关键挑战:需要更好的模型(不能使用简单的离散MDP)和更好的控制算法来“解决”任务。

应用示例:学习操作技巧,From: Fu, Levine and Abbeel, “One-Shot Learning of Manipulation Skills with Online Dynamics Adaptation and Neural Network Priors”, 2016. [paper] [video]

目标:“快速”学习用于机器人系统的新对象的操作技巧(通过针对挑战性问题的接触进行对象操作)。

两个高级的想法:

  1. 使用神经网络(具有一些技巧来快速适应新的数据输入)来对动态建模 s t + 1 ≈ f ( s t , a t , s t − 1 , a t − 1 ) s_{t+1}\approx f(s_t,a_t,s_{t-1},a_{t-1}) st+1f(st,at,st1,at1)其中 f f f是神经网络模型(也会增加噪声)。
  2. 使用近似最优控制算法(iLQR)来控制给定模型的系统。

9. Model-free methods

9.1 Value-based methods with large state spaces

在这里插入图片描述
目标:在状态空间太大而无法明确表示的域中学习最优策略(在该状态空间中动态可能难以表达)。

关键挑战:需要一种用于表示例如巨大状态空间上的值函数的方法。

9.1.1 TD methods with value function approximation

一般而言,TD方法的一个优点(不是新概念,这可以追溯到TD中的某些原始工作)是使用函数逼近紧凑地表示值函数的能力。

考虑一些参数化值函数逼近 V ^ π ( s ) = f θ ( s ) \hat{V}^\pi(s)=f_\theta(s) V^π(s)=fθ(s)其中 f f f是神经网络, θ \theta θ表示网络权重。

然后TD更新由如下给定 θ : = θ + α ( r + γ f θ ( s ′ ) − f θ ( s ) ) ∇ θ f θ ( s ) \theta:=\theta+\alpha(r+\gamma f_\theta(s')-f_\theta(s))\nabla_\theta f_\theta(s) θ:=θ+α(r+γfθ(s)fθ(s))θfθ(s)这是传统TD更新的泛化。

9.1.2 TD Gammon

1992年由IBM Watson的Gerald Tesauro开发。

使用带神经网络的TD作为函数逼近(已知模型,但太大,无法作为MDP求解)。

在专家级别的比赛中,许多世界专家根据系统使用的策略更改了策略。

9.1.3 Deep Q Network (DQN)

DQN方法(以深度网络作为Q函数逼近的Q-learning)因学习比人类更好地玩各种Atari游戏而在2013年成名。

Mnih et al., “Human-level control through deep reinforcement learning”, 2015. [paper]

DQN更新:状态 s s s,奖励 r r r,采取动作 a a a ϵ -greedy \epsilon\text{-greedy} ϵ-greedy),下一个状态 s ′ s' s

θ : = θ + α ( r + γ max ⁡ a ′ ∈ A Q ^ θ ( s ′ , a ′ ) − Q ^ θ ( s , a ) ) ∇ θ Q ^ θ ( s , a ) \theta:=\theta+\alpha\left(r+\gamma\max_{a'\in A}\hat{Q}_\theta(s',a')-\hat{Q}_\theta(s,a)\right)\nabla_\theta\hat{Q}_\theta(s,a) θ:=θ+α(r+γaAmaxQ^θ(s,a)Q^θ(s,a))θQ^θ(s,a)

其他一些技巧:使第一个Q函数保持固定不变,并且仅在每C个迭代中更新一次,保留过去动作的replay buffer。

应用于Atari Games:卷积网络,将像素图像作为输入(过去四帧中的实际像素图像),输出Q函数。适用于50个Atari游戏的相同方法,在大多数情况下都超过了人类的表现。

在这里插入图片描述

9.2 Policy-based methods with Learning locomotion policies

From Heess et al., “Emergence of Locomotion Behaviors of in Rich Environments”, 2017. [paper]

目标:学习使用深度神经网络策略控制(模拟)机器人前进。

策略从关节/接触点以及周围地形输入,输出关节扭矩。

使用近端策略优化(PPO)来优化策略,该策略类似于REINFORCE,但是具有一些可以显着提高性能的技巧(重要性采样,过度惩罚更改策略的项以及估计“基准”的价值函数)。

在这里插入图片描述

10. Final thoughts: making sense of the jungle

“强化学习”(我们只涵盖了一小部分),似乎像是算法,总体方法和应用的广阔丛林。

…而且我们可能会面临各种各样的复现危机(例如参见Henderson et al., “Deep Reinforcement Learning that Matters”, 2017 [paper])。

关于“哪种方法最适合我”的一些简单规则:

  • Model-based: 如果您的数据贫乏,和/或拥有一个真实的系统在训练时您无法承受破坏100次的麻烦。
  • Value-based: 理想情况下,采取少量行动即可使问题看起来更像“规划”。
  • Policy-based: 相对简单的“反应性”策略可以很好地工作,但是潜在的高维控制空间。

参考资源

[1] Introduction to Reinforcement Learning

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值