强化学习笔记专栏传送
上一篇:强化学习RL学习笔记5-马尔可夫决策过程(MDP)(2)
下一篇:强化学习RL学习笔记7-表格型方法(tabular methods)
目录
前言
强化学习(Reinforcement Learning, RL),又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体(agent)在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题 。
本文是笔者对强化学习的一点学习记录,成文于笔者刚开始接触强化学习期间,主要内容参考LeeDeepRL-Notes,学习期间很多概念和理论框架还很不成熟,若文中存在错误欢迎批评指正,也欢迎广大学习者沟通交流、共同进步。
Markov Decision Process(MDP)(马尔可夫决策过程)
(接上篇)
11.MDP Control
如果只有一个 MDP,如何寻找一个最佳策略,可以得到一个最佳价值函数(Optimal Value Function)。
Optimal Value Function 的定义如下式所示: v ∗ ( s ) = m a x π v π ( s ) v^*(s)=max_\pi v^\pi(s) v∗(s)=maxπvπ(s)
即找到一种 policy π \pi π 让每个状态的价值最大。在这种极大化情况上面,我们得到的策略就可以说它是最佳策略(optimal policy),此过程即 MDP control 。如下式所示: π ∗ ( s ) = a r g m a x π v π ( s ) \pi^*(s)=argmax_\pi v^\pi(s) π∗(s)=argmaxπvπ(s)
Optimal policy 使每个状态的价值函数都取最大值。所以如果可以得到一个 optimal value function,就可以说某个 MDP 的环境被解。但可能有多个最佳的 policy,即多个 policy 取得相同的最佳价值。
取得最佳价值函数后,可以通过对 Q 函数极大化得到最佳策略。 所有东西都收敛后,因为 Q 函数是状态和动作的函数,所以在某个状态采取某个动作可以使得 Q 函数最大化,那么这个动作就应该是最佳的动作。所以如果能优化出一个 Q 函数,就可以直接在 Q 函数上取一个让 Q 函数最大化的 action 的值,即提取出了最佳 policy。
MDP control 过程最简单的方法是 穷举法 。假设状态和动作都是有限的,每个状态可以采取 A 种动作的策略,总共就是 ∣ A ∣ ∣ S ∣ \mid A\mid^{\mid S\mid} ∣A∣∣S∣ 个可能的 policy。将所有 policy 穷举一遍,算出每种 policy 的 value function,对比就可以找到最佳策略。
但穷举效率很低,一般采用两种常见的方法:policy iteration 和 value iteration。
(1)Policy Iteration
Policy iteration 由两个步骤组成:policy evaluation 和 policy improvement。
- 第一个步骤是 policy evaluation,当前优化 policy π \pi π 时,优化过程中得到最新的 policy。先保持这个 policy 不变,然后估计价值。给定当前的 policy function 估计 v 函数。
- 第二个步骤是 policy improvement,得到 v 函数过后,可以进一步推算出它的 Q 函数。得到 Q 函数过后,直接 Q 函数取极大化,通过 Q 函数上做贪心搜索进一步改进策略。
- 这两个步骤一直迭代进行,所以在 policy iteration 里面,初始化时有一初始的 V 和 π \pi π ,然后在这两个过程间迭代,直到最终收敛。
policy improvement 中,由 V 推出 Q 的过程是通过 Q-function Bellman Equation 实现的:
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'\mid s,a)V^{\pi i}(s')
qπi(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)Vπi(s′)
然后在每个状态取使 Q 函数得到最大值的 action,从而得到最佳 Q 函数对应的 policy : π i + 1 ( s ) = a r g m a x a q π i ( s , a ) \pi_{i+1}(s)=argmax_aq^{\pi i}(s,a) πi+1(s)=argmaxaqπi(s,a)
不难得到一个等式:
v
π
(
s
)
=
max
a
∈
A
q
π
(
s
,
a
)
v^\pi(s)=\max_{a\in A}q^\pi(s,a)
vπ(s)=a∈Amaxqπ(s,a)
上式被称为 Bellman optimality equation,该式表达了最佳策略下的某个状态的价值必须等于在该状态下采取最佳动作得到的回报的期望。
任一 policy 下的 Bellman optimality equation: v ∗ ( s ) = max a q ∗ ( s , a ) v^*(s)=\max_aq^*(s,a) v∗(s)=amaxq∗(s,a)
Q 函数的 Bellman equation: q ∗ ( s , a ) = R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v ∗ ( s ′ ) q^*(s,a)=R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)v^*(s') q∗(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)v∗(s′)
可以将第一式代入第二式,得到:
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'\mid s,a)\max_aq^*(s',a')
q∗(s,a)=R(s,a)+γs′∈S∑P(s′∣s,a)amaxq∗(s′,a′)
即得到了 Q 函数之间的转移。
还可以将第二式代入第一式,得到:
v
∗
(
s
)
=
max
a
(
R
(
s
,
a
)
+
γ
∑
s
′
∈
S
P
(
s
′
∣
s
,
a
)
v
∗
(
s
′
)
)
v^*(s)=\max_a\left(R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)v^*(s')\right)
v∗(s)=amax(R(s,a)+γs′∈S∑P(s′∣s,a)v∗(s′))
即得到了状态-价值函数的转移。
(2)Value Iteration
Principle of Optimality
动态规划的方法将优化问题分成两个部分:
- 第一步执行最优的 action;
- 之后后继的状态每一步都按照最优 policy 去做,那么最后的结果就是最优的。
一个 policy π ( s ∣ a ) \pi(s\mid a) π(s∣a) 在状态 s 达到最优价值,即 v π ( s ) = v ∗ ( s ) v^\pi(s)=v^*(s) vπ(s)=v∗(s) 成立,当且仅当对于任何能够从 s 到达的 s’,都已经达到了最优价值,即对所有的 s’, v π ( s ′ ) = v ∗ ( s ′ ) v^\pi(s')=v^*(s') vπ(s′)=v∗(s′)恒成立。
Deterministic Value Iteration
value iteration 就是把 Bellman optimality equation 当成一个 update rule 进行,如下式所示: v ( s ) ← max a ∈ A ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v ( s ′ ) ) v(s)\leftarrow \max_{a\in A}\left(R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)v(s')\right) v(s)←a∈Amax(R(s,a)+γs′∈S∑P(s′∣s,a)v(s′))
不停迭代 Bellman Optimality Equation,到最后,它能逐渐趋向于最佳的策略,这是 value iteration 算法的精髓。
Difference between Policy Iteration and Value Iteration
对比下 policy iteration 和 value iteration,这两个算法都可以解 MDP 的控制问题。
- Policy iteration 由两部分组成:policy evaluation 和 policy improvement。Policy Iteration 分两步,首先对当前已经搜索到的策略函数进行一个估值。得到估值过后,把 Q 函数算出来进一步改进。
- Value iteration 直接把 Bellman Optimality Equation 拿进来,然后去寻找最佳的 value function,没有 policy function 在这里面。当算出 optimal value function 过后,再提取最佳策略。
Summary for Prediction and Control in MDP
MDP 里面的 prediction 和 control 都是用动态规划来解,其实采取了不同的 Bellman Equation。
- 如果是一个 prediction 的问题,即 policy evaluation 的问题,直接就是不停地 run 这个 Bellman Expectation Equation,这样我们就可以去估计出给定的这个策略,然后得到价值函数。
- 对于 control,
- 如果采取的算法是 policy iteration,那这里用的是 Bellman Expectation Equation 。把它分成两步,先上它的这个价值函数,再去优化它的策略,然后不停迭代。这里用到的只是 Bellman Expectation Equation。
- 如果采取的算法是 value iteration,那这里用到的 Bellman Equation 就是 Bellman Optimality Equation,通过 arg max 这个过程,不停地去 arg max 它,最后它就会达到最优的状态。
Bellman optimality equation: v ( s ) = max a ∈ A ( R ( s , a ) + γ ∑ s ′ ∈ S P ( s ′ ∣ s , a ) v ( s ′ ) ) v(s)= \max_{a\in A}\left(R(s,a)+\gamma \sum_{s'\in S}P(s'\mid s,a)v(s')\right) v(s)=a∈Amax(R(s,a)+γs′∈S∑P(s′∣s,a)v(s′))
Bellman Expectation Equation: v π ( s ) = E π [ R t + 1 + γ v π ( s t + 1 ) ∣ s t = s ] v^\pi(s)=E_\pi[R_{t+1}+\gamma v^\pi(s_{t+1})\mid s_t=s] vπ(s)=Eπ[Rt+1+γvπ(st+1)∣st=s]
-
预测问题:
- 输入:MDP < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>和 policy π \pi π 或者MRP < S , P π , R π , γ > <S,P^\pi,R^\pi,\gamma> <S,Pπ,Rπ,γ>。
- 输出:value function v π v^\pi vπ
- Prediction 是给定一个 MDP 和其 policy π \pi π ,去计算它的 value function,即对于每个状态价值函数值是多少。
-
控制问题:
- 输入:MDP < S , A , P , R , γ > <S,A,P,R,\gamma> <S,A,P,R,γ>。
- 输出:最佳价值函数(optimal value function) v ∗ v^* v∗ 和最佳策略(optimal policy) π ∗ \pi^* π∗。
- Control 即寻找最佳策略,同时输出最佳价值函数和最佳策略。
上一篇:强化学习RL学习笔记5-马尔可夫决策过程(MDP)(2)
下一篇:强化学习RL学习笔记7-表格型方法(tabular methods)