马尔可夫决策过程(Markov decision process,MDP)是强化学习问题在数学上的理想化形式
MDP中的环境是完全可观测的
几乎所有的强化学习问题都可以在数学上表示为马尔可夫决策过程
状态 S t S_t St具有马尔科夫性,当且仅当 P [ S t + 1 ∣ S t ] = P [ S t + 1 ∣ S 1 , . . . , S t ] \mathbb P[S_{t+1}|S_t]=P[S_{t+1}|S_1,...,S_t] P[St+1∣St]=P[St+1∣S1,...,St]
给定当前时刻的状态,将来与历史无关
状态是对过去的充分统计
对于马尔可夫状态 s s s与其后继状态 s ′ s ^ \prime s′,它们的状态转移概率定义为:
P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_t=s \right] Pss′=P[St+1=s′∣St=s]
状态转移矩阵 P P P定义了马尔科夫状态 s s s到其所有后继状态 s ′ s^\prime s′的转移概率
P = [ P 11 ⋯ P 1 n ⋮ ⋮ P n 1 ⋯ P n n ] \mathcal{P}=\left[\begin{array}{ccc} \mathcal{P}_{11} & \cdots & \mathcal{P}_{1 n} \\ \vdots & & \vdots \\ \mathcal{P}_{n 1} & \cdots & \mathcal{P}_{n n} \end{array}\right] P= P11⋮Pn1⋯⋯P1n⋮Pnn
矩阵的每一行总和为1
马尔可夫过程是一种无记忆的随机过程
马尔可夫过程可以分为三类
马尔可夫过程由元组 ( S , P ) (\mathcal S, \mathcal P) (S,P)构成
S \mathcal S S是有限状态的集合
P \mathcal P P是状态转移矩阵 P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_t=s \right] Pss′=P[St+1=s′∣St=s]
S = { C l a s s 1 , F a c e b o o k , C l a s s 2 , C l a s s 3 , P a s s , P u b , S l e e p } \mathcal S=\{Class1,Facebook,Class2,Class3,Pass,Pub,Sleep\} S={Class1,Facebook,Class2,Class3,Pass,Pub,Sleep}
从初始状态 S 1 = C 1 S_1=C_1 S1=C1开始,我们可以从马尔科夫链中采样一些子序列,每个子序列又称为幕(Episodes),幕的终点得是一个终止状态,在这个例子中就是Sleep
C1 C2 C3 Pass Sleep
C1 FB FB C1 C2 Sleep
C1 C2 C3 Pub C2 C3 Pass Sleep
马尔可夫奖励过程(Markov Reward Process,MRP)由元组 ( S , P , R , γ ) (\mathcal S, \mathcal P, \mathcal R, \gamma) (S,P,R,γ)构成
S \mathcal S S是有限状态的集合
P \mathcal P P是状态转移矩阵 P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal{P}_{s s^{\prime}}=\mathbb{P}\left[S_{t+1}=s^{\prime} \mid S_t=s \right] Pss′=P[St+1=s′∣St=s]
R s \mathcal R_s Rs是奖励函数, R s = E [ R t + 1 ∣ S t = s ] \mathcal R_s=\mathbb E[R_{t+1} \mid \mathcal S_t=s ] Rs=E[Rt+1∣St=s]
γ \gamma γ 是折扣因子, γ ∈ [ 0 , 1 ] \gamma \in [0,1] γ∈[0,1]
数学期望是一种重要的数学特征,它反映随机变量平均取值的大小
在一个马尔可夫奖励过程中,从 t t t时刻的状态 S t S_t St开始,直至终止状态时,所有奖励的衰减之和 G t G_t Gt称为回报Return
G t = R t + 1 + γ R t + 2 + γ 2 R t + 3 + . . . = ∑ k = 0 ∞ γ k R t + k + 1 G_t=R_{t+1}+\gamma R_{t+2}+\gamma ^2R_{t+3}+...=\sum_{k=0}^\infin \gamma^kR_{t+k+1} Gt=Rt+1+γRt+2+γ2Rt+3+...=k=0∑∞γkRt+k+1
折扣因子的作用:
价值函数 v ( s ) v(s) v(s)给出状态 s s s的长期价值(long-term value)
价值函数输入为某个状态,输出为这个状态的价值
定义:在马尔可夫奖励过程中,一个状态的期望回报被称为这个状态的价值函数 v ( s ) = E [ G t ∣ S t = s ] v(s)=\mathbb E[G_t \mid S_t=s] v(s)=E[Gt∣St=s],相当于对这个状态所在的所有幕的回报求平均
这个 E \mathbb E E去除了两种随机性,分别是状态间跳转的随机性,以及每个状态给分的随机性
当考虑了未来收益时,Class3和Class1相比,虽然该状态的奖励相同,但是Class3更接近于Pass这个最优状态,所以Class3的期望回报就比Class1要高很多。
马尔可夫奖励过程的贝尔曼方程Bellman Equation
贝尔曼方程可以求解价值函数
贝尔曼方程 v ( s ) = E [ R t + 1 + γ v ( S t + 1 ) ∣ S t = s ] v(s)=\mathbb E[R_{t+1}+\gamma v(S_{t+1}) \mid S_t=s] v(s)=E[Rt+1+γv(St+1)∣St=s]
价值函数可以分解为两个部分:即时奖励 R t + 1 R_{t+1} Rt+1和后续状态的折扣值 γ v ( S t + 1 ) \gamma v(S_{t+1}) γv(St+1)
S t + 1 S_{t+1} St+1可能会是任何一种状态
贝尔曼方程还可以写为:
v ( s ) = R s + γ ∑ s ′ ∈ S P s s ′ v ( s ′ ) v(s)=\mathcal R_s+\gamma \sum_{s ^ \prime \in \mathcal S} \mathcal P_{ss^\prime v(s^\prime)} v(s)=Rs+γs′∈S∑Pss′v(s′)
其中 P s s ′ = P [ S t + 1 = s ′ ∣ S t = s ] \mathcal P_{ss^\prime} = \mathbb P[\mathcal S_{t+1} = s ^\prime \mid \mathcal S_t = s] Pss′=P[St+1=s′∣St=s]
R s = E [ R t + 1 ∣ S t = s ] \mathcal R_s = \mathbb E[R_{t+1} \mid \mathcal S_t=s] Rs=E[Rt+1∣St=s]
示例:
4.3=当前价值-2 + 0.6 * 10 + 0.4 * 0.8
当各个状态的价值不满足贝尔曼方程时意味着:1. 这个价值函数不是这个系统的价值函数,2. 计算出错,3. 计算没有收敛
贝尔曼方程可使用矩阵简明表示
v = R + γ P v v=\mathcal R + \gamma \mathcal Pv v=R+γPv
其中 v v v是一个列向量,每个状态一个条目
[ v ( 1 ) ⋮ v ( n ) ] = [ R 1 ⋮ R n ] + γ [ P 11 ⋯ P 1 n ⋮ ⋮ P n 1 ⋯ P n n ] [ v ( 1 ) ⋮ v ( n ) ] \left[\begin{array}{c} v(1) \\ \vdots \\ v(n) \end{array}\right]=\left[\begin{array}{c} \mathcal{R}_1 \\ \vdots \\ \mathcal{R}_n \end{array}\right]+\gamma\left[\begin{array}{ccc} \mathcal{P}_{11} & \cdots & \mathcal{P}_{1 n} \\ \vdots & & \vdots \\ \mathcal{P}_{n 1} & \cdots & \mathcal{P}_{n n} \end{array}\right]\left[\begin{array}{c} v(1) \\ \vdots \\ v(n) \end{array}\right] v(1)⋮v(n) = R1⋮Rn +γ P11⋮Pn1⋯⋯P1n⋮Pnn v(1)⋮v(n)
贝尔曼方程是线性方程,可以直接求解
v = R + γ P v v=\mathcal R + \gamma \mathcal Pv v=R+γPv
( I − γ P ) v = R (I-\gamma \mathcal P)v=\mathcal R (I−γP)v=R
v = ( I − γ P ) − 1 R v=(I-\gamma \mathcal P)^{-1} \mathcal R v=(I−γP)−1R
对于 ∣ S ∣ |S| ∣S∣个状态,计算复杂度为 O ( ∣ s ∣ 3 ) O(|s|^3) O(∣s∣3)
直接求解仅适用于小型马尔可夫奖励过程
对于大型MRP,有很多迭代方法,例如:
马尔可夫决策过程(MDP)是具有决策的马尔可夫奖励过程(MRP),其所有状态满足马尔可夫性质
定义:马尔可夫决策过程由元组 ( S , A , P , R , γ ) (\mathcal S, \mathcal A, \mathcal P, \mathcal R, \gamma) (S,A,P,R,γ)构成
策略 π \pi π是一个函数,表示输入状态为 s s s的情况下采取动作 a a a的概率
π ( a ∣ s ) = P [ A t = a ∣ S t = s ] \pi(a \mid s) = \mathbb P[\mathcal A_t=a \mid \mathcal S_t=s] π(a∣s)=P[At=a∣St=s]
策略完全定义了智能体的行为,马尔科夫决策过程中,策略仅取决于当前状态(而不是历史记录)
给定一个马尔可夫决策过程: M = ( S , A , P , R , γ ) \mathcal M = (\mathcal S, \mathcal A, \mathcal P, \mathcal R, \gamma) M=(S,A,P,R,γ)和一个策略 π \pi π
状态序列 S 1 , S 2 . . . S_1,S_2... S1,S2...是一个马尔可夫随机过程 < S , P π > <\mathcal S, \mathcal P^\pi> <S,Pπ>
状态和奖励序列是一个马尔可夫奖励过程 < S , P π , R π , γ > <\mathcal S, \mathcal P^\pi, \mathcal R^\pi, \gamma> <S,Pπ,Rπ,γ>
P s s ′ π = ∑ a ∈ A π ( a ∣ s ) P s s ′ a R s π = ∑ a ∈ A π ( a ∣ s ) R s a \begin{aligned} \mathcal{P}_{\mathrm{ss^\prime}}^\pi & =\sum_{a \in \mathcal{A}} \pi(a \mid s) \mathcal{P}_{\mathrm{ss^\prime}}^a \\ \mathcal{R}_{\mathrm{s}}^\pi & =\sum_{a \in \mathcal{A}} \pi(a \mid s) \mathcal{R}_{\mathrm{s}}^a \end{aligned} Pss′πRsπ=a∈A∑π(a∣s)Pss′a=a∈A∑π(a∣s)Rsa
**状态价值函数:**在马尔可夫决策过程中,一个状态价值函数 v π ( s ) v_\pi(s) vπ(s)是从状态 s s s出发,遵循策略 π \pi π得到的期望回报。决定哪个策略更好
v π ( s ) = E π [ G t ∣ S t = s ] v_\pi(s)=\mathbb E_\pi[G_t\mid S_t=s] vπ(s)=Eπ[Gt∣St=s]
**动作价值函数:**在马尔可夫决策过程中,一个动作价值函数 q π ( s , a ) q_\pi(s,a) qπ(s,a)是从状态 s s s开始,遵循策略 π \pi π对当前状态 s s s执行动作 a a a得到的期望回报。决定该策略下哪个动作更好。
q π ( s , a ) = E π [ G t ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb E_\pi[G_t \mid S_t=s,A_t=a] qπ(s,a)=Eπ[Gt∣St=s,At=a]
状态函数可以分解为:即时奖励+后继状态的折扣值
v π ( s ) = E π [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s ] v_\pi(s)=\mathbb{E}_\pi\left[R_{t+1}+\gamma v_\pi\left(S_{t+1}\right) \mid S_t=s\right] vπ(s)=Eπ[Rt+1+γvπ(St+1)∣St=s]
动作价值函数可进行类似分解
q π ( s , a ) = E π [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ S t = s , A t = a ] q_\pi(s, a)=\mathbb{E}_\pi\left[R_{t+1}+\gamma q_\pi\left(S_{t+1}, A_{t+1}\right) \mid S_t=s, A_t=a\right] qπ(s,a)=Eπ[Rt+1+γqπ(St+1,At+1)∣St=s,At=a]
v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_\pi(s)=\sum_{a \in \mathcal A} \pi(a \mid s)q_\pi(s,a) vπ(s)=a∈A∑π(a∣s)qπ(s,a)
q π ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a v π ( s ′ ) q_\pi(s, a)=\mathcal{R}_s^a+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^a v_\pi\left(s^{\prime}\right) qπ(s,a)=Rsa+γs′∈S∑Pss′avπ(s′)
通过相互代入可以获得两种价值函数的递推式
最优状态价值函数是所有策略产生的状态价值函数中,使状态 s s s价值最大的函数
v ∗ ( s ) = max π v π ( s ) v_*(s)=\max _\pi v_\pi(s) v∗(s)=πmaxvπ(s)
最优动作价值函数是指所有策略产生的动作价值函数中,使状态-行为对价值最大的函数
q ∗ ( s , a ) = max π q π ( s , a ) q_*(s,a)=\max _\pi q_\pi(s,a) q∗(s,a)=πmaxqπ(s,a)
最优价值函数明确了MDP的最优可能表现
一旦最优价值函数知晓,则认为MDP已完成求解
策略之间的偏序:当且仅当对于任意的状态 s s s都有 v π ( s ) ≥ v π ′ ( s ) v_\pi(s)\geq v_{\pi^\prime}(s) vπ(s)≥vπ′(s)时,记作 π ≥ π ′ \pi \geq \pi^\prime π≥π′
最优策略:在有限状态和动作的MDP中,至少存在一个策略不劣于其他所有的策略,即 π ∗ ≥ π , ∀ π \pi_* \geq \pi, \forall \pi π∗≥π,∀π,这就是最优策略。
所有的最优策略具有相同的最优状态价值函数
所有的最优策略有相同的动作价值函数
可以通过最大化 q ∗ ( s , a ) q_*(s,a) q∗(s,a)来找到最佳策略,
π ∗ ( a ∣ s ) = { 1 0 当 a = arg max a ∈ A q ∗ ( s , a ) \pi_*(a \mid s)=\left\{\begin{array}{l} 1 \\ 0 \end{array} \quad \text { 当 } a=\arg \max _{a \in A} q_*(s, a)\right. π∗(a∣s)={10 当 a=arga∈Amaxq∗(s,a)
找到最优动作价值函数中让值最大的a,将其概率设置为1
任何MDP始终都有确定性的最佳策略
如果我们知道 q ∗ ( s , a ) q_*(s,a) q∗(s,a),我们将立即获得最优策略
v ∗ ( s ) = m a x a q ∗ ( s , a ) v_*(s)=max_aq_*(s,a) v∗(s)=maxaq∗(s,a)
贝尔曼期望方程 v π ( s ) = ∑ a ∈ A π ( a ∣ s ) q π ( s , a ) v_\pi(s)=\sum_{a \in \mathcal A} \pi(a \mid s)q_\pi(s,a) vπ(s)=∑a∈Aπ(a∣s)qπ(s,a),将最优策略结果代入,就得到贝尔曼最优方程
v ∗ ( s ) = max a ( R s a + γ ∑ s ′ ∈ S P s s ′ a v ∗ ( s ′ ) ) v_*(s)=\max _a\left(\mathcal{R}_s^a+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^a v_*\left(s^{\prime}\right)\right) v∗(s)=amax(Rsa+γs′∈S∑Pss′av∗(s′))
q ∗ ( s , a ) = R s a + γ ∑ s ′ ∈ S P s s ′ a max a ′ q ∗ ( s ′ , a ′ ) q_*(s, a)=\mathcal{R}_s^a+\gamma \sum_{s^{\prime} \in \mathcal{S}} \mathcal{P}_{s s^{\prime}}^a \max _{a^{\prime}} q_*\left(s^{\prime}, a^{\prime}\right) q∗(s,a)=Rsa+γs′∈S∑Pss′aa′maxq∗(s′,a′)
贝尔曼最优方程是非线性的
不能使用与策略优化相同的直接矩阵解决方案
通过一些迭代的方法来解决:
强化学习基础 北京邮电大学 鲁鹏 强化学习基础 (本科生课程) 北京邮电大学 鲁鹏_哔哩哔哩_bilibili
深度强化学习 台湾大学 李宏毅 DRL Lecture 1_ Policy Gradient (Review)_哔哩哔哩_bilibili
蘑菇书EasyRL datawhalechina/easy-rl: 强化学习中文教程(蘑菇书),在线阅读地址:https://datawhalechina.github.io/easy-rl/