强化学习(一)——马尔科夫决策过程(MDP)的评估与控制

MDP(Markov Decision Process)

  1. 贝尔曼方程(Bellman Equation)

贝尔曼方程由MRP(Markov Reward Process)中得出,描述状态之间价值函数的计算关系:
V ( s ) = R + γ ∑ s ′ ∈ S P ( s ′ ∣ s ) V ( s ′ ) V(s)=R+\gamma\sum_{s'\in{S}}{P(s'|s)}V(s') V(s)=R+γsSP(ss)V(s)
此为强化学习的一个重要基石。

  1. 贝尔曼期望方程(Bellman Expectation Equation)

在MDP中,引入了动作 a a a,对应的策略函数 π \pi π和动作-价值函数(Q函数), π ( s , a ) \pi(s,a) π(s,a)表示在当前状态 s s s执行动作 a a a的概率大小, Q ( s , a ) Q(s,a) Q(s,a)表示在当前状态 s s s执行动作 a a a可以获得价值。

Q函数与 V V V函数的计算关系为:
Q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P ( s ′ ∣ s ) V π ( s ′ ) (1) Q^{\pi}(s,a)=R_s^a+\gamma{\sum_{s'\in{S}}P(s'|s)V^{\pi}(s')}\tag{1} Qπ(s,a)=Rsa+γsSP(ss)Vπ(s)(1)

V π ( s ) = ∑ a ∈ A π ( s , a ) Q π ( s , a ) (2) V^{\pi}(s)=\sum_{a\in{A}}\pi(s,a)Q^{\pi}(s,a)\tag{2} Vπ(s)=aAπ(s,a)Qπ(s,a)(2)

贝尔曼期望方程由MDP中得出,描述状态之间价值函数,以及动作-价值函数的计算关系:
V π ( s ) = E [ R t + 1 + γ V π ( s t + 1 ) ∣ s t = s ] Q π ( s , a ) = E [ R t + 1 + γ Q π ( s t + 1 , a t + 1 ) ∣ s t = s , a t = a ] V^{\pi}(s)=\mathbb{E}[R_{t+1}+\gamma{V^{\pi}(s_{t+1})}|s_t=s] \\ Q^{\pi}(s,a)=\mathbb{E}[R_{t+1}+\gamma{Q^{\pi}(s_{t+1},a_{t+1})|s_t=s,a_t=a}] Vπ(s)=E[Rt+1+γVπ(st+1)st=s]Qπ(s,a)=E[Rt+1+γQπ(st+1,at+1)st=s,at=a]
利用式(1)和(2)可以得出 V ( s ) V(s) V(s) V ( s ′ ) V(s') V(s) Q ( s , a ) Q(s,a) Q(s,a) Q ( s ′ , a ′ ) Q(s',a') Q(s,a)的计算关系,具体地:

  • 将(1)代入(2):

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

  • 将(2)代入(1):

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

  1. 策略评估(Policy Evaluation)

使用贝尔曼期望方程来评价一个策略的价值。

利用策略 π \pi π,迭代计算出状态价值函数,直至其值收敛。其计算公式为:
V π ( s ) = ∑ a ∈ A π ( a ∣ s ) ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V π ( s ′ ) ) V^{\pi}(s)=\sum_{a\in{A}}\pi{(a|s)}\bigg(R(s,a)+\gamma{\sum_{s'\in{S}}P(s'|s,a)V^{\pi}(s')}\bigg) Vπ(s)=aAπ(as)(R(s,a)+γsSP(ss,a)Vπ(s))

当MDP达到稳态即上述过程收敛时,其表示该MDP被解决。此时最优状态价值函数表达式为:
V ∗ ( s ) = max ⁡ π V π ( s ) V^*(s)=\max_{\pi}V^{\pi}(s) V(s)=πmaxVπ(s)
其表示所有的策略 π \pi π的状态价值的最大值。此时,最优策略表达式为:
π ∗ ( s ) = arg ⁡ max ⁡ π V π ( s ) \pi^*{(s)}=\arg\max_{\pi}V^{\pi}(s) π(s)=argπmaxVπ(s)
显然,最有状态价值函数是唯一的,但最优策略可能不唯一。

最优策略与最优动作-状态价值函数有密切的关系,我们可以通过最优动作-状态价值函数直接获得最优策略,具体地:
π ∗ ( a ∣ s ) = { 1 , i f   a = a r g   m a x a ∈ A Q ∗ ( s , a ) 0 , o t h e r w i s e \pi^*{(a|s)}=\begin{cases}1,\quad\rm{if\ a=arg\ max_{a\in{A}}Q^*(s,a)}\\ 0,\quad\rm{otherwise} \end{cases} π(as)={1,if a=arg maxaAQ(s,a)0,otherwise
因此,一旦知道了最优动作-价值函数,就可以得到最优策略。

  1. 策略迭代(Policy Iteration)

策略迭代用于MDP的控制过程,策略迭代分为两个步骤,策略评估和策略提升。策略评估即上述的过程——利用策略 π \pi π计算出状态价值函数。策略提升为贪心地选择当前最优的策略,即
π ′ = g r e e d y ( V π ) \pi'=\rm{greedy}(V^{\pi}) π=greedy(Vπ)
策略迭代的一次迭代流程为:
π → V → Q → arg ⁡ max ⁡ π Q → π ′ \pi\to{V}\to{Q}\to{\arg\max_{\pi}Q}\to\pi' πVQargπmaxQπ
策略迭代的计算表达式为:

  • 策略评估——利用贝尔曼期望方程计算动作-价值函数

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

  • 策略提升——贪心地从动作-价值函数中选取价值最大的动作作为新的策略

π i + 1 = arg ⁡ max ⁡ a Q π i ( s , a ) \pi_{i+1}=\arg\max_{a}Q^{\pi{i}}(s,a) πi+1=argamaxQπi(s,a)

Shutton书中有关于此贪心的提升为单调递增的证明,具体见76页。

  1. 贝尔曼最优方程(Bellman Optimality Equation)

当上述策略迭代过程收敛即达到稳态后,此时状态间满足的关系即为贝尔曼最优方程。其表达式为:
V ∗ ( s ) = max ⁡ a Q ∗ ( s , a ) (1) V^*(s)=\max_{a}{Q^*(s,a)}\tag{1} V(s)=amaxQ(s,a)(1)

Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) (2) Q^*(s,a)=R(s,a)+\gamma\sum_{s'\in{S}}P(s'|s,a)V^*(s')\tag{2} Q(s,a)=R(s,a)+γsSP(ss,a)V(s)(2)

将(1)代入(2)可以得到 Q ∗ ( s , a ) Q^*(s,a) Q(s,a) Q ∗ ( s ′ , a ′ ) Q^*(s',a') Q(s,a)的计算关系:
Q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) max ⁡ a Q ∗ ( s ′ , a ′ ) Q^*(s,a)=R(s,a)+\gamma\sum_{s'\in{S}}P(s'|s,a)\max_a{Q^*(s',a')} Q(s,a)=R(s,a)+γsSP(ss,a)amaxQ(s,a)
同理,将(2)代入(1)也可以得到 V ∗ ( s ) V^*(s) V(s) V ∗ ( s ′ ) V^*(s') V(s)的计算关系:
V ∗ ( s ) = max ⁡ a ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ∗ ( s ′ ) ) V^*(s)=\max_a\bigg({R(s,a)+\gamma\sum_{s'\in{S}}P(s'|s,a)V^*(s')}\bigg) V(s)=amax(R(s,a)+γsSP(ss,a)V(s))

  1. 价值迭代(Value Iteration)

由上述贝尔曼最优方程,我们可以直接得到 V ∗ ( s ) V^*(s) V(s) V ∗ ( s ′ ) V*(s') V(s)的关系。价值迭代的原理为:直接利用此关系迭代价值函数,即假设MDP处于稳态。其迭代关系为:
V ( s ) ← max ⁡ a ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) V ( s ′ ) ) V(s)\gets{\max_{a}\bigg(R(s,a)+\gamma\sum_{s'\in{S}}P(s'|s,a)V(s')\bigg)} V(s)amax(R(s,a)+γsSP(ss,a)V(s))
对于价值迭代,其不需要显示地计算策略,只有状态价值函数的迭代过程。如果需要最优策略时,只需要将上述迭代过程展开,即添加动作-状态函数,最后迭代过程结束后利用动作-价值函数即可得到最优策略,具体过程为:

# 迭代过程
for k in range(1, H):
	for s in S:
		Q(s,a) = R(s,a) + gamma * sum_{s_} P(s_|s,a) * V(s_)
		V(s) = max_{a} Q(s,a)
# 获得最优策略
for s in S:
	pi(s) = arg max_{a} Q(s,a)
  1. 总结(Summary)
  • 策略迭代与价值迭代

两种方法都用于在已知MDP模型参数的情况下,求解MDP。

策略迭代分为两个步骤:策略评估 + 策略提升

价值迭代直接迭代计算状态价值函数,其步骤为:迭代价值函数 + 最后反解得到最优策略

  • 算法与原理方程的对应关系

上述的策略评估,策略迭代和价值迭代都属于动态规划(Dynamic Programming)算法。其中,策略评估用于MDP的预测,而策略迭代和价值迭代用于MDP的控制。其与贝尔曼方程的关系如下:

问题贝尔曼方程算法
预测贝尔曼期望方程迭代策略评估
控制贝尔曼期望方程策略迭代
控制贝尔曼最优方程价值迭代
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值