强化学习概述
\quad
\quad
最近在读《动手学强化学习》这本书,索性结合之前看的一些书写一写笔记。佛系更新~
\quad
\quad
目录
强化学习问题概述
人生中充满选择,每次选择就是一次决策,我们正是从一次次的决策中,把自己带领到人生的下一段旅程中。
在机器学习领域,有一类重要的任务和人生的选择很相似,即序贯决策任务。决策和预测任务不同,决策往往会带来“后果”,因此决策者需要为未来负责,在未来的时间点做出进一步的决策。实现序贯决策的机器学习方法就是强化学习。而预测仅仅产生一个针对输入数据的信号,并期望它和未来可观测到的信号一致,这不会使未来情况发生任何改变。
那么,什么是强化学习呢?广泛地讲,强化学习是机器通过与环境交互来实现目标地一种计算方法。机器和环境地一轮交互是指,机器在环境的一个状态下做一个动作决策,把这个动作作用到环境当中,这个环境发生相应的改变并且将相应的奖励反馈和下一轮状态传回机器。这种交互是迭代进行的,机器的目标是最大化在多轮交互过程中获得的累积奖励的期望。强化学习中用智能体(agent)来表示做决策的机器。相比于监督学习中的“模型”,强化学习中的智能体强调机器不但可以感知周围的环境信息,还可以通过做决策来直接改变这个环境。
那为什么要学强化学习呢?监督学习一般需要一定数量的带标签的数据。在很多的应用场景中,通过人工标注的方式来给数据打标签的方式往往行不通。比如我们通过监督学习来训练一个模型可以自动下围棋,就需要将当前棋盘的状态作为输入数据,其对应的最佳落子位置(动作)作为标签。训练一个好的模型就需要收集大量的不同棋盘状态以及对应动作。这种做法实践起来比较困难,一是对于每一种棋盘状态,即使是专家也很难给出正确的动作,二是获取大量数据的成本往往比较高。对于下棋这类任务,虽然我们很难知道每一步的正确动作,但是其最后的结果(即赢输)却很容易判断。因此,如果可以通过大量的模拟数据,通过最后的结果(奖励)来倒推每一步棋的好坏,从而学习出最佳的下棋策略,这就是强化学习的思想。
和深度学习类似,强化学习中的关键问题也是贡献度分配问题,每一个动作并不能直接得到监督信息,需要通过整个模型的最终监督信息(奖励)得到,并且有一定的延时性。强化学习也是机器学习中的一个重要分支。强化学习和监督学习的不同在于,强化学习问题不需要给出正确策略作为监督信息,只需要给出策略的(延迟)回报,并通过调整策略来取得最大化的期望回报。
在强化学习中,有两个可以进行交互的对象:智能体和环境。
- 智能体(Agent)可以感知外界环境的状态(State)和反馈的奖励(Reward),并进行学习和决策。
- 智能体的决策功能是指根据外界环境的状态来做出不同的动作(Action)
- 学习功能是指根据外界环境的奖励来调整策略。
- 环境(Environment)是智能体外部的所有事物,并受智能体动作的影响而改变其状态,并反馈给智能体相应的奖励。
智能体和环境之间的交互方式如下图。在每一轮交互中,智能体感知到环境目前所处的状态,经过自身的计算给出本轮的动作,将其作用到环境中;环境得到只能话题的动作后,产生相应的即时奖励信号并发生相应的状态转移。智能体则在下一轮交互中感知到新的环境状态,依此类推。
在这里,智能体有三中关键要素,即感知、决策和奖励。
- 感知:智能体在某种程度上感知环境的状态,从而知道自己所处的现状。
- 决策:智能体根据当前的状态计算出达到目标需要采取的动作的过程叫做决策。策略是智能体最终体现出的智能形式,是不同智能体之间的核心区别。
- 奖励:环境根据状态和智能体采取的动作,产生一个标量信号作为奖励反馈。这个标量信号衡量智能体这一轮动作的好坏。同时,最大化累积奖励期望是智能体提升策略的目标,也是衡量智能体策略好坏的关键指标。
从以上分析可以看出,面向决策任务的强化学习和面向预测任务的监督学习在形式上是有很大区别的。决策任务往往涉及多轮交互,而预测任务总是单轮的独立任务。如果决策也是单轮的,那么强化学习可以转化为“潘别最优动作”的预测任务。其次,因为决策是多轮的,智能体需要在每轮做决策时考虑未来环境相应的改变,当前轮带来的最大奖励反馈的动作,在长期来看就不一定是最优的了。
强化学习的定义
强化学习的基本要素包括:
- 状态( s s s)是对环境的描述,可以是离散的或连续的,其状态空间为( S \mathcal{S} S)。
- 动作( a a a)是对智能体行为的描述,可以是离散的或连续的,其动作空间为( A \mathcal{A} A)。
- 策略( π ( a ∣ s ) \pi(a|s) π(a∣s) )是智能体根据环境状态( s s s) 来决定下一步动作( a a a)的函数。
- 状态转移概率( p ( s ′ ∣ s , a ) p(s′|s, a) p(s′∣s,a)) 是在智能体根据当前状态( s s s)做出一个动作( a a a) 之后,环境在下一个时刻转变为状态( s ′ s′ s′)的概率。
- 即时奖励( r ( s , a , s ′ ) r(s, a, s′) r(s,a,s′) )是一个标量函数,即智能体根据当前状态( s s s)做出动作( a a a)之后,环境会反馈给智能体一个奖励,这个奖励也经常和下一个时刻的状态(s′)有关。
智能体的策略(Policy)就是智能体如何根据环境状态( s s s)来决定下一步的动作( a a a),通常可以分为确定性策略(Deterministic Policy)和随机性策略(Stochastic Policy)两种。
- 确定性策略是从状态空间到动作空间的映射函数( π : S → A \pi:\mathcal{S} \rightarrow \mathcal{A} π:S→A)。
- 随机性策略表示在给定环境状态时,智能体选择某个动作的概率分布。
π ( a ∣ s ) ≜ p ( a ∣ s ) ∑ a ∈ A π ( a ∣ s ) = 1 \begin{aligned} \pi(a \mid s) & \triangleq p(a \mid s) \\ \sum_{a \in \mathcal{A}} \pi(a \mid s) &=1 \end{aligned} π(a∣s)a∈A∑π(a∣s)≜p(a∣s)=1
通常情况下,强化学习一般使用随机性策略。随机性策略可以有很多优点:
- 在学习时可以通过引入一定随机性更好地探索环境(可以将探索耦合到采样过程中);
- 随机性策略的动作具有多样性,这一点在多个智能体博弈时也非常重要。采用确定性策略的智能体总是对同样的环境做出相同的动作,会导致它的策略很容易被对手预测。
强化学习的环境
从上面的分析中,我们可以知道在每一轮,智能体决策的动作作用到环境中,使得环境发生相应的状态改变,而智能体接下来则需要在新的状态下进一步给出决策。这里,与面向决策任务的智能体进行交互的环境是一个动态的随机过程,其未来状态的分布由当前状态和智能体的动作来共同决定,且每一轮状态转移都伴随这两方面的随机性:
- 智能体决策动作的随机性;
- 环境基于当前状态和智能体动作来采样下一刻状态的随机性。
强化学习广泛应用于很多领域,比如电子游戏、棋类游戏、迷宫类游戏、控制系统、推荐等。这里举两个经典的例子:
- 多臂赌博机问题:给定 K K K个赌博机,拉动每个赌博机的拉杆,赌博机会按照一个事先设定的概率掉出一块钱或不掉钱。每个赌博机掉钱的概率不一样。多臂赌博机问题(Multi-Armed Bandit Problem)是指,给定有限的机会次数( T T T),如何玩这些赌博机才能使得期望累积收益最大化。多臂赌博机问题在广告推荐、投资组合等领域有着非常重要的应用。
- 悬崖行走问题:在一个网格世界(Grid World)中,每个格子表示一个状态。如下图所示的一个网格世界,每个状态为 ( i , j ) , 1 ≤ i ≤ 7 , 1 ≤ j ≤ 3 (i,j), 1 \leq i \leq 7, 1 \leq j \leq 3 (i,j),1≤i≤7,1≤j≤3,其中格子 ( 2 , 1 ) (2, 1) (2,1)到 ( 6 , 1 ) (6, 1) (6,1)是悬崖(Cliff)。有一个醉汉,从左下角的开始位置 S S S,走到右下角的目标位置 E E E。如果走到悬崖,醉汉会跌落悬崖并死去。醉汉可以选择行走的路线,即在每个状态时,选择行走的方向:上下左右。动作空间 A = { ↑ , ↓ , → , ← } \mathcal{A} = \{\uparrow, \downarrow, \rightarrow, \leftarrow \} A={↑,↓,→,←}。但每走一步,都有一定的概率滑落到周围其他格子。醉汉的目标是如何安全地到达目标位置。
马尔可夫决策过程
为简单起见,我们将智能体与环境的交互看作离散的时间序列。智能体从感知到的初始环境
s
0
s_0
s0开始,然后决定做一个相应的动作
a
0
a_0
a0,环境相应的发生改变到新的状态
s
1
s_1
s1,并反馈给智能体一个即时奖励
r
1
r_1
r1,然后智能体又根据状态
s
1
s_1
s1做一个动作
a
1
a_1
a1,环境相应改变为
s
2
s_2
s2,并反馈奖励
r
2
r_2
r2。这样的交互可以一直进行下去。
s
0
,
a
0
,
s
1
,
r
1
,
a
1
,
⋯
,
s
t
−
1
,
r
t
−
1
,
a
t
−
1
,
s
t
,
r
t
,
⋯
,
s_{0}, a_{0}, s_{1}, r_{1}, a_{1}, \cdots, s_{t-1}, r_{t-1}, a_{t-1}, s_{t}, r_{t}, \cdots,
s0,a0,s1,r1,a1,⋯,st−1,rt−1,at−1,st,rt,⋯,
其中
r
t
=
r
(
s
t
−
1
,
a
t
−
1
,
s
t
)
r_t = r(s_{t−1}, a_{t−1}, s_t)
rt=r(st−1,at−1,st)是第
t
t
t时刻的即时奖励。智能体与环境的交互过程可以看作一个马尔可夫决策过程(Markov Decision Process,MDP)。马尔可夫过程是一组具有马尔可夫性质的随机变量序列
s
0
,
s
1
,
⋯
,
s
t
∈
S
s_0, s_1, \cdots,s_t \in \mathcal{S}
s0,s1,⋯,st∈S,其中下一个时刻的状态
s
t
+
1
s_{t+1}
st+1只取决于当前状态
s
t
s_t
st,
p
(
s
t
+
1
∣
s
t
,
⋯
,
s
0
)
=
p
(
s
t
+
1
∣
s
t
)
p\left(s_{t+1} \mid s_{t}, \cdots, s_{0}\right)=p\left(s_{t+1} \mid s_{t}\right)
p(st+1∣st,⋯,s0)=p(st+1∣st)
其中
p
(
s
t
+
1
∣
s
t
)
p(s_{t+1}|s_t)
p(st+1∣st)称为状态转移概率,并且
∑
S
t
+
1
∈
S
p
(
s
t
+
1
∣
s
t
)
=
1
\sum_{S_{t+1} \in \mathcal{S}} p\left(s_{t+1} \mid s_{t}\right)=1
∑St+1∈Sp(st+1∣st)=1。
马尔可夫决策过程在马尔可夫过程中加入一个额外的变量:动作
a
a
a,下一个时刻的状态
s
t
+
1
s_{t+1}
st+1不但和当前时刻的状态
s
t
s_t
st相关,而且和动作
a
t
a_t
at相关,
p
(
s
t
+
1
∣
s
t
,
a
t
,
⋯
,
s
0
,
a
0
)
=
p
(
s
t
+
1
∣
s
t
,
a
t
)
p\left(s_{t+1} \mid s_{t}, a_{t}, \cdots, s_{0}, a_{0}\right)=p\left(s_{t+1} \mid s_{t}, a_{t}\right)
p(st+1∣st,at,⋯,s0,a0)=p(st+1∣st,at)
其中
p
(
s
t
+
1
∣
s
t
,
a
t
)
p\left(s_{t+1} \mid s_{t}, a_{t}\right)
p(st+1∣st,at)为状态转移概率。下图给出了马尔可夫决策过程的图模型表示。
给定策略
π
(
a
∣
s
)
\pi(a|s)
π(a∣s),马尔可夫决策过程的一个轨迹(Trajectory)
τ
=
s
0
,
a
0
,
s
1
,
r
1
,
a
1
,
⋯
,
s
T
−
1
,
a
T
−
1
,
s
T
,
r
T
\tau=s_{0}, a_{0}, s_{1}, r_{1}, a_{1}, \cdots, s_{T-1}, a_{T-1}, s_{T}, r_{T}
τ=s0,a0,s1,r1,a1,⋯,sT−1,aT−1,sT,rT
的概率为
p
(
τ
)
=
p
(
s
0
,
a
0
,
s
1
,
a
1
,
⋯
)
=
p
(
s
0
)
∏
t
=
0
T
−
1
π
(
a
t
∣
s
t
)
p
(
s
t
+
1
∣
s
t
,
a
t
)
\begin{aligned} p(\tau) =p\left(s_{0}, a_{0}, s_{1}, a_{1}, \cdots\right) =p\left(s_{0}\right) \prod_{t=0}^{T-1} \pi\left(a_{t} \mid s_{t}\right) p\left(s_{t+1} \mid s_{t}, a_{t}\right) \end{aligned}
p(τ)=p(s0,a0,s1,a1,⋯)=p(s0)t=0∏T−1π(at∣st)p(st+1∣st,at)
强化学习的目标
在上述动态环境下,智能体和环境每次进行交互时,环境会产生相应的奖励信号。这个奖励信号一般是诠释当前状态或动作的好坏的及时反馈信号,好比在玩游戏的过程中某一个操作获得的分数值。整个交互过程的每一轮获得的奖励信号可以进行累加,形成智能体的整体回报,好比一盘游戏最后的分数值。根据环境的动态性我们可以知道,即使环境和智能体策略不变,智能体的初始状态也不变,智能体和环境交互产生的结果也很可能是不同的,对应获得的回报也会不同。因此,在强化学习中,我们关注回报的期望。并将其定义为价值,这就是强化学习中智能体学习的优化目标。价值的计算有些复杂,因为需要对交互过程中每一轮智能体采取动作的概率分布和环境相应得状态转移的概率分布做积分运算。
总回报
给定策略
π
(
a
∣
s
)
\pi(a|s)
π(a∣s),智能体和环境一次交互过程的轨迹
τ
\tau
τ所收到的累积奖励为总回报(Return)。
G
(
τ
)
=
∑
t
=
0
T
−
1
r
t
+
1
=
∑
t
=
0
T
−
1
r
(
s
t
,
a
t
,
s
t
+
1
)
\begin{aligned} G(\tau) &=\sum_{t=0}^{T-1} r_{t+1} =\sum_{t=0}^{T-1} r\left(s_{t}, a_{t}, s_{t+1}\right) \end{aligned}
G(τ)=t=0∑T−1rt+1=t=0∑T−1r(st,at,st+1)
假设环境中有一个或多个特殊的终止状态(Terminal State),当到达终止状态时,一个智能体和环境的交互过程就结束了。这一轮交互的过程称为一个回合(Episode)。一般的强化学习任务(比如下棋、游戏)都属于这种回合式任务(Episodic Task)。
如果环境中没有终止状态(比如终身学习的机器人),即
T
=
∞
T = \infty
T=∞,称为持续式任务(Continuing Task),其总回报也可能是无穷大。为了解决这个问题,我们可以引入一个衰减因子来降低远期回报的权重。折扣回报(Discounted Return)定义为
G
(
τ
)
=
∑
t
=
0
T
−
1
γ
t
r
t
+
1
G(\tau)=\sum_{t=0}^{T-1} \gamma^{t} r_{t+1}
G(τ)=t=0∑T−1γtrt+1
其中
γ
∈
[
0
,
1
]
\gamma \in [0, 1]
γ∈[0,1]是衰减因子。当
γ
\gamma
γ接近于0时,智能体更在意短期回报;而当
γ
\gamma
γ接近于1时,长期回报变得更重要。
由于策略 π \pi π是随机的,因此累计回报也是随机的。为了评价状态 s 1 s_1 s1的价值,我们需要去定义一个确定量来描述状态 s 1 s_1 s1的价值,很自然的想法是利用累计回报来衡量状态的价值,但累计回报也是个随机变量,不是一个确定值,因此无法描述。但其期望是一个确定值,可以作为状态值函数的定义。
目标函数
因为策略和状态转移都有一定的随机性,所以每次试验得到的轨迹是一个随机序列,其收获的总回报也不一样。强化学习的目标是学习到一个策略 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(a∣s)来最大化期望回报(Expected Return),即希望智能体执行一系列的动作来获得尽可能多的平均回报。
强化学习的目标函数为
J
(
θ
)
=
E
τ
∼
p
θ
(
τ
)
[
G
(
τ
)
]
=
E
τ
∼
p
θ
(
τ
)
[
∑
t
=
0
T
−
1
γ
t
r
t
+
1
]
\mathcal{J}(\theta)=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}[G(\tau)]=\mathbb{E}_{\tau \sim p_{\theta}(\tau)}\left[\sum_{t=0}^{T-1} \gamma^{t} r_{t+1}\right]
J(θ)=Eτ∼pθ(τ)[G(τ)]=Eτ∼pθ(τ)[t=0∑T−1γtrt+1]
其中
θ
\theta
θ为策略函数的参数。
值函数
为了评估策略 π \pi π的期望回报,我们定义两个值函数:状态值函数和状态-动作值函数。
状态值函数
策略
π
\pi
π的期望回报可以分解为
E
τ
∼
p
(
τ
)
[
G
(
τ
)
]
=
E
s
∼
p
(
s
0
)
[
E
τ
∼
p
(
τ
)
[
∑
t
=
0
T
−
1
γ
t
r
t
+
1
∣
τ
s
0
=
s
]
]
=
E
s
∼
p
(
s
0
)
[
V
π
(
s
)
]
\begin{aligned} \mathbb{E}_{\tau \sim p(\tau)}[G(\tau)] &=\mathbb{E}_{s \sim p\left(s_{0}\right)}\left[\mathbb{E}_{\tau \sim p(\tau)}\left[\sum_{t=0}^{T-1} \gamma^{t} r_{t+1} \mid \tau_{s_{0}}=s\right]\right] \\ &=\mathbb{E}_{s \sim p\left(s_{0}\right)}\left[V^{\pi}(s)\right] \end{aligned}
Eτ∼p(τ)[G(τ)]=Es∼p(s0)[Eτ∼p(τ)[t=0∑T−1γtrt+1∣τs0=s]]=Es∼p(s0)[Vπ(s)]
其中
V
π
(
s
)
V^{\pi}(s)
Vπ(s)称为状态值函数(State Value Function),表示从状态
s
s
s开始,执行策略
π
\pi
π得到的期望总回报
V
π
(
s
)
=
E
τ
∼
p
(
τ
)
[
∑
t
=
0
T
−
1
γ
t
r
t
+
1
∣
τ
s
0
=
s
]
V^{\pi}(s)=\mathbb{E}_{\tau \sim p(\tau)}\left[\sum_{t=0}^{T-1} \gamma^{t} r_{t+1} \mid \tau_{s_{0}}=s\right]
Vπ(s)=Eτ∼p(τ)[t=0∑T−1γtrt+1∣τs0=s]
其中
τ
s
0
\tau_{s_0}
τs0表示轨迹
τ
\tau
τ的起始状态。
为了方便起见,我们用
τ
0
:
T
\tau_0:T
τ0:T来表示轨迹
s
0
,
a
0
,
s
1
,
⋯
,
s
T
s_0, a_0, s_1, \cdots ,s_T
s0,a0,s1,⋯,sT,用
τ
1
:
T
\tau_1:T
τ1:T来表示轨迹
s
1
,
a
1
,
⋯
,
s
T
s_1, a_1, \cdots , s_T
s1,a1,⋯,sT,因此有
τ
0
∶
T
=
s
0
,
a
0
,
τ
1
∶
T
\tau{0∶T} = s_0, a_0, \tau_{1∶T}
τ0∶T=s0,a0,τ1∶T。
V
π
(
s
)
=
E
τ
0
:
T
∼
p
(
τ
)
[
r
1
+
γ
∑
t
=
1
T
−
1
γ
t
−
1
r
t
+
1
∣
τ
s
0
=
s
]
=
E
a
∼
π
(
a
∣
s
)
E
s
′
∼
p
(
s
′
∣
s
,
a
)
E
τ
1
:
T
∼
p
(
τ
)
[
r
(
s
,
a
,
s
′
)
+
γ
∑
t
=
1
T
−
1
γ
t
−
1
r
t
+
1
∣
τ
s
1
=
s
′
]
=
E
a
∼
π
(
a
∣
s
)
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
E
τ
1
:
T
∼
p
(
τ
)
[
∑
t
=
1
T
−
1
γ
t
−
1
r
t
+
1
∣
τ
s
1
=
s
′
]
]
=
E
a
∼
π
(
a
∣
s
)
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
V
π
(
s
′
)
]
\begin{aligned} V^{\pi}(s)&=\mathbb{E}_{\tau_{0: T} \sim p(\tau)}\left[r_{1}+\gamma \sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_{0}}=s\right] \\ &=\mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)} \mathbb{E}_{\tau_{1: T} \sim p(\tau)}\left[r\left(s, a, s^{\prime}\right)+\gamma \sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_{1}}=s^{\prime}\right] \\ &=\mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma \mathbb{E}_{\tau_{1: T} \sim p(\tau)}\left[\sum_{t=1}^{T-1} \gamma^{t-1} r_{t+1} \mid \tau_{s_{1}}=s^{\prime}\right]\right] \\ &=\mathbb{E}_{a \sim \pi(a \mid s)} \mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^{\pi}\left(s^{\prime}\right)\right] \end{aligned}
Vπ(s)=Eτ0:T∼p(τ)[r1+γt=1∑T−1γt−1rt+1∣τs0=s]=Ea∼π(a∣s)Es′∼p(s′∣s,a)Eτ1:T∼p(τ)[r(s,a,s′)+γt=1∑T−1γt−1rt+1∣τs1=s′]=Ea∼π(a∣s)Es′∼p(s′∣s,a)[r(s,a,s′)+γEτ1:T∼p(τ)[t=1∑T−1γt−1rt+1∣τs1=s′]]=Ea∼π(a∣s)Es′∼p(s′∣s,a)[r(s,a,s′)+γVπ(s′)]
这个公式也称为贝尔曼方程(Bellman Equation),表示当前状态的值函数可以通过下个状态的值函数来计算。
如果给定策略 π ( a ∣ s ) \pi(a|s) π(a∣s),状态转移概率 p ( s ′ ∣ s , a ) p(s′|s, a) p(s′∣s,a)和奖励 r ( s , a , a ′ ) r(s, a, a′) r(s,a,a′),我们就可以通过迭代的方式来计算 V π ( s ) V^{\pi}(s) Vπ(s)。由于存在折扣率,迭代一定步数后,每个状态的值函数就会固定不变。
状态-动作值函数
贝尔曼方程公式中的第二个期望是指初始状态为(s)并进行动作
a
a
a,然后执行策略
π
\pi
π得到的期望总回报,称为状态-动作值函数(State-Action Value Function):
Q
π
(
s
,
a
)
=
E
S
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
V
π
(
s
′
)
]
Q^{\pi}(s, a)=\mathbb{E}_{S^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma V^{\pi}\left(s^{\prime}\right)\right]
Qπ(s,a)=ES′∼p(s′∣s,a)[r(s,a,s′)+γVπ(s′)]
状态-动作值函数也经常称为Q函数(Q-Function)。
状态值函数
V
π
(
s
)
V^{\pi}(s)
Vπ(s)是Q函数
Q
π
(
s
,
a
)
Q^{\pi}(s, a)
Qπ(s,a)关于动作
a
a
a的期望,即
V
π
(
s
)
=
E
a
∼
π
(
a
∣
s
)
[
Q
π
(
s
,
a
)
]
V^{\pi}(s)=\mathbb{E}_{a \sim \pi(a \mid s)}\left[Q^{\pi}(s, a)\right]
Vπ(s)=Ea∼π(a∣s)[Qπ(s,a)]
结合上面两个式子,Q函数可以写为
Q
π
(
s
,
a
)
=
E
s
′
∼
p
(
s
′
∣
s
,
a
)
[
r
(
s
,
a
,
s
′
)
+
γ
E
a
′
∼
π
(
a
′
∣
s
′
)
[
Q
π
(
s
′
,
a
′
)
]
]
Q^{\pi}(s, a)=\mathbb{E}_{s^{\prime} \sim p\left(s^{\prime} \mid s, a\right)}\left[r\left(s, a, s^{\prime}\right)+\gamma \mathbb{E}_{a^{\prime} \sim \pi\left(a^{\prime} \mid s^{\prime}\right)}\left[Q^{\pi}\left(s^{\prime}, a^{\prime}\right)\right]\right]
Qπ(s,a)=Es′∼p(s′∣s,a)[r(s,a,s′)+γEa′∼π(a′∣s′)[Qπ(s′,a′)]]
这是关于Q函数的贝尔曼方程。
值函数的作用:值函数可以看作对策略 π \pi π的评估,因此我们就可以根据值函数来优化策略。假设在状态 s s s,有一个动作 a ∗ a^∗ a∗使得 Q π ( s , a ∗ ) > V π ( s ) Q^{\pi}(s, a∗) > V^{\pi}(s) Qπ(s,a∗)>Vπ(s),说明执行动作 a ∗ a^∗ a∗的回报比当前的策略 π ( a ∣ s ) \pi(a|s) π(a∣s)要高,我们就可以调整参数使得策略中动作 a ∗ a^∗ a∗的概率 p ( a ∗ ∣ s ) p(a^∗ |s) p(a∗∣s)增加。
强化学习常用策略
贪婪策略
贪婪策略是一个确定性的策略,即只有在使得动作值函数 q ∗ ( s , a ) q^*(s,a) q∗(s,a)最大的动作处取概率1,选其他动作的概率为0。
π ( a ∣ s ) = { 1 i f a = arg max a ∈ A q ∗ ( s , a ) 0 otherwise \pi(a|s) = \left\{ \begin{array} {ll} {1}&{if\quad a = \arg \max\limits_{a\in A}q*(s,a)}\\ {0} & {\text{otherwise} } \end{array} \right. π(a∣s)={10ifa=arga∈Amaxq∗(s,a)otherwise
ϵ \epsilon ϵ-greedy策略
π
(
a
∣
s
)
=
{
1
−
ϵ
+
ϵ
∣
A
(
s
)
∣
i
f
a
=
arg
max
a
Q
(
s
,
a
)
ϵ
∣
A
(
s
)
∣
i
f
a
≠
arg
max
a
Q
(
s
,
a
)
\pi(a|s) = \left\{ \begin{array} {ll} {1-\epsilon+\dfrac{\epsilon}{|A(s)|}}&{if\quad a = \arg \max_aQ(s,a)}\\ {\dfrac{\epsilon}{|A(s)|}} & {if \quad a \not=\arg\max_aQ(s,a) } \end{array} \right.
π(a∣s)=⎩⎪⎨⎪⎧1−ϵ+∣A(s)∣ϵ∣A(s)∣ϵifa=argmaxaQ(s,a)ifa=argmaxaQ(s,a)
ϵ
\epsilon
ϵ-greedy策略是强化学习最基本最常用的随机策略。其含义是选取使得动作值函数最大的动作的概率为
1
−
ϵ
+
ϵ
∣
A
(
s
)
∣
1-\epsilon+\dfrac{\epsilon}{|A(s)|}
1−ϵ+∣A(s)∣ϵ,而其他动作的概率为等概率,都为
ϵ
∣
A
(
s
)
∣
\dfrac{\epsilon}{|A(s)|}
∣A(s)∣ϵ。
ϵ
\epsilon
ϵ-greedy策略平衡了利用和探索,其中选取动作值函数最大的部分为利用,其他非最优动作仍有概率为探索部分。
高斯策略
一般高斯策略可以写成 π θ = μ θ + ε , ε ∼ N ( 0 , σ 2 ) \pi_{\theta}=\mu_{\theta}+\varepsilon, \varepsilon\sim N(0,\sigma^2) πθ=μθ+ε,ε∼N(0,σ2)。其中 μ θ \mu_{\theta} μθ为确定性部分, ε \varepsilon ε为零均值的高斯随机噪声。高斯策略也平衡了利用和探索,其中利用由确定性部分完成,探索由 ε \varepsilon ε完成。高斯策略在连续系统的强化学习中应用广泛。
玻尔兹曼策略
对于动作空间是离散的或者动作空间并不大的情况,可采用玻尔兹曼分布作为随即策略,即:
π
(
a
∣
s
,
θ
)
=
exp
(
Q
(
s
,
a
;
θ
)
)
Σ
b
exp
(
Q
(
s
,
b
;
θ
)
)
\pi(a|s,\theta) = \dfrac{\exp(Q(s,a;\theta))}{\Sigma_b \exp(Q(s,b;\theta))}
π(a∣s,θ)=Σbexp(Q(s,b;θ))exp(Q(s,a;θ))
其中
Q
(
s
,
a
,
θ
)
Q(s,a,\theta)
Q(s,a,θ)为动作值函数。该策略的含义是,动作值函数大的动作被选中的概率大,动作值函数小的动作被选中的概率小。
玻尔兹曼策略
对于动作空间是离散的或者动作空间并不大的情况,可采用玻尔兹曼分布作为随即策略,即:
π
(
a
∣
s
,
θ
)
=
exp
(
Q
(
s
,
a
;
θ
)
)
Σ
b
exp
(
Q
(
s
,
b
;
θ
)
)
\pi(a|s,\theta) = \dfrac{\exp(Q(s,a;\theta))}{\Sigma_b \exp(Q(s,b;\theta))}
π(a∣s,θ)=Σbexp(Q(s,b;θ))exp(Q(s,a;θ))
其中
Q
(
s
,
a
,
θ
)
Q(s,a,\theta)
Q(s,a,θ)为动作值函数。该策略的含义是,动作值函数大的动作被选中的概率大,动作值函数小的动作被选中的概率小。
参考文献
- 《动手学强化学习》,张伟楠、沈键、余勇;
- 《神经网络与深度学习》,邱锡鹏。