
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(s′∣s,a)。 R R R是 S → R S\to\mathbb{R} S→R的奖励函数, 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 π:S→A是从状态到动作的映射。
随机性策略 π : 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)+γs∈S∑P(s′∣s,π(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)+γa∈Amaxs′∈S∑P(s′∣s,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') ∀s∈S:V^π(s):=R(s)+γs∈S∑P(s′∣s,π(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') ∀s∈S:V^∗(s):=R(s)+γa∈Amaxs∈S∑P(s′∣s,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^(s′∣s,a)=∑i=1m−11{si=s,ai=a}∑i=1m−11{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=1m−11{si=s}∑i=1m−11{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') ∀s∈S:V^π(s):=R(s)+γs∈S∑P(s′∣s,π(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 s∈S进行上述更新,但是可以仅对 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+γs′∈S∑P(s′∣st,at)V^π(s′)
答案是否定的,因为我们仍然不知道对于所有 s ′ ∈ S s'\in S s′∈S的 P ( s ′ ∣ s t , a t ) P(s'|s_t,a_t) P(s′∣st,at)
但是, s t + 1 s_{t+1} st+1是分布 P ( s ′ ∣ s t , a t ) P(s'|s_t,a_t) P(s′∣st,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)=a∈Aargmaxs′∈S∑P(s′∣s,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)+γs′∈S∑P(s′∣s,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)+γs′∈S∑P(s′∣s,a)a′∈AmaxQ∗(s′,a′)=R(s)+γs′∈S∑P(s′∣s,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+γa′∈AmaxQ^∗(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)=a∈AargmaxQ^∗(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)=a∈AargmaxQ^∗(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)=a∈Amaxθ(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')} πθ(a∣s)=∑a′∈Aexpθ(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∑∞γtrt∣st+1∼P(s′∣st,πθ(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=1∏Tp(st+1∣st,at)πθ(at∣st))=∇θt=1∑T(logp(st+1∣st,at)+logπθ(at∣st))=t=1∑T∇θlogπθ(at∣st)
(因为动态不取决于参数 θ \theta θ)
最终的REINFORCE算法如下:
一个重要的注意事项:不要让“策略梯度”这个名字愚弄您,这是一种基于采样的方法来近似梯度(就像上面的函数拟合方法一样),而不是实际的基于梯度的方法。
5. Exploration/exploitation problem
到目前为止,我们讨论的所有方法都有一定的条件,例如“假设我们足够访问每个状态“或“根据某些策略采取行动”。
一个基本的问题:如果我们不了解系统动态,我们是否应该采取探索性行动为我们提供更多信息,还是应该利用当前知识来尽力而为?
示例:不起作用的基于模型的过程
- 利用过去的经验建立模型 P ^ \hat{P} P^和 R ^ \hat{R} R^
- 使用例如值迭代找到用于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)={maxa∈AQ^(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)} π(a∣s)=∑a∈A′exp(τ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函数逼近的准确性如下:
平均获得奖励如下:
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]
目标:“快速”学习用于机器人系统的新对象的操作技巧(通过针对挑战性问题的接触进行对象操作)。
两个高级的想法:
- 使用神经网络(具有一些技巧来快速适应新的数据输入)来对动态建模 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+1≈f(st,at,st−1,at−1)其中 f f f是神经网络模型(也会增加噪声)。
- 使用近似最优控制算法(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+γa′∈AmaxQ^θ(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: 相对简单的“反应性”策略可以很好地工作,但是潜在的高维控制空间。