本文将总结 强化学习中的一个重要基础知识,Bellman Equation。
首先了解一下何为 强化学习中的value based 方法,我们知道Agent的目标是:在生命周期内,执行一个序列的action,且该序列(马尔科夫奖励链) a c t i o n action action 所获取的 r e w a r d reward reward 之和(可以是加上discount factor γ \gamma γ 之后的求和)能达到最大。例如在时刻 t t t 时,Agent在马尔科夫奖励链上从 t t t 时刻以后未来所有有衰减的累积奖励(折现的奖励)总和。 如下:
G t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + . . . = ∑ j = 0 T γ j r t + j + 1 G_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} + ...=\sum_{j=0}^{T} \gamma^j r_{t+j+1} Gt=rt+1+γrt+2+γ2rt+3+...=j=0∑Tγjrt+j+1
上式中,如果 γ = 0 \gamma = 0 γ=0,则表示Agent放弃长远的收益,而只在乎即时的 r e w a r d reward reward,同理如果 γ = 1 \gamma = 1 γ=1,则表示Agent将长远收益和当前即时收益放在同等重要位置。通常情况下 γ ∈ ( 0 , 1 ) \gamma \in (0,1) γ∈(0,1),也即是当 γ > 0 \gamma >0 γ>0 时,是非贪心的。
可以重写上述公式如下:
G t = r t + 1 + γ r t + 2 + γ 2 r t + 3 + . . . + γ T − 1 r T G_t = r_{t+1} + \gamma r_{t+2} + \gamma^2 r_{t+3} +...+\gamma^{T-1} r_{T} Gt=rt+1+γrt+2+γ2rt+3+...+γT−1rT
= r t + 1 + γ ( r t + 2 + γ r t + 3 + . . . + γ T − 2 r T ) =r_{t+1} + \gamma(r_{t+2} + \gamma r_{t+3}+...+\gamma^{T-2} r_{T}) =rt+1+γ(rt+2+γrt+3+...+γT−2rT)
= r t + 1 + γ ( G t + 1 ) = r_{t+1} + \gamma (G_{t+1}) =rt+1+γ(Gt+1)
这样就可以通过递归的形式计算G
大部分强化学习算法都涉及到估计 状态价值函数(Value Function),该函数的自变量为 状态 或 状态-动作对,这种称为基于值的学习,也即 value-based。
通常情况下,时刻t后执行序列可能有多条 马尔科夫奖励,我们需要使用状态价值函数来评估状态 s s s 的长期价值。
马尔科夫奖励(Markov Reward Process,MRP)过程定义式如下:
是一个由 < S , P , R , γ ><S,P,R,γ> 组成的元组(tuple):
S S S 是有限的状态
P P P 是状态转移概率矩阵 P s s ′ = P ( S t + 1 = S ′ ∣ S t = S ) P_{ss'} = P(S_{t+1} = S'|S_t = S) Pss′=P(St+1=S′∣St=S)
R R R 是奖励函数 R s = E [ R t + 1 ∣ S t = s ] R_s = E[R_{t+1}|S_t=s] Rs=E[Rt+1∣St=s]
γ \gamma γ 是衰减系数, γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
V-function 可以称为状态价值函数,当Agent遵循策略 π \pi π 时,根据return G(累积奖赏),评估某个特定状态的好坏。也就是 v − f u n c t i o n v-function v−function 可以定义为从state开始的未来累积奖赏期望值。故V-function 可表示如下:
v π ( s ) = E π [ G t ∣ s = s t ] = E π [ ∑ j = 0 T γ j r t + j + 1 ∣ s = s t ] v_{\pi}(s)=E_{\pi}[G_t|s=s_t] = E_{\pi}[\sum_{j=0}^{T} \gamma^{j}r_{t+j+1}|s=s_t] vπ(s)=Eπ[Gt∣s=st]=Eπ[j=0∑Tγjrt+j+1∣s=st]
注意v-function自变量是状态 s s s
为了更好的理解 V − f u n c t i o n V-function V−function,这里以只有三个状态的环境举例:
定义reward:
上述环境始终是确定的,每一个episode都是从状态0开始,当到达状态1或者状态2时,该episode结束。
现在的问题是 V ( 0 ) V(0) V(0) 是多少?根据上面讲到的 v − f u n c t i o n v-function v−function 公式:
v π ( s ) = E π [ ∑ j = 0 T γ j r t + j + 1 ∣ s = s t ] v_{\pi}(s)= E_{\pi}[\sum_{j=0}^{T} \gamma^{j}r_{t+j+1}|s=s_t] vπ(s)=Eπ[j=0∑Tγjrt+j+1∣s=st]
可知 V ( 0 ) V(0) V(0) 也与策略(policy) π \pi π 关系很大,例如有如下策略:
分别根据以上policy计算一个 e p i s o d e episode episode 的 V ( 0 ) V(0) V(0):
为了能是 t o t a l r e w a r d total\ reward total reward 尽可能的大,对于Agent来说,最优的policy是策略2,也即始终向右移动。
上述简单的环境,让人误以为采用 “贪婪”策略,能得到收益最大的reward。然而对于较为复杂的环境并非如此,例如下面有四个状态的环境:
同上面一样,每次都是从状态0开始,当到达边界是,一个episode结束,reward变化如下:
显然这时,每个策略的 V ( 0 ) V(0) V(0) 如下:
显然这时候,策略1的收益最大,而策略2的收益最小了。
我们将状态价值函数,扩展到状态-行动对,为每个状态-行动 对 定义一个值,该值为行动价值函数。该函数表示Agent在遵循策略 π \pi π情况下,在状态 s s s下,执行动作 a a a的预计获取累积奖赏的期望值,用 Q π ( s , a ) Q_{\pi}(s,a) Qπ(s,a)。
Q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] = E π [ ∑ j = 0 T γ j r t + j + 1 ∣ S t = s , A t = a ] Q_{\pi}(s,a)=E_{\pi}[G_t|S_t=s, A_t=a]=E_{\pi}[\sum_{j=0}^{T} \gamma^j r_{t+j+1}|S_t=s, A_t=a] Qπ(s,a)=Eπ[Gt∣St=s,At=a]=Eπ[j=0∑Tγjrt+j+1∣St=s,At=a]
我们再来定义policy在状态 s s s 下 执行动作 a a a 的概率为 π ( a ∣ s ) \pi(a|s) π(a∣s),则有
∑ a π ( a ∣ s ) = 1 \sum_a \pi(a|s) = 1 a∑π(a∣s)=1
这就引入了动作概率,也即策略函数。
再来看看 Q-function 和 V-function 的关系:
V π ( s ) = ∑ a π ( a ∣ s ) ⋅ Q π ( s , a ) V_{\pi}(s) = \sum_a \pi(a|s) \cdot Q_{\pi} (s,a) Vπ(s)=a∑π(a∣s)⋅Qπ(s,a)
马尔可夫决策过程(Markov decision process,MDP)是在马尔可夫奖励(MRP)过程的基础上增加了决策(decisions/actions),是一个由 < S , A , P , R , γ >
<S,A,P,R,γ>组成的元组(tuple):
S S S 是有限的状态
A A A 是有限的决策/动作集
P P P 是状态转移概率矩阵 P s s ′ a = P ( S t + 1 = S ′ ∣ S t = S , A t = a ) P_{ss'}^a = P(S_{t+1} = S'|S_t = S, A_t=a) Pss′a=P(St+1=S′∣St=S,At=a)
R R R 是奖励函数 R s = E [ R t + 1 ∣ S t = s , A t = a ] R_s = E[R_{t+1}|S_t=s, A_t=a] Rs=E[Rt+1∣St=s,At=a]
γ \gamma γ 是衰减系数, γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
贝尔曼方程(Bellman Equation)在强化学习文献中随处可见,是许多强化学习算法的核心要素之一。我们可以说,贝尔曼方程将价值函数分解为两部分,即即时reward和未来value(经过discounted)。
也即
V ( s t ) = E π [ ∑ j = 0 T γ j r t + j + 1 ∣ s = s t ] = E [ R t + 1 + γ V ( s t + 1 ) ∣ s t = s ] V(s_t) = E_{\pi}[\sum_{j=0}^{T} \gamma^{j}r_{t+j+1}|s=s_t] = E[R_{t+1}+\gamma V(s_{t+1})|s_t = s] V(st)=Eπ[j=0∑Tγjrt+j+1∣s=st]=E[Rt+1+γV(st+1)∣st=s]
上述公式就是贝尔曼方程(Bellman Equation)
为了更好的说明 Bellman Equation,以上图进行举例,上图中 P P P 表示在状态 s s s 下执行动作 a a a,得到状态 s ′ s' s′ 的概率(with reward r)。
我们以贝尔曼方程(Bellman Equation)来表示 State-value function,如下:
V π ( s ) = ∑ a π ( a ∣ s ) ⋅ ∑ s ′ P s s ′ a ( r ( s , a ) + γ V π ( s ′ ) ) V_{\pi}(s) = \sum_a \pi(a|s) \cdot \sum_{s'} P^{a}_{ss'}(r(s,a)+\gamma V_{\pi}(s')) Vπ(s)=a∑π(a∣s)⋅s′∑Pss′a(r(s,a)+γVπ(s′))
同样的,也可以以贝尔曼方程(Bellman Equation)来表示 Action-value function,如下:
Q π = ∑ s ′ P s s ′ a ( r ( s , a ) + γ ⋅ ∑ a ′ π ( a ′ ∣ s ′ ) ⋅ Q π ( s ′ , a ′ ) ) = ∑ s ′ P s s ′ a ( r ( s , a ) + γ V π ( s ′ ) ) Q_{\pi} = \sum_{s'}P^{a}_{ss'}(r(s,a)+\gamma \cdot \sum_{a'} \pi(a'|s') \cdot Q_{\pi}(s', a'))= \sum_{s'}P^{a}_{ss'}(r(s,a) + \gamma V_{\pi}(s')) Qπ=s′∑Pss′a(r(s,a)+γ⋅a′∑π(a′∣s′)⋅Qπ(s′,a′))=s′∑Pss′a(r(s,a)+γVπ(s′))
上面说过,Agent学习的目的是使得total reward最大化,现在我们就需要求解total reward最大时的策略 π ∗ \pi^* π∗,那么这个 π ∗ \pi^* π∗ 如何定义呢?
显然符合上述条件的 π ∗ \pi^* π∗ 不一定是唯一的,可以存在多个。
则最优状态价值函数为:
V ∗ ( s ) = m a x π V π ( s ) V_{*}(s)=max_{\pi}V_{\pi}(s) V∗(s)=maxπVπ(s)
上述公式表示,寻找一个最优策略 π \pi π,使得 V ( s ) V(s) V(s) 能达到最大,也即是Agent沿着策略 π ∗ \pi^* π∗,在状态 s s s 能获得最大的累积期望奖励。
同样的对于最优动作价值函数为:
Q ∗ ( s , a ) = m a x π Q π ( s , a ) Q_{*}(s,a)=max_{\pi} Q_{\pi}(s,a) Q∗(s,a)=maxπQπ(s,a)
上述公式表示,寻找一个最优策略 π \pi π,使得 Q ( s , a ) Q(s,a) Q(s,a) 能达到最大,也即是在状态 s s s 下采用动作 a a a 能获得最大的累积期望奖励。
上面提到的 V ( s ) V(s) V(s) 与 Q ( s , a ) Q(s,a) Q(s,a) 转换公式:
V π ( s ) = ∑ a π ( a ∣ s ) ⋅ Q π ( s , a ) V_{\pi}(s) = \sum_a \pi(a|s) \cdot Q_{\pi} (s,a) Vπ(s)=a∑π(a∣s)⋅Qπ(s,a)
那么 V ∗ ( s ) V_{*}(s) V∗(s) 与 Q ∗ ( s , a ) Q_{*}(s,a) Q∗(s,a) 转换公式如下:
V π ∗ ( s ) = ∑ a π ∗ ( a ∣ s ) ⋅ Q π ∗ ( s , a ) V_{\pi^*}(s) = \sum_a \pi^{*}(a|s) \cdot Q_{\pi^*} (s,a) Vπ∗(s)=a∑π∗(a∣s)⋅Qπ∗(s,a)
显然对于这样最优的 π ∗ \pi^* π∗有:
π ∗ ( a ∣ s ) = { 1 i f a = a r g m a x a ∈ A Q π ∗ ( s , a ) 0 otherwise \pi^*(a|s)= \begin{cases} 1& if\ a = \underset {a \in A}{argmax} Q_{\pi^*}(s,a)\\ 0 & \text{otherwise} \end{cases} π∗(a∣s)=⎩⎨⎧10if a=a∈AargmaxQπ∗(s,a)otherwise
故有:
V π ∗ ( s ) = m a x a Q π ∗ ( s , a ) V_{\pi^*}(s) =max_{a} Q_{\pi^*} (s,a) Vπ∗(s)=maxaQπ∗(s,a)
通过上述的公式推导,我们可以进一步得到:
V ∗ ( s ) = m a x a ∑ s ′ P s s ′ a ( r ( s , a ) + γ V ∗ ( s ′ ) ) V_{*}(s) = \underset {a}{max} \sum_{s'} P^{a}_{ss'}(r(s,a)+\gamma V_{*}(s')) V∗(s)=amaxs′∑Pss′a(r(s,a)+γV∗(s′))
Q ∗ ( s , a ) = ∑ s ′ P s s ′ a ( r ( s , a ) + γ m a x a ′ Q ∗ ( s ′ , a ′ ) ) Q_{*}(s,a) = \sum_{s'} P^{a}_{ss'}(r(s,a)+\gamma \underset {a'}{max} Q_{*}(s', a')) Q∗(s,a)=s′∑Pss′a(r(s,a)+γa′maxQ∗(s′,a′))’