通常用马尔科夫决策过程Markov Decision process,MDP描述强化学习问题。一个基本的MDP问题可以用一个五元组 ( S , A , P , R , γ ) (S,A,P,R,\gamma) (S,A,P,R,γ)来表示,其中
P a ( s , s ′ ) = P ( s t + 1 = s ′ ∣ s t = s , a t = a ) P_a(s, s')=P(s_{t+1}=s'|s_t=s, a_t=a) Pa(s,s′)=P(st+1=s′∣st=s,at=a) 表示在状态 s s s下执行 a a a动作,从状态 s s s转移到 s ′ s' s′的概率
用来衡量当前奖励与未来奖励,可以理解为权重,一般会将未来的奖励权重调低
这样,MDP的目标就是找到一种 π ( s ) \pi(s) π(s),使得agent在状态 s s s下能做出对应动作 a a a,使得回报 G t G_t Gt能够达到最大
(1) G t = R t + 1 + γ 1 R t + 2 + γ 2 R t + 3 + . . . = ∑ k = 0 ∞ γ k R t + k + 1 \begin{aligned} G_t &= R_{t+1}+\gamma^1R_{t+2}+\gamma^2R_{t+3}+...\\ &= \sum^{\infty}_{k=0}{\gamma^kR_{t+k+1}} \end{aligned} \tag{1} Gt=Rt+1+γ1Rt+2+γ2Rt+3+...=k=0∑∞γkRt+k+1(1)
价值函数(Value Function),定义为回报的期望,表示当前状态的未来潜在价值
(2) V ( s ) = E [ G t ∣ S t = s ] V(s)=E[G_t|S_t=s] \tag{2} V(s)=E[Gt∣St=s](2)
Reward(奖励)指agent采取某个动作后的奖励,是短期的即时的奖励
Return(回报)指各个短期奖励加权之和可以视为长远的奖励
Value(价值)指的是上述长远奖励的期望
当前,强化学习的有两种思路:基于策略(Policy)函数的强化学习和基于价值(Value)函数的强化学习。
将公式(1)代入公式(2),得
(3) V ( s ) = E [ G t ∣ S t = s ] = E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . ∣ S t = s ] = E [ R t + 1 + γ ( R t + 2 + γ R t + 3 + . . . ) ∣ S t = s ] = E [ R t + 1 + γ G t + 1 ∣ S t = s ] \begin{aligned} V(s)&=E[G_t|S_t=s]\\ &=E[R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+...|S_t=s]\\ &=E[R_{t+1}+\gamma (R_{t+2}+\gamma R_{t+3}+...)|S_t=s]\\ &=E[R_{t+1}+\gamma G_{t+1}|S_t=s] \end{aligned}\tag{3} V(s)=E[Gt∣St=s]=E[Rt+1+γRt+2+γ2Rt+3+...∣St=s]=E[Rt+1+γ(Rt+2+γRt+3+...)∣St=s]=E[Rt+1+γGt+1∣St=s](3)
又 V ( s t + 1 ) = E [ G t + 1 ] V(s_{t+1})=E[G_{t+1}] V(st+1)=E[Gt+1],所以有
(4) V ( S ) = E [ R t + 1 + γ G t + 1 ∣ S t = s ] = E [ R t + 1 + γ V ( S t + 1 ) ∣ S t = s ] \begin{aligned} V(S)&=E[R_{t+1}+\gamma G_{t+1}|S_t=s]\\ &=E[R_{t+1}+\gamma V(S_{t+1})|S_t=s] \end{aligned} \tag{4} V(S)=E[Rt+1+γGt+1∣St=s]=E[Rt+1+γV(St+1)∣St=s](4)
上式即Bellman方程。从Bellman方程可以发现一个规律:当前状态的价值(Value)与两个因素有关:1) 当前的奖励(Reward);2) 下一个迭代时刻的价值(Value)。
假设已知了状态转移概率矩阵P和奖励函数R,结合Bellman方程,有
(5) π ( s ) = a r g m a x a ∑ s ′ P a ( s , s ′ ) [ R a ( s , s ′ ) + γ ⋅ V ( S ′ ) ] = a r g m a x a E [ R a ( s , s ′ ) + γ ⋅ V ( s ′ ) ] = a r g m a x a V ( s ) \begin{aligned} \pi(s)&= \mathop{argmax}_{a} \sum_{s'}P_a(s,s')[R_a(s,s')+\gamma\cdot V(S')]\\ &= \mathop{argmax}_{a} E[R_a(s,s')+\gamma \cdot V(s')]\\ &= \mathop{argmax}_{a} V(s) \end{aligned} \tag{5} π(s)=argmaxas′∑Pa(s,s′)[Ra(s,s′)+γ⋅V(S′)]=argmaxaE[Ra(s,s′)+γ⋅V(s′)]=argmaxaV(s)(5)
在状态 s s s,agent会以某种概率执行a,从而到达状态 s ′ s' s′。于是,可根据新的状态计算相应的Reward和Value。agent需要在当前状态 s s s下做出一个动作a,使得价值(Value)达到最大。
为了后续方便,将公式(5)最后一行针对价值 V ( s ) V(s) V(s)的展开部分独立出来,有
(6) V ( s ) = E [ R a ( s , s ′ ) + γ ⋅ V ( s ′ ) ] = ∑ s ′ P a ( s , s ′ ) [ R a ( s , s ′ ) + γ ⋅ V ( s ′ ) ] \begin{aligned} V(s) &= E[R_a(s,s')+\gamma \cdot V(s')] \\ &= \sum_{s'}P_a(s,s')[R_a(s,s')+\gamma \cdot V(s')] \end{aligned} \tag{6} V(s)=E[Ra(s,s′)+γ⋅V(s′)]=s′∑Pa(s,s′)[Ra(s,s′)+γ⋅V(s′)](6)
(7) V i + 1 ( s ) = max a ∑ s ′ P a ( s , s ′ ) [ R a ( s , s ′ ) + γ ⋅ V i ( s ′ ) ] V_{i+1}(s)=\max_{a}\sum_{s'}P_a(s,s')[R_a(s,s')+\gamma \cdot V_i(s')] \tag{7} Vi+1(s)=amaxs′∑Pa(s,s′)[Ra(s,s′)+γ⋅Vi(s′)](7)
基于价值迭代的求解方法中,迭代过程中仅仅更新价值(Value)
Initialization
array V V V arbitrary(e.g. V ( s ) = 0 V(s)=0 V(s)=0 for all s ∈ S + s \in S^+ s∈S+)
repeat
Δ ← 0 \Delta \leftarrow 0 Δ←0
for each s ∈ S s \in S s∈S
v ← V ( s ) v \leftarrow V(s) v←V(s) #当前状态的价值
V ( s ) ← max a ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ ⋅ V ( s ′ ) ] V(s) \leftarrow \max_{a} \sum_{s',r} p(s',r|s,a) [r+\gamma \cdot V(s')] V(s)←maxa∑s′,rp(s′,r∣s,a)[r+γ⋅V(s′)]#在所有可能的动作中找出期望价值最大的案例
Δ ← max ( Δ , ∣ v − V ( s ) ∣ ) \Delta \leftarrow \max(\Delta ,|v-V(s)|) Δ←max(Δ,∣v−V(s)∣) #当前状态价值与新状态价值的差距的最大值
end for
until Δ < θ , θ \Delta<\theta,\theta Δ<θ,θ is a small positive umber #状态趋于稳定
output: a deterministic policy π ( s ) \pi (s) π(s)
价值迭代方法在求解时,会遍历状态集S,将其具有最大价值所对应的动作保留下来形成策略 π ( s ) \pi (s) π(s)
与价值迭代不同,策略迭代的方法在迭代过程中要同时更新价值和策略。通常它分为如下两个主要步骤
对应公式(6)
(6) V ( s ) = E [ R a ( s , s ′ ) + γ ⋅ V ( s ′ ) ] = ∑ s ′ P a ( s , s ′ ) [ R a ( s , s ′ ) + γ ⋅ V ( s ′ ) ] \begin{aligned} V(s) &= E[R_a(s,s')+\gamma \cdot V(s')] \\ &= \sum_{s'}P_a(s,s')[R_a(s,s')+\gamma \cdot V(s')] \end{aligned} \tag{6} V(s)=E[Ra(s,s′)+γ⋅V(s′)]=s′∑Pa(s,s′)[Ra(s,s′)+γ⋅V(s′)](6)
策略评估的内涵就是在给定的策略下,迭代更新价值(Value)直至收敛,从而得到稳定的价值函数。这么做的意义在于更好地估计当前策略的价值(Value)。
对应公式(5)
(5) π ( s ) = a r g m a x a ∑ s ′ P a ( s , s ′ ) [ R a ( s , s ′ ) + γ ⋅ V ( S ′ ) ] = a r g m a x a E [ R a ( s , s ′ ) + γ ⋅ V ( s ′ ) ] = a r g m a x a V ( s ) \begin{aligned} \pi(s)&= \mathop{argmax}_{a} \sum_{s'}P_a(s,s')[R_a(s,s')+\gamma\cdot V(S')]\\ &= \mathop{argmax}_{a} E[R_a(s,s')+\gamma \cdot V(s')]\\ &= \mathop{argmax}_{a} V(s) \end{aligned} \tag{5} π(s)=argmaxas′∑Pa(s,s′)[Ra(s,s′)+γ⋅V(S′)]=argmaxaE[Ra(s,s′)+γ⋅V(s′)]=argmaxaV(s)(5)
在策略改进步骤中,代理利用步骤1中更新后的价值(Value)函数,更新每种状态下的策略并迭代,直到策略稳定下来。其迭代算法描述如下所示:
对于每个状态s不断迭代直至状态稳定,记录其价值
然而,现实场景下概率转移矩阵很难获得,所以人们需要采用Model-Free的方法来找到最佳Policy。譬如Q-learning,Policy Gradient,Actor-Critic。
强化学习笔记